- 作者: 雪山肥鱼
- 时间:20211204 18:44
- 目的: 代理
代理(proxy)服务器是网络的中间体。代理位于客户端和服务器之间,办理中间人的角色。在各个断电之间来回传送http报文。
1. Web 的中间实体
HTTP的代理服务器是Web服务器又是Web客户端。
http客户端向代理发送请求报文,代理则必须向服务器一样,正确处理请求和连接,然后返回响应。
同时代理自身要向服务器发送请求。
1.1 私有和共享代理
大家用的:共享代理
比如缓存代理服务器,会利用用户的共同请求,这样的话,汇入同一个代理服务器的用户越多,就越有用。
个人用的: 私有代理
1.2 代理与网关的对比
- 代理:
连接的是 两个或 多个使用相同协议的应用程序。 - 网关:
扮演的是协议转换器。客户端和服务器使用的是不同的协议,客户端也可以通过它完成于服务器之间的事务处理。
2. 为什么使用代理
代理服务器可以实现各种有用的功能,改善安全性,提高性能,节省费用。
代理服务器可以看到并接触到所有流过的http流量。所以代理可以监视流量并对其进行修改,以实现很多有用的增值web服务。
-
儿童过滤器
image.png -
文档过滤
image.png
C1: 无限制的访问服务器A
C2: 无限制访问因特网
C3: 访问B之前,要求其输入口令 -
安全防火墙
代理服务器也可以提高安全性。代理服务器会在网络中单一安全节点上限制哪些应用层协议的数据可以流入或流出的一个组织。还可以提供用来消除病毒的Web 和 Email 代理使用的那种挂钩程序,以便对流量进行详细的检查。
image.png -
web 缓存
image.png
C1 C2 会去访问附近web缓存上的对象A
C3 C4 访问的原始服务器文档
- 反向代理
代理可以假扮服务器。被称为 服务器的 替代物或反向代理 收发对服务器的请求。但与Web服务器不同的是,他们可以发起与其他服务器的通信,以便按需定位锁请求的内容。
可以用这些反向代理来提高访问服务器上公共内容时的性能。
此时这些反向代理 称为 服务器加速器。还可以将替代物与内容路由功能配合使用,以创建按需复制内容的分布式网络。
image.png
-
内容路由器
根据internet 流量状况以及内容类型将请求导向特定的 web 服务器。
聂荣服务器也可以用来实现各种服务级的请求。
如果用户 或者 商家 要求提供更高的性能。内容路由器可以将请求转发到附近的复制缓存。
如果用户申请了过滤,也可以提供过滤服务。
代理应用程序实例.png -
转码代理
代理服务器将内容转发给客户端之前,可以修改内容主体格式。
比如 GIF -》 JPEG 压缩空间等。 -
匿名者代理
主动从 HTTP 报文中删除身份特性(客户端IP, From 首部,Reference 首部,cookie,URI 会话ID等)
image.png
3. 代理会去往何处
3.1 代理服务器的部署
可以根据目标用途,将代理放在任意位置。
- 出口代理
可以将dialing固定在本地网络的出口点,以便控制本地网络与网络之间的流量 - 访问(入口)代理
代理经常放在ISP访问节点上,用以处理来自客户端的聚合请求。ISP使用缓存代理来存储常用文档的副本,以提高用户的下载速度。 - 反向代理
代理通常会被部署在网络边缘,在web服务器之前,作为服务器的替代物。在那里它们可以处理所有传送给web服务器的请求,并只在必要时向Web服务器请求资源。
反向代理可以提高web服务器的安全特性,或者将快速的web服务器缓存放在较慢的服务器之前,以提高性能。
反向代理通常会直接冒用Web服务器的名字和IP地址,这样所有的请求会被发送给代理,而不是服务器了 - 网络交换代理
可以将具有足够处理能力的代理放在网络之间的因特网对等交换点上,通过缓存来减轻因特网节点的拥塞。并对流量进行监控。
3.2 代理的层次结构
代理的层次结构中,会将报文从一个代理传送给另一个代理。最终到达原始服务器为止。
3.3 代理时如何获取流量的
客户端通常会直接与Web服务器通信,所以这里要解释的的时HTTP流量是怎么首先流向代理的
-
修改客户端
即修改客户端的代理地址 -
修改网络
浏览器不知情的条件下 -
修改dns的明明空间
web 服务器之前会有 反向代理。这个替代物会直接加班web 服务器的名字和ip地址。所有请求都会发送到这些替代物。
实现这一点,可以手工编辑DNS名称列表,或者用特殊的动态dns服务器根据需求来确定适当的代理或服务器。 -
修改web服务器
服务器会给客户端一个3xx,重定向命令。让客户端重定向到一个代理上去。
image.png
4 代理如何影响浏览器智能URI自动完成机制,或主机名扩展特性
4.1 没有代理时URI的解析
image.png借助于DNS
4.2 有显式代理时URI的解析
有显式代理时,用户的URI会直接发送给代理,浏览器不再执行所有这些便捷扩展功能
image.png
4.3 有拦截代理时URI的解析
在4a中,客户端已经成功解析了主机名,并有了一张IP地址列表。有些IP地址可能停用了。所以客户端会尝试连接每个IP地址。但对于拦截代理来说,第一次连接请求就会被代理服务器拦截成功,不会连接到原始服务器上。客户端认为它在与web服务器进行成功对话,但那个web服务器可能甚至不处于活跃状态。
当代理最终准备好与真正的原始服务器进行交互时,代理可能会发下那个IP地址实际指向的时一个停用的服务器。为了提供浏览器相同的容错机制,代理可以通过解析host首部主机名,也可以通过ip地址的反向dns来尝试其他IP。
5 追踪报文
http 报文中的via 首部说明了 http报文经过了多少代理。2
image.pngimage.png
在http/1.1 中的trace 方法。用户可以跟踪代理链传输的请求报文。
trace 对代理流的调试非常有用。
当trace 请求到达目标服务器时,整条请求报文都会被封装在一条HTTP响应主体中,回送给发送端。
image.png
6 代理认证
访问代理也会需要权限
image.png
Option 首部可以拿到服务器支持的所有方法
image.png
网友评论