松鼠书读书笔记(四)——http proxy

来源:互联网 发布:淘宝爆款是什么意思啊 编辑:程序博客网 时间:2024/05/01 23:49
本章说的是http proxy,也就是http代理服务器

其实我个人的理解,觉得这些概念(代理、缓存、web server)很模糊,只能说是RFC2616上给出的一种指导性的分类,并不是有很明确的含义的,也没有严格的区分

这些概念,我认为都是互联网上的一些节点,或者说是http应用而已,没有绝对的分类和区别。

比如说,我开发了一个私有的代理服务器,部署在internet的入口处,然后配置浏览器请求往这个私有代理服务器上发。这个proxy有缓存的功能,如果是已经有的资源,就不向服务器发起请求了,那我这个proxy,也就可以认为是一个cache。同时,它都能处理http request,并生成http response了,难道还不能算一个web server吗。所以这个私人代理,同时是proxy、cache、web server,如果我再给它添加一个邮箱功能,那么它还是一个HTTP/POP3的gateway

所以我认为,HTTP规范中对http部件的分类,只能作为参考而已

这一章介绍了http proxy的一些主要功能

1、资源filter

这个很好理解,很多公司为了限制员工访问互联网,都搞一个公司代理,把白名单之外的请求都过滤了

2、防火墙,小本本

同理,从安全角度考虑,在LAN和WAN中间放一个proxy,然后就可以在proxy上部署一些杀毒软件,流量监控之类的东西

3、缓存

4、反向代理(reverse proxy)

很多大型的互联网网站都会这么做,一方面可以增强性能,另一方面可以保护server的安全

5、转码器(transcoder)

比如同一个页面,在返回给client agent之前,经过转码器转一下。如果client agent是PC浏览器则不作处理;如果是手机,就转成适合手机浏览器阅读的内容

很明显transcoder这里就需要做很多逻辑处理

6、匿名者

转发http request时,把user-agent首部等篡改,来保护真实客户端的安全。如果个人PC被黑客攻击了作为跳板,那有时候就成了黑客的匿名者代理

总结一下http proxy的各种作用,可以看出来,其实本质都是一样的。在真正的client agent,和最终的server中,部署一些http应用,对http request或者http response做一些处理,这就是http proxy的作用

在现实中也有很多体现,比如电信宽带,想连到网通服务器打网游,为了不卡,就花钱买个代理。当然这个一般不会是HTTP代理,但是原理都是一样的,本来直接发到网通服务器的消息,都会发到代理服务器上,由代理服务器来转发,再把网通服务器的响应给回客户端。代理服务器一般是双线的,所以玩游戏会比你直接连到网通服务器流畅一些

还有我97年那会通过猫拨号上网,国外的网站是不能上的,那么就可以找一些代理服务器,就能上国外的网站了

还有有些国外的服务器,会BAN掉大陆IP,那这个时候也可以找个海外服务器做代理,就可以连上去了