Linux高性能服务器编程(5)
Internet上的Web服务器随处可获得,通过浏览器访问任何网站都是在于Web服务器通信。Web服务器之间使用HTTP协议通信。HTTP协议是一种应用层协议,它默认使用的传输层协议是TCP协议。
在与HTTP通信链上,客户端和目标服务器之间通常存在某些中转代理服务器,它们提供对目标资源的中转访问。一个HTTP请求可能被多个代理服务器转发,后面的服务器称为前面服务器的上游服务器。代理服务器按照其使用方式和作用,分为正向代理服务器、反向代理服务器和透明代理服务器。
正向代理要求客户端自己设置代理服务器的地址。客户的每次请求都将直接发送到该代理服务器,并由代理服务器来请求目标资源。如防火墙内的的局域网机器要访问Internet,或者要访问一些被屏蔽的国外网站,需要使用正向代理服务器。
反向代理则被设置在服务器端,因而客户无须进行任何设置。反向代理是指用代理服务器来接收Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从内部服务器上得到的结果返回给客户端。这种情况下,代理服务器对外就表现为一个真实的服务器。各大网站通常分区域设置了多个代理服务器,在不同的地方ping同一个域名可能获得不同的IP地址,这些IP地址实际上是代理服务器的IP地址。下图显示了正向代理服务器和反向代理服务器在HTTP通信链上的逻辑位置。
正向代理服务器和客户端处在同一个逻辑网络中。该逻辑网络可以是一个本地LAN,也可以是一个更大的网络。反向代理服务器和真正的Web服务器也位于同一个逻辑网络中,这通常由提供网站的公司来配置和管理。
透明代理只能设置在网关上。用户访问Internet的数据必然都经过网关,如果在网关是设置代理,则代理对用户来说显然是透明的。透明代理可以看作正向代理的一种特殊情况。
代理服务器通常还提供缓存目标资源的功能(可选),这样用户下次访问同一资源时速度将更快。
请求方法 | 含义 |
---|---|
GET | 申请获取资源,而不对服务器产生任何其他影响 |
HEAD | 和GET方法类似,不过仅要求服务器返回头部信息,而不需要传输任何实际内容 |
POST | 客户端向服务器提交数据的方法。这种方法会影响服务器:服务器可能根据收到的数据同台创建新的资源,也可能更新原有的资源 |
PUT | 上传某个资源 |
DELETE | 删除某个资源 |
TRACE | 要求目标服务器返回原始HTTP请求的内容。它可用来查看中间服务器(比如代理服务器)对HTTP请求的影响 |
OPTIONS | 查看服务器对某个特定URL都支持哪些请求方法。也可以把URL设置为*,从而获得服务器支持的所有请求方法 |
CONNECT | 用于某些代理服务器,它们能把请求的连接转化为一个安全隧道 |
PATCH | 对某个资源做部分修改 |
|
这些方法中,HEAD、GET、OPTIONS和TRACE被视为安全的方法,因为它们只是从服务器获得资源或信息,而不对服务器进行任何修改。而POST、PUT、DELETE和PATCH则影响服务器上的