如何在linux中用c编写http1.0代理服务器?

如何在linux中用c编写http1.0代理服务器?,c,linux,proxy,network-programming,C,Linux,Proxy,Network Programming,我必须开发在Linux和c中只能使用HTTP 1.0的代理服务器。 我需要一些提示来开始开发 如何创建代理服务器: 打开要侦听的端口 捕获该报表上的所有传入请求 确定请求的网址 打开与主机的连接并转发请求 接收响应 将响应发送回请求客户端 另外:使用线程允许向服务器发出多个请求 我假设您对使用linux和c语言有信心(没有提示,否则不要从开发代理开始) 阅读并理解(注意代理的具体提及) 确定需要哪种代理(web/caching/content filter/anonymizer/transpa

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

如何创建代理服务器:

  • 打开要侦听的端口
  • 捕获该报表上的所有传入请求
  • 确定请求的网址
  • 打开与主机的连接并转发请求
  • 接收响应
  • 将响应发送回请求客户端
  • 另外:使用线程允许向服务器发出多个请求

    • 我假设您对使用linux和c语言有信心(没有提示,否则不要从开发代理开始)
    • 阅读并理解(注意代理的具体提及)
    • 确定需要哪种代理(web/caching/content filter/anonymizer/transparent/non-transparent/reverse/gateway/tunnel/…)
    • 开始开发服务器
    基本步骤

  • 开放端口
  • 监听端口
  • 获取从客户端发送到该端口的所有请求(可能使整个过程多线程化,以便一次能够处理多个请求)
  • 确定它是否是有效的HTTP 1.0请求
  • 提取请求组件
  • 根据您所使用的代理类型重新生成请求
  • 发送新请求
  • 得到回应
  • 向客户端发送响应

  • +感谢你的宽容,并至少尝试提供一个有用的答案。“向客户发送响应”如何?有桌子吗?必须保存哪些信息?响应是网站在接受http请求后返回给代理的任何内容(应该是网页的html或服务器的消息)。为了获得更好的性能(或者如果您喜欢挑战),请尝试使用线程池,而不只是一堆线程