20.1 重定向简介

来源:互联网 发布:人事软件 编辑:程序博客网 时间:2024/06/11 03:54
  • HTTP 并不是独自运行在网上的。很多协议都会在 HTTP 报文的传输过程中对其数据进行管理。HTTP 只关心旅程的端点(发送者和接收者),但在包含有镜像服务器、Web 代理和缓存的网络世界中,HTTP 报文的目的地不一定是直接可达的。
  • 重定向技术通常可以用来确定报文是否终结于某个代理、缓存或服务器集群中某台特定的服务器。重定向技术可以将报文发送到客户端没有显式请求的地方去。

1. 为何要重定向

  • 由于 HTTP 应用程序总是要做下列 3 件事情,所以在现代网络中重定向是普遍存在的:
    • 可靠地执行 HTTP 事务;
    • 最小化时延;
    • 节约网络带宽。
  • 出于这些原因,Web 内容通常分布在很多地方。可以将重定向当作一组有助于找到“最佳”分布式内容的技术。
  • 由于重定向和负载均衡是共存的,所以本章也涵盖了负载均衡的话题。大多数重定向部署都包含了某些形式的负载均衡。也就是说,它们可以将输入报文的负载分摊到一组服务器中去。反之,因为输入报文一定会在分担负荷的服务器之间进行某种分布,所以任意形式的负载均衡中都包含了重定向。

2. 重定向到何地

  • 从客户端向目标发送 HTTP 请求,目标对其进行处理的角度来看,服务器、代理、缓存和网关对客户端来说都是服务器。很多重定向技术都可用于服务器、代理、缓存和网关,因为它们具有共同的,与服务器类似的特征。
  • 其他一些重定向技术是专门为特定类型的端点设计的,没有通用性。
  • Web 服务器会根据每个 IP 来处理请求。将请求分摊到复制的服务器中去,就意味着应该把对某特定 URL 的每条请求都发送到最佳的 Web 服务器上去(最靠近客户端的、或负载最轻的或采用其他优化策略选择的服务器)。
  • 代理希望根据每个协议来处理请求。在理想情况下,某个代理附近的所有 HTTP 流量都应该通过这个代理传输。因为代理缓存上会存储常用的文档,可以直接提供,从而避免通过更长、更昂贵的路径连接到原始服务器。重定向到代理就像从一条主要通路(无论它通往何处)上将流量分流到一条本地快捷路径上去一样。

3. 重定向协议概览

  • 重定向的目标是尽快地将 HTTP 报文发送到可用的 Web 服务器上去。在穿过因特网的路径上,HTTP 报文传输的方向会受到 HTTP 应用程序和报文经由的路由设备的影响,参见以下示例:
    • 配置创建客户端报文的浏览器应用程序,使其将报文发送给代理服务器。
    • DNS 解析程序会选择用于报文寻址的 IP 地址。对不同物理地域的不同客户端来说,这个 IP 地址可能不同。
    • 报文经过网络传输时,会被划分为一些带有地址的分组;交换机和路由器会检查分组中的 TCP/IP 地址,并据此来确定分组的发送路线。
    • Web 服务器可以通过 HTTP 重定向将请求反弹给不同的 Web 服务器。
  • 浏览器配置、DNS、TCP/IP 路由以及 HTTP 都提供了重定向报文的机制。注意,有些方法,比如浏览器配置,只有在将流量重定向到代理的时候才有意义,而其他一些方法(比如 DNS 重定向),则可用于将流量发送给任意服务器。(DNS 也不能随便重定向,目标 IP 地址的服务器上没有托管所需的虚拟主机的话,就和浏览器代理配错一样,毫无意义。)
  • 将报文重定向到服务器的通用重定向方法:
    这里写图片描述
  • 将报文重定向到代理与缓存的重定向方法:
    这里写图片描述
原创粉丝点击