欢迎光临
我们一直在努力

程序员一天的工作流程,医生一天的工作流程

? ?研究squid也有一段时间了,也有一些心得,由于发觉网上介绍squid源码的资料实在太少,所以决心以后将陆续将squid一些代码的研究写成博客,一来作为自己的笔记,用于以后拾起,二来用于和同样研究squid的学者交流分享。

squid是一款缓存internet数据的软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户象要访问一个url时,它向squid发出一个申请,请求squid替它下载,然后squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,squid将缓存的该页面立即传给用户,加速用户的访问。目前,squid?可以代理HTTP,?FTP,?GOPHER,?SSL?和?WAIS?协议,暂不能代理POP,?NNTP等协议。

squid作为源站和客户端之间的桥梁,一方面减轻了源站的负担,另一方面加速了客户端的访问。squid一般做反向代理,当客户端发起web请求时,DNS服务器将访问域名解析为squid服务器的ip地址,这样客户端就会与squid服务器建立tcp连接,将请求数据发送给squid服务器,squid服务器会解析客户请求,然后向源站去请求资源并缓存在本地,然后再将资源返回给客户端。这样,当客户下次进行同样的请求时,就会squid服务器这边直接命中,而不用再去源站请求,这样就加快了访问速度,同时也减轻了源站负担。

squid反向代理一般架构如下所示

1. squid内部框架

? ? squid主美国高防vps要是一个请求/响应体,通过监听事件和回调函数机制进行响应的业务处理。

? ??

2. ProcessHit流程

? ?首先,发送响应头

? ?

?发完响应头之后,开始发body

? ?

3. ProcessMiss流程

? ? 首先,发送请求到源站

? ??

然后,处理从源站收到的响应

? ??

69316412

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。