**定个小目标,吃透这本书,每天最少一章 CSDN 见**
-
Web的中间实体
web代理服务器是网络的中实体,代理位于客户端和服务器之间。
HTTP代理服务器既是WEB服务器有时WEB客户端,它需要处理来自客户端的请求报文,也要向服务器发送请求,如果要创建自己额HTTP代理就要认真的遵循为HTTP客户端和HTTP服务器指定的规则。
大多数代理都是公共的共享代理,集中式代理的费效更高,更容易管理。某些代理应用,比如高速缓存代理服务器会利用用户间共同的请求,这样的话,汇入同一个代理服务器的用户越多,它就越有用。
专用的私有代理并不常见,但他们确实存在,尤其是之间允许在客户端机器上的时候。
代理与网关,严格来说,代理链接的连段使用的协议是相同的,而网关则是两个或多个使用不同协议的链接。但现在也有一些需求要求代理能够实现协议不同的传输。 -
为说明使用代理
代理服务器可以实现跟多有用的功能,它可以改善安全性,提高性能,节省费用。还可以对所有接触过的HTTP流量进行监视,修改。
防火墙,网络安全工程师通常会使用代理服务器来提高安全性,对传输中的数据进行检查查看是否携带病毒等。
web缓存,将一些使用频率较高的文档存放到本都,来节约访问HTTP服务器的时间和流量成本。
反向代理 可以假扮成web服务器,这个被称为替代物或反向代理的代理结束发送给web服务器的真是请求,但与web服务器不同的是他们可以发起与其他服务器的通信,以便按需定位所请求的内容。
内容路由器
代理服务器可以作为内容路由器使用,根据因特尔网流量状况以及内容类型将请求导向特定的web服务器
转发器
代理服务器在内容发送给客户端前,可以修改内容的主体格式,这些数据白色发之间进行透明的转码。
匿名者
匿名者代理会主动从HTTP报文中删除自身身份特性,从而提供高度的私密性和匿名性 -
代理会去往何处
代理可以根据其目标用途放在任意位置,可以将代理放在本地网络的出口,以便控制本地网络与大型因特尔网之间的流量,可以防止网络攻击,屏蔽掉一些攻击和不适当的内容
访问代理常被放在ISP访问点上,用来处理来自客户的聚合请求
反向代理通常被部署在网络边缘,在web服务器之前,在哪里他们可以处理所有发个服务器的请求,并在必要是向WEB服务器请求资源。这样可以防止服务器受到攻击,反向到了通常会之间冒用服务器的名字和IP地址,这样所有的请求就会给代理而不是服务器。
网络交换代理可以放在网络之间的因特网对等交换点上,来缓解网络拥塞,并对流量进行监视
负责均衡,子代理可能会根据带你过去附带了的工作负载级别来决定如何选择一个父代理,以均衡负载。子代理可能会选择原始服务器随着的物料区域的父代理。
客户端通常会之间与web服务器进行通信,那代理是怎么才能清楚HTTP流量流向代理
代理是如何获取流量的?
很对浏览器都可以手动配置代理,通过代理访问web服务器,而不是之间访问
还可以通过修改网络,在客户端不知道或者没有参与的情况下拦截网络流量并将其导入代理,这种情况拦截通常依赖以监视HTTP流量的交换设备以及路由器设备。
还可以通过修改DNF的命名空间
也可以将某些web服务器配置为向客户端发送一个HTTP重定向命令,将客户端请求重定向到一个代理上去 -
客户端的代理设置
很多web客户端都允许用户手工配置代理。手动配置可以分为PAC文件和WPAD。 -
与代理请求有关的一些棘手问题
代理RUL与服务器URL的不同,当客户端向服务器发送求情时请求行中只包含部分URL(没有方案,主机或端口)GET /index.html HTTP/1.0 而向代理发送请求时,请求中则包含完整的URL,例如:GET http://www.baidu.com/index.html HTTP/1.0, 在还没有代理的时候客户端是不需要发送全部URL的,但代理处来后,使用部分URL就有问题了,代理需要知道服务器的名称,这样才能链接服务器。现在大部分服务器都改为支持完整URL了。
拦截代理会收到部分URL,由于一些代理是透明的,所以客户端是不知道会经过那些代理的,所以经理使用完整的URL。
代理服务器在转发报文时经量不要修改报文的内容,因为这些修改可能给后面的转发带来无法预知的错误,就算修改也要经理宽松。
当用户输www.oreilly.com时浏览器用oreilly作为主机名并假定HTTP为方案,默认端口为80,默认路径为“/”,当浏览器查找oreilly主机时,查找失败了,浏览器就会对主机名进行自动扩展,请求DNS解析www.oreilly.com,成功就链接服务器,失败就报错。
当使用显示代理时用户的URL会直接发给代理,所以浏览器不会执行上面的操作。
在方向代理中,当客户端访问一个已停用的web服务器时,反向代理的容错机制是非常重要的。 -
追踪报文
在现在的网络环境中,经过两个或多个代理是很常见的,由于各种原因,所以追踪经过的代理服务器也是很有必要的。
Via首部字段列出了与报文途径的没个中间节点有关的信息,报文没经过一个节点,都必须将这个中间节点添加到Via列表的末尾。例如:
Via : 1.1 proxy-62.irenes-isp.bet, HTTP 1.0 cache.joes-haedware.com ok
代理也可以在插入一个字符串前,检查自己即将插入的字符串,来判断是否有路由循环。每个Via路标都有一个独立的代理服务器或者网关,其中包含了其协议和地址有关的信息 ,注意:每个Via路标中最多包含4个组件,一个可选的协议名称(默认HTTP),一个必选的协议版本,一个必选的节点名和一个可选的描述性注释。
因为HTTP报文是通过TCP传输的,当请求报文的Via中是 A–>B–>C的话那么响应报文就一定是C–>B–>A
如果响应报文是通过代理转发的,一定要确保代理没有修改Server首部,因为这个字段是拥有元素服务器的。
因为Via的代理名称可以被其他的代理或者服务器看到,这可以会带来一些不安全的因素,所有的的代理开发着会给它们弄一个假名字。
现在的代理越来越多,由于代理对HTTP的可操作性太高,所以可能会出现一些问题,这时我们可以哟个TRACE方法来查看哪里出现了问题 -
代理认证
代理可以作为访问控制设备使用,HTTP定义了一种名为代理认证的机制,这中机制可以阻止对内容的请求,直达用户向代理提供了有效的访问权限证书为止。 -
代理的互相操作性
客户端服务器和代理是由不同厂商构建的,实现的是不同版本的HTTP规范,他们之间也存在着不同的问题。
代理可能不支持首部和方法,因为有些代理不会实现全部方法,而且由的方式属于定制的方法或者定制的首部,所以当代理不熟悉某个方法,那么只能可能就应该尝试接着将报文转发下去。
如果客户端发送的OPTIONS 的请求是一个"*"就代表请求这个服务器支持的所以功能
如果发送的是一个实际资源地址,就是查询这个特定资源的可用特性
Allow实体首部字段列出了求情UTL表示的资源所支持的方法列表,如果请求URI为 * 的话,列出的就是整个服务器所支持的方法列表。例如:
Allow: GET ,HEAD,PUT
可以将Allow作为请求首部,建议在信的资源上支持某些方法,并不要求服务器支持这些方法,但是应该在相应的响应中包含一个Allow首部,列出时间支持的方法。因为客户端可能以及通过其他途径与元素服务器进行了交流,所以即使代理无法理解指定的所有方法,也不能多Aloow首部字段进行修改。
今天就到着了···············