代码改变世界

tinyporxy 代码分析

2015-04-03 15:57  burkelive  阅读(186)  评论(0)    收藏  举报

今天大概看了一下tinyproxy的源代码,基本的逻辑大致看明白了。记录一下

A.采用了进程模型,fork出子进程来处理请求,并维护了进程的个数,保证总空闲的数量和总数在一个可控范围

B. 主进程listen

C. 每个子进程的处理过程:

    1.先accept请求, 读取request line, 分析出客户端的头部,请求的方法,路径,HTTP版本等信息,目标地址的HOST及PORT,已经头部的各个字段

    2.与目标地址建立连接,将客户端的请求发送给目标主机。客户端的头部可能需要进行修改,尤其是Content-Length字段

    3.读取目标地址的回复,将回复写给客户端。

    4. 检查进程的数量,是否达到了最大空闲数的限制,如果没有,杀死自己的进程,退出。