- 主要介绍 HTTP 重定向、DNS 重定向、任播寻址、IP MAC 转发以及 IP 地址转发。
1. HTTP 重定向
- Web 服务器可以将短的重定向报文发回给客户端,告诉他们去其他地方试试。
- 有些 Web 站点会将 HTTP 重定向作为一种简单的负载均衡形式来使用。处理重定向的服务器(重定向服务器)找到可用的负载最小的内容服务器,并将浏览器重定向到那台服务器上去。
- 对广泛分布的 Web 站点来说,确定“最佳”的可用服务器会更复杂一些,不仅要考虑到服务器的负载,还要考虑到浏览器和服务器之间的因特网距离。
- 与其他一些形式的重定向相比,HTTP 重定向的优点之一就是重定向服务器知道客户端的 IP 地址;理论上来讲,它可以做出更合理的选择。
- 下图是 HTTP 重定向的工作过程:
- a 中,Alice 向 www.joes-hardware.com 发送了一条请求:
GET /hammers.html HTTP/1.0
Host: www.joes-hardware.com
User-Agent: Mozilla/4.51 [en] (X11; U; IRIX 6.2 IP22)
- b 中,服务器没有回送带有 HTTP 状态码 200 的 Web 页面主体,而是回送了一个带有状态码 302 的重定向报文:
HTTP/1.0 302 Redirect
Server: Stronghold/2.4.2 Apache/1.3.6
Location: http://161.58.228.45/hammers.html
- c 中,浏览器会用重定向 URL 重新发送请求,这次会发送给主机 161.58.228.45:
GET /hammers.html HTTP/1.0
Host: 161.58.228.45
User-Agent: Mozilla/4.51 [en] (X11; U; IRIX 6.2 IP22)
- 另一个客户端可能会被重定向到另一台服务器上去。在 f 中,Bob 的请求会被重定向到 161.58.228.46。
- a 中,Alice 向 www.joes-hardware.com 发送了一条请求:
- 缺点:
• 需要原始服务器进行大量处理来判断要重定向到哪台服务器上去。有时,发布重定向所需的处理量几乎与提供页面本身所需的处理量一样。
• 增加了用户时延,因为访问页面时要进行两次往返。
• 如果重定向服务器出故障,站点就会瘫痪。 - 由于存在这些弱点,HTTP 重定向通常都会与其他一种或多种重定向技术结合使用。
2. DNS 重定向
- 每次客户端访问网站时,都必须将域名解析为 IP 地址。DNS 解析程序可能是客户端自己的操作系统,可能是客户端网络中的一台 DNS 服务器,或者是一台远距离的 DNS 服务器。
- DNS 允许将几个 IP 地址关联到一个域中,可以配置 DNS 解析程序,或对其进行编程,以返回可变的 IP 地址。解析程序返回 IP 地址时所基于的原则可以很简单(轮转),也可以很复杂(比如查看几台服务器上的负载,并返回负载最轻的服务器的 IP 地址)。
- 下图中,Joe 为 www.joes-hardware.com 运行了 4 台服