Web的中间实体

HTTP的代理服务器既是Web服务器又是Web客户端,它既需要正确地处理从客户端发来的请求和连接,返回响应,有需要向服务器发送请求,并接受响应。

私有和共享代理

代理服务器可以是某个客户端专用的,被称为私有代理,也可以是很多客户端共享的,被称为公共代理。

为什么使用代理

代理服务器可以实现各种时髦并有用的功能。可以改善安全性,提高性能,节省费用,可以看到并接触到所有流过的HTTP流量。可以监视流量并对其进行修改,可以实现很多有用的增值Web服务。下面给出几种代理的使用示例:

  • 儿童过滤器:利用过滤器代理阻止学生访问成人内容
  • 安全防火墙:代理服务器会在网络中的单一安全节点上限制哪些应用层协议的数据可以流入或流出一个组织。
  • Web缓存:维护了常用文档的本地副本,将它们按需提供,以减少缓慢且昂贵的因特网通信
  • 反向代理:假扮Web服务器,接收发给Web服务器的真实请求,然后可以发起与其他服务器的通信,以便按需定位所请求的内容。
  • 内容路由器:根据因特流量状况以及内容类型将请求导向特定的Web服务器
  • 转码器:代理服务器在将内容发送给客户端之前,可以修改内容的主题格式,在这些数据表示法之间进行的透明转换被称为转码
  • 匿名者:匿名者代理会主动从HTTP报文中删除身份特性,从而提供高度的私密性和匿名性。

代理会去往何处

在一个网络结构中部署代理时,它会位于何处???

代理服务器的部署

根据代理的目标用途,可以将代理放在任意位置,如下是部署代理服务器的几种方式:

  • 出口代理:将代理固定在本地网络的出口点,以便控制本地网络和大型因特网之间的流量。
  • 访问(入口)代理:代理常被放在ISP访问点上,用以处理来自客户的聚合请求。
  • 反向代理:通常被部署在网络边缘,在Web服务器之前,作为替代物使用。
  • 网络交换代理:可以将具有足够处理能力的代理放在网络之间的因特网对等交换点上,通过缓存来减轻因特网节点的拥塞,并对流量进行监视。

代理的层次结构

可以通过代理层次(proxy hierarchy)结构将代理级联起来。
在代理层次结构中,会将报文从一个代理传给另一个代理,直到最终抵达原始服务器为止。

代理是如何获取流量的

客户端通常会直接与Web服务器进行通信,那么HTTP流量怎样才能首先流向代理呢?
常见方式有如下四种:

  • 修改客户端:如果将客户端配置为使用代理服务器,客户端就会将HTTP请求有意地直接发送给代理。
  • 修改网络:网络基础设施可以通过若干种技术,在客户端不知道的情况下,拦截流量并将其导入代理。
  • 修改DNS的命名空间:放在Web服务器之前的代理服务器,会直接假扮Web服务器的名字和IP地址
  • 修改Web服务器:可以在某些Web服务器配置为向客户端发送一条HTTP重定向命令,将客户端请求重定向到一个代理上去。

客户端的代理设置

所有的现代Web浏览器都允许用户对代理的使用进行配置,很多浏览器提供了多种配置代理的方式

手工配置

显示地设置要使用的代理

代理的自动配置(Proxy Auto-Configuration,PAC)

PAC文件是一些小型的JavaScript程序,可以在运行过程中计算代理设置。
要使用PAC文件,就要用JavaScript PAC文件的URI来配置浏览器,浏览器会从这个URI上获取PAC文件,并用JavaScript逻辑为每次访问计算恰当的代理服务器。

WPAD(Web Proxy Autodiscovery Protocol)

WPAD协议的算法会使用发现机制,逐级上升策略自动地为浏览器找到合适的PAC文件,实现WPAD协议的客户端需要。

追踪报文

