【问题标题】:How to write a http1.0 proxy server in c in linux?如何在linux中用c写一个http1.0代理服务器?
【发布时间】:2009-11-15 11:35:56
【问题描述】:

我必须在 Linux 和 c 中开发仅适用于 HTTP 1.0 的代理服务器。 我需要一些提示来开始开发。

【问题讨论】:

    标签: c linux proxy network-programming


    【解决方案1】:
    • 我假设您对使用 linux 和语言 c 有信心(没有提示,否则不要从开发代理开始)
    • 阅读理解RFC 1945 HTTP/1.0(注意代理的具体提及)
    • 确定您想要什么样的代理(网络/缓存/内容过滤器/匿名器/透明/非透明/反向/网关/隧道/...)
    • 开始开发服务器

    基本步骤

    1. 打开端口
    2. 监听端口
    3. 获取从客户端发送到该端口的所有请求(也许使整个事物成为多线程以便能够一次处理多个请求)
    4. 确定它是否是有效的 HTTP 1.0 请求
    5. 提取请求组件
    6. 根据你的代理类型重新构建请求
    7. 发送新请求
    8. 获取响应
    9. 向客户端发送响应

    【讨论】:

    • +1 表示宽容并至少试图提供有用的答案。
    • “向客户端发送响应”如何?与表?哪些信息必须保存?
    • 响应是网站在接受http请求后返回给代理的任何内容(应该是网页的html或来自服务器的消息)。
    【解决方案2】:

    如何创建代理服务器:

    1. 打开一个端口监听
    2. 在该报告中捕获所有传入请求
    3. 确定请求的网址
    4. 打开与主机的连接并转发请求
    5. 接收响应
    6. 将响应发送回请求客户端

    另外:使用线程来允许对服务器的多个请求。

    【讨论】:

    最近更新 更多