HTTP权威指南——代理

本文详细介绍了代理服务器的工作原理,包括正向代理、反向代理和匿名代理,以及它们在提高安全性、性能和费用节省方面的作用。代理与网关的主要区别在于协议转换和应用范围,而在实际中,两者界限有时模糊。此外,文章还讨论了如何通过URI处理和 Via 首部实现报文追踪,并解释了代理如何影响浏览器的URI解析和智能完成机制。
摘要由CSDN通过智能技术生成

代理
代理作为客户端与服务器端的中介,既作为服务端又可以作为客户端,同两端通信传送报文。

代理


公共代理
大多数代理是共享代理,集中式代理的效率更高,更容易管理。
私有代理
某个客户端专用的,不常见。

代理 vs 网关
代理连接的是两个或多个使用相同协议的应用程序;网关连接两个或多个使用不同协议的断电,完成协议转换角色。

代理和网关


实际中,代理跟网关的区别很模糊。对于使用不同版本的HTTP协议,代理也需要完成协议转换角色。另外商业化的代理服务器也会实现网关的功能来支持SSL安全协议、SOCKS防火墙、FTP访问以及web的应用程序。

代理的优点
· 改善安全性
· 提高性能
· 节省费用
安全防火墙

防火墙


Web 缓存

web缓存


反向代理
代理假扮web服务器,接收请求,可以发起与其他服务器的通信,按需定位所请求的内容。一般用来提高访问慢速web服务器上公共内容的性能。通常部署在网络边缘,位于web服务器之前。通过冒用web服务器的名字&ip,接收来自客户端的请求,在必要时向服务器请求资源,可以提高web服务器的安全性或者将较快的服务器缓存放在较慢的服务器之前,提高性能。
有趣的内容路由器
代理服务器可以作为内容路由器使用,根据因特网流量状况及内容类型将请求导向特定的web服务器

内容路由器


匿名者代理
匿名者代理主动从HTTP报文中删除身份特性(IP地址、From、Referer、cookie、uri会话ID等),提高私密性
层次结构的代理-动态选择父代理
1.负载均衡
子代理考虑均衡负载选择父代理
2.地理位置附近的父代理
子代理选择原始服务器所在物理区域的父代理
3.协议/类型路由
子代理根据URI将报文转发到不同的父代理和原始服务器上。特定协议类型URI通过特殊代理服务器转发
4.基于订购的路由
若发布者为高性能服务额外付费了,它们的URI会被转发到大型缓存或压缩引擎上去,用以提高性能。

如何使客户端流量流向代理
 

流量导向代理

代理请求中的URI与服务器中的URI不同
Web服务器报文和web代理报文语法格式相同,唯一不同的是HTTP请求报文中的URI不同。
没有设置客户端代理时,发送部分URI —— 代理未出现时,客户端直接与单个服务器对话,避免发送冗余信息隐藏了已知的主机名和端口号
设置客户端使用代理时,发送完整URI;
 

拦截代理

拦截和反向代理是如何将服务器主机信息隐藏起来的
反向代理通过假扮服务器的主机名或ip地址,它会收到web服务器的请求,并向真正的服务器提供缓存的响应或代理请求。客户端无法区分反向代理和web服务器,因此会发送部分URI;
拦截代理是网络流量中的代理服务器,拦截从客户端发向服务器的请求,并提供缓存响应或对齐转发。由于拦截代理拦截了从客户端发往服务器端的请求,所以他会收到客户端请求的部分URIL;

 修改URI规则
HTTP规范禁止一般的拦截代理在转发URI时重写其绝对路径部分,但是可以用“/”来取代空路径

代理是怎样影响浏览器的智能URI自动完成机制或主机名扩展特性的
无代理时URI解析
首先使用DNS查找主机,若查找失败,浏览器会对主机名自动扩展,再次请求DNS解析,直到请求成功,返回IP地址。

没有提供显式代理时,浏览器自动扩展机制


有显式代理时URI解析
浏览器不会对不完整的主机名自动扩展
 

有显式代理时,浏览器不自动扩展

有拦截代理时的URI解析
使用不可见的拦截代理,对客户端来说是没有代理的。跟无代理一样,浏览器会自动扩展主机名,直到DNS成功为止。
当使用拦截代理,并请求的是已经停用IP地址时,提供容错机制是很重要的。

报文追踪

Via首部
报文Via首部能够追踪报文途径的每个中间点(代理或网关)信息,报文每经过一个节点都必须将这个中间节点添加到via列表的末尾,由“,”分割。请求报文与响应报文都有Via首部。
Via = 1. 1 cache. joes- hardware. com, 1. 1 proxy. irenes- isp. net

Server首部
Server响应首部是对原始服务器使用的软件进行描述,如果响应报文是通过代理转发,一定要确保代理没有修改Server首部,因为Server首部是用于原始服务器的,代理应该添加Via首部

TRACE方法 vs Via
TRACE方法也用于追踪报文途径的点,防止代理在转发时修改报文或首部。当TRACE请求 到达目的服务器时,整条请求报文都会被封装在一条响应报文的主题中回送给发送端,客户端可以查看服务器收到的确切报文及它所经过的代理列表(仍旧在Via首部),TRACE响应的Content-Type为message/http 状态码 200 OK
 

TRACE方法

Allow首部
Allow首部字段是请求首部,列出了请求URI标识的资源所支持的方法列表,如果Allow:*,即列出整个服务器所支持的方法列表。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值