现在,在将Web请求从客户端传送到服务器的路径上,经过两个或多个代理是很常见的。
代理是由不同厂商开发的,有不同的特性和缺陷,由各种不同的组织负责管理。
随着代理的逐渐流行,我们要能够追踪经过代理的报文流,以检测出各种问题。

Via首部

Via首部字段列出了与报文途径的每个中间节点(代理或网关)有关的信息。
报文每经过一个节点,都必须将这个中间节点添加到Via列表的末尾。

TRACE方法

通过TRACE方法,用户可以跟踪经代理链传输的请求报文,观察报文经过了哪些代理,以及每个代理是如何对请求报文进行修改的。

代理认证

HTTP定义了一种名为代理认证(proxy authentication)的机制,这种机制可以阻止对内容的请求,知道用户向代理提供了有效的访问权限证书为止。

《HTTP权威指南》6-代理的更多相关文章

  1. Struts2权威指南笔记

    Struts2权威指南笔记 1.mvc特点包括: ① 多个视图可以对应一个模型 ② 模型返回的数据与显示逻辑分离 ③ 应用层被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性 ④ 控制层的概念也 ...

  2. 【HTTP权威指南】第1 章 HTTP 概述

    1.1 HTTP--因特网的多媒体信使 ................................................................................ ...

  3. 《HTTP权威指南》读书笔记(一)

    1.因特网上有数千种不同的数据类型,HTTP仔细地给每种要通过Web传输的对象都搭上了名为MIME类型的数据格式标签.WEB服务器会为所有HTTP对象数据附加一个MIME类型.当Web浏览器从服务器中 ...

  4. 《http权威指南》读书笔记18

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  5. 《http权威指南》读书笔记17

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  6. 《http权威指南》读书笔记13

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  7. 《http权威指南》读书笔记12

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  8. 《http权威指南》读书笔记11

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  9. 《http权威指南》读书笔记8

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  10. 《http权威指南》读书笔记7

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

随机推荐

  1. JMETER java.net.SocketException: Connection reset 报错解决方案

    相关值解析MaxUserPort:最大动态端口数(Default = 5000, Max = 65534)TcpTimedWaitDelay:TCP等待延迟时间(30)TcpNumConnection ...

  2. python 全局变量

    修改全局变量 name = 'jason' def change_name(): global name name = 'Jason'

  3. [剑指Offer]60-n个骰子的点数

    题意 输入骰子个数n,打印出所有骰子朝上的点的点数之和,及对应的概率. 题解 循环. n个骰子,点数之和在n~6n范围内.计算n个骰子扔出和为m的情况数,等于n-1个骰子扔出m-1,m-2...m-6 ...

  4. js真乃神器也

    var a =document.getElementsByClassName('SearchResult__title-text'); for (i = 0;i < a.length;i++){ ...

  5. Google关于Spanner的论文中分布式事务的实现

    Google关于Spanner的论文中分布式事务的实现 Google在Spanner相关的论文中详细的解释了Percolator分布式事务的实现方式, 而且用简洁的伪代码示例怎么实现分布式事务; Pe ...

  6. 当多线程并发遇到Actor

    https://mp.weixin.qq.com/s/mzZatZ10Rh19IEgQvbhGUg

  7. identityserver4 代码系列

    链接:https://pan.baidu.com/s/1ePLwUxGpIPObwA8nnfDT9w 提取码:gr0x

  8. powershell脚本找修改的文件

    $sourcedir="D:\workspace" $targetdir="E:\newf" $lastdate="2017-05-19" ...

  9. pip install cv2报错

    pip install cv2 安装cv2报错: Could not find a version that satisfies the requirement cv2 (from versions: ...

  10. 第三周助教工作总结——NWNU李泓毅

    本周点评作业数量:第一部分是第一篇博客的剩余部分,给出了共计22份作业的具体分数.第二部分是第二篇博客的已提交部分共计19份作业. 这是我的博客地址:https://www.cnblogs.com/N ...