《HTTP权威指南》6-代理
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-代理的更多相关文章
- Struts2权威指南笔记
Struts2权威指南笔记 1.mvc特点包括: ① 多个视图可以对应一个模型 ② 模型返回的数据与显示逻辑分离 ③ 应用层被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性 ④ 控制层的概念也 ...
- 【HTTP权威指南】第1 章 HTTP 概述
1.1 HTTP--因特网的多媒体信使 ................................................................................ ...
- 《HTTP权威指南》读书笔记(一)
1.因特网上有数千种不同的数据类型,HTTP仔细地给每种要通过Web传输的对象都搭上了名为MIME类型的数据格式标签.WEB服务器会为所有HTTP对象数据附加一个MIME类型.当Web浏览器从服务器中 ...
- 《http权威指南》读书笔记18
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记17
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记13
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记12
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记11
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记8
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记7
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
随机推荐
- C#入门课程之基础认识
命名规则: 注意变量名的第一个字符必须是字母.下划线.以及@字符 字面值: 字符串字面值: 用Unicode表示一个字符方式:\uxxxx,其中xxxx表示4位的十六进制数,下面两种表示方式一致: u ...
- spring Mongodb查询索引报错 java.lang.NumberFormatException: empty String
最近事情比较多,本篇文章算是把遇到的问题杂糅到一起了. 背景:笔者最近在写一个mongo查询小程序,由于建立索引时字段名用大写,而查询的时候用小写. 代码如下: db.getCollection(&q ...
- C# 使用运算符重载 简化结果判断
执行某个方法后, 一般都要对执行结果判断, 如果执行不成功, 还需要显示错误信息, 我先后使用了下面几种方式 /// <summary> /// 返回int类型结果, msg输出错误信息 ...
- hbase-bloom filter
bloom fliter的作用主要用于提升hbase的读性能,但是会牺牲一定的存储空间. 原理: bloom fliter是一种空间效率很高的随机数据结构,初始状态时,bloom filter是一个包 ...
- 基础汇编指令(16bit 32bit 64bit)
(zz from http://blog.luoyuanhang.com/) ##常见寄存器 寄存器 16位 32位 64位 累加寄存器 accumulator AX EAX RAX 基址寄存器 ba ...
- sql server版本、组件和管理工具
以下信息由何问起收集,希望有帮助. SQL Server 版本 定义 Enterprise 作为高级版本, SQL Server Enterprise 版提供了全面的高端数据中心功能,性能极为快捷.虚 ...
- 错误 : 资产文件“项目\obj\project.assets.json”没有“.NETCoreApp,Version=v2.0”的目标。确保已运行还原,且“netcoreapp2.0”已包含在项目的 TargetFrameworks 中。
升级 vs201715.6.3之后发布出现 错误 : 资产文件“项目\obj\project.assets.json”没有“.NETCoreApp,Version=v2.0”的目标.确保已运行还原,且 ...
- mvc @helper 创建用户自定义html
转载地址:https://www.cnblogs.com/caofangsheng/p/5670071.html
- 文件操作命令(del)
del 命令: // 描述: 删除一个或多个文件.同等于 erase 命令. 相比较 rd 命令来说,del 命令只能删除文件,不能删除文件夹. // 语法: del [/p] [/f] [/s] [ ...
- 高斯混合模型(GMM) - 混合高斯回归(GMR)
http://www.zhihuishi.com/source/2073.html 高斯模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲 ...