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. 第九周博客作业 <西北师范大学| 周安伟>

    第九周助教作业 助教博客链接https://home.cnblogs.com/u/zaw-315/ 作业要求博客链接https://www.cnblogs.com/nwnu-daizh/p/10726 ...

  2. ARM汇编指令格式

    一.ARM介绍 1) arm汇编中,程序下一步执行哪一条指令,是根据程序计数器(PC)的值来决定. 类比于8086的CS:IP的功能. 2) 8086属于CISC(复杂指令集),每条指令长度不等,ar ...

  3. javascript Hoisting变量提升

    1. 看人家举的两个例子,我认为这里的判断是否定义: !var 其实就是 指是否在函数function里面定义了.只有在funciton里面定义了了,js才hoist到最上面去找这个变量的值,否则就按 ...

  4. boost中bind的使用

    :first-child { margin-top: 0px; } .markdown-preview:not([data-use-github-style]) h1, .markdown-previ ...

  5. oracle的部分增删查改

    1. 创建表空间 create tablespace (demo)表名 logging datafile( 表空间存放的位置)  ‘D:\app\Administrator\oradata\orcl\ ...

  6. FPGA學習筆記(肆)--- Star Test Bench Template Writer

    上一篇testbench我自己也沒怎麽搞懂,再來一篇學習特權同學的方法. 課程:Lesson 7 BJ EPM240学习板实验1——分频计数实验 鏈接:https://www.youtube.com/ ...

  7. Android学习(四)

    教材学习内容总结 图形和定制视图 硬件加速 Android APILevel14及其以上版本为目标的应用程序来说,硬件加速是默认可用的. 可通过android:hardwareAccelerated= ...

  8. [规则原则定理]规则原则定理章4 HTTP&RPC

    rpc是远端过程调用,其调用协议通常包含传输协议和序列化协议. 传输协议包含: 如著名的 [gRPC](grpc / grpc.io) 使用的 http2 协议,也有如dubbo一类的自定义报文的tc ...

  9. C#替换文件中特定字符串,按照原来的编码格式保存

    private void button1_Click(object sender, EventArgs e) { var txt1 = "E:\\Temp\\local"; str ...

  10. Appium+Python自动化 3 -获取 app 包名和 activity

    方法一: ①手机通过USB连接电脑 ②打开手机上被测app ③在电脑上 dos命令窗口,输入命令 adb shell dumpsys window w | findstr \/ | findstr n ...