第6章: 代理

2021-12-03  本文已影响0人  404Not_Found

代理(proxy)服务器是网络的中间体。代理位于客户端和服务器之间,办理中间人的角色。在各个断电之间来回传送http报文。

1. Web 的中间实体

HTTP的代理服务器是Web服务器又是Web客户端。
http客户端向代理发送请求报文,代理则必须向服务器一样,正确处理请求和连接,然后返回响应。
同时代理自身要向服务器发送请求。

image.png

1.1 私有和共享代理

大家用的:共享代理
比如缓存代理服务器,会利用用户的共同请求,这样的话,汇入同一个代理服务器的用户越多,就越有用。

个人用的: 私有代理

1.2 代理与网关的对比

image.png

2. 为什么使用代理

代理服务器可以实现各种有用的功能,改善安全性,提高性能,节省费用。
代理服务器可以看到并接触到所有流过的http流量。所以代理可以监视流量并对其进行修改,以实现很多有用的增值web服务。

C1 C2 会去访问附近web缓存上的对象A
C3 C4 访问的原始服务器文档

可以用这些反向代理来提高访问服务器上公共内容时的性能。
此时这些反向代理 称为 服务器加速器。还可以将替代物与内容路由功能配合使用,以创建按需复制内容的分布式网络。


image.png

3. 代理会去往何处

3.1 代理服务器的部署

可以根据目标用途,将代理放在任意位置。

image.png

3.2 代理的层次结构

代理的层次结构中,会将报文从一个代理传送给另一个代理。最终到达原始服务器为止。

3.3 代理时如何获取流量的

客户端通常会直接与Web服务器通信,所以这里要解释的的时HTTP流量是怎么首先流向代理的

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.png
image.png

在http/1.1 中的trace 方法。用户可以跟踪代理链传输的请求报文。
trace 对代理流的调试非常有用。
当trace 请求到达目标服务器时,整条请求报文都会被封装在一条HTTP响应主体中,回送给发送端。


image.png

6 代理认证

访问代理也会需要权限


image.png

Option 首部可以拿到服务器支持的所有方法


image.png
上一篇 下一篇

猜你喜欢

热点阅读