解析:
代理服务
一.什么是代理服务器
代理服务器英文全称是Proxy Server,其功能就是代理网络用户去获得网络信息。形象的说,它是网络信息的中转站。Proxy Server是浏览器和web服务器之间的一台服务器。经过设置代理后,浏览器不是直接与目标web服务器连接,而是向代理服务器发出请求,Request数据会先送到代理服务器,由代理服务器直接与目标web服务器连接,并将收到的数据中转给你的浏览器。
大部分代理服务器都具有缓冲功能,就像一个大的Cache,不断将新取得的数据存储到它自己的本地存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从web服务器上取数据,而是直接将自己的本地存储器上的数据发送给浏览器,这样就能显著提高浏览器的速度和效率。
另外,Proxy Server是Inter链路级网关所提供的一种重要的安全功能,其工作主要在开放系统互联模型(OSI)的会话层(Session),从而起到防火墙的作用。
二.代理服务器的主要功能
1.充当防火墙
代理服务器可以连接Inter和Intra,充当起防火墙的角色,因为所有内网用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内网。同时可以直接设置IP地址过滤,限制内网对外部的访问权限;两个没有互联的内网,也可以通过第三方的代理服务器进行连接。
2.隐形
使用代理服务器可以隐藏自己计算机的真实IP地址,要做的访问都交由代理服务器来完成,这样就可以有效地隐藏自己,突破IP封锁和限制。
3.提高访问速度
如果自身带宽不能满足要求,可以连接带宽较大的代理服务器,把一些大流量交由代理服务器完成。同时,一般代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界信息通过时,同时也将保存到缓冲区中,当其他用户再访问相同的信息时,则直接有缓冲区取出信息,传给用户,从而达到提高访问速度的目的。
三.代理服务器的分类
代理服务器的类型很多,但总的来说可以分为三种:全匿名代理、普通匿名代理和透明代理。
下面来详细描述一些代理类型。
HTTP代理:代理客户机的HTTP访问,主要是代理浏览器访问网页,端口一般为80、8080、3128。
FTP代理:能够代理客户机上的FTP软件访问FTP服务器,端口一般为21、2121。
RTSP代理:代理客户机上的Realplayer访问real流媒体服务器的代理,端口一般为554。
POP3代理:代理客户机上的邮件软件用POP3方式收发邮件,端口一般为110。
SOCKS代理:SOCKS代理只是简单的传递数据包,而不关心任何应用协议,所以SOCKS代理服务器要比其他类型的代理服务器速度要快的多。
SOCKS代理又分为SOCKS4和SOCKS5。
SOCKS4只支持TCP协议(传输控制协议)。SOCKS5则即支持TCP协议又支持UDP协议(用户数据包协议),还支持各种身份验证机制、服务器端域名解析等。
全匿名代理:它不改变客户机的请求,这样在客户机看来就好像有个真正的客户浏览器在访问它,这时客户的真实IP地址是隐藏的,服务器端不会认为我们使用了代理。
普通匿名代理:能隐藏客户机的真实IP,但会改变我们的请求信息,服务器端可能会认为我们使用了代理(仅仅可能,一般来说没问题),但其实这种代理的安全性可能比全匿名代理更高,有的代理甚至会剥离客户机发送信息中的一部分,这样服务器端就根本探测不到我们所用的操作系统版本和浏览器版本。
透明代理:也叫简单代理,不但改变我们的请求信息,还会传诵真实的IP地址。
[toc]
基于原文截取修改:
原文链接: 让代理服务器支持HTTPS很难吗?
我们开展稳定高匿名HTTP代理业务以来,我听到客户咨询最多的问题之一就是“你们的代理支持HTTPS协议吗?”。我觉得很多人对HTTPS代理存在理解上的误区,所以我写了这篇文章。目的就是想说明“实现支持HTTPS的代理一点都不难!”。
说到HTTPS代理很多人瞬间就会联想到HTTPS的各种证书和各种加密,觉得很高端很复杂的样子。其实不然,代理服务器不需要配置证书、也不需要处理任何加密。因为HTTPS代理是通过Web隧道(Web tunnel)工作的。
Web隧道允许用户通过HTTP连接发送非HTTP流量(例如FTP,Telnet,SMTP),这就使得那些使用非HTTP协议的应用程序可以通过HTTP代理工作了。你现在应该就明白了为什么QQ可用设置使用HTTP代理工作。Web隧道这么强大,但它并不复杂。
Web隧道是用HTTP协议的CONNECT方法建立起来的。CONNECT方法不是HTTP/1.1核心规范的一部分,但确是一种得到广泛应用的扩展。客户端通过CONNECT方法请求代理服务器创建一条到达任意目的服务器和端口的TCP链接,代理服务器仅对客户端和服务器之间的后续数据进行盲转发(只是转发,不关心、也不懂发送的内容是什么)。
1) 客户端通过HTTP协议发送一条CONNECT方法的请求给代理服务器,告知代理服务器需要连接的主机和端口。
例如:
在本例中客户端通过CONNECT方法请求代理服务器打开一条到 www.alipay.com 主机443端口的TCP链接。
2) 代理服务器一旦建立了和目标主机(上例中的 www.alipay.com:443 )TCP连接,就会回送一条HTTP 200 Connection Established应答给客户端。
例如:
3) 此时隧道就建立起来了。客户端通过该HTTP隧道发送的所有数据都会被代理服务器(通过之前建立起来的与目标主机的TCP连接)原封不动的转发给目标服务器。目标服务器发送的所有数据也会被代理服务器原封不动的转发给客户端。注意:是原封不动的转发,代理服务器并不需要知道内容的含义,也不会尝试去对内容进行解析。
PS:上面这张插图是我引用《HTTP权威指南》一书的,做了修改。
这下你应该明白了Web隧道的工作原理。所以对代理服务器来说只要其支持Web隧道就支持HTTPS协议(和其它非HTTP协议),与证书、加密没有任何直接的关系。从上面的过程可以看出,实现Web隧道并不难,只要代理服务器能够正确处理CONNECT请求,然后对数据进行盲转发即可。从难度上看这比标准的HTTP协议代理还要简单(标准HTTP协议代理需要对客户端和服务端双方的HTTP报文先进行解析,修改后再进行转发)。
我能说
哈哈,没写,你来
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)