http代理://lx.gongxuanwang.com/sszt/7.htm 这个网站什么结构

上一篇文章我们完整的介绍了 http代悝 是如何使用 TCP 进行连接的接下来的文章我们再来看看你在面试中经常会被问到的关于代理的问题。

百度百科是这么解释的:代理客户机嘚 http代理 访问主要代理浏览器访问网页,它的端口一般为80、8080、3128等

百度百科实在是太模糊了我们来细致的说一下什么是 http代理 代理,说 http代理 玳理那我们首先就得来说一下 WEB 代理了。

代理说白了就是“中介”,而 Web 代理(proxy)服务器是网络的中间实体代理位于客户端和服务器之間,扮演“中间 人”的角色在各端点之间来回传送 http代理 报文。

Web 上的代理服务器是代表客户端完成事务处理的中间人如果没有 Web 代理,http代悝 客户端就要直接与 http代理 服务器进行对话有了 Web 代理,客户端就可以与代理进行对 话然后由代理代表客户端与服务器进行交流。客户端仍然会完成对事务的处理但它是 通过代理服务器提供的优质服务来实现的。 http代理 的代理服务器既是 Web 服务器又是 Web 客户端http代理 客户端会向玳理发送请求 报文,代理服务器必须像 Web 服务器一样正确地处理请求和连接,然后返回响应

同时,代理自身要向服务器发送请求这样,其行为就必须像正确的 http代理 客户端一样要 发送请求并接收响应,我们大家来看一幅图:

如果要创建自己的 http代理 代理就要认真地遵循為 http代理 客户端和 http代理 服务器制定的规则。

代理分为了私有的代理和共享的代理

大多数代理都是公共的共享代理集中式代理的成本效率更高,更容易管理某些代理应用,比如高速缓存代理服务器会利用用户间共同的请求,这样的话汇入同一个代理服务器的用户越多,咜就越有用

专用的私有代理并不常见,但它们确实存在尤其是直接运行在客户端计算机上的时候。有些浏览器辅助产品以及一些 ISP 服務,会在用户的 PC 上直接运行一些小型 的代理以便扩展浏览器特性,提高性能或为免费 ISP 服务提供主机广告。

1.2 代理和网关的区别

代理 连接嘚是两个或多个使用相同协议的应用程序而网关不一样,网关连接的则是两个或 多个使用不同协议的端点网关 扮演的是“协议转换器”的角色,即使客户端和服务器使用 的是不同的协议客户端也可以通过它完成与服务器之间的事务处理。

其实我们从图上看 http代理 网关囷 http代理 代理之间的区别实在是很模糊,由于浏览器和服务器实现的是不同版本的 http代理代理也经常要做一些协议转换工作。而商业化的代悝服务器也会实现网关的功能 来支持 SSL 安全协议、SOCKS 防火墙、FTP 访问以及基于 Web 的应用程序。

1.2 为什么使用代理

代理服务器可以改善安全性提高性能,节省费 用代理服务器可以看到并接触到所有流过的 http代理 流量,所以代理可以监视流量并对其 进行修改以实现很多有用的增值 Web 服務。

我们来看一下几种具体的代理的使用方法

小学在为教育站点提供无阻碍访问的同时可以利用过滤器代理来阻止学生访问成人 内容。

鈳以用代理服务器在大量 Web 服务器和 Web 资源之间实现统一的访问控制策略创建审核跟踪机制。这在大型企业环境或其他分布式机构中是很有鼡的 在集中式代理服务器上可以对所有访问控制功能进行配置,而无需在众多由不同组织管理、不同厂商制造、使用不同模式的 Web 服务器仩进行经常性的访问控制升级

网络安全工程师通常会使用代理服务器来提高安全性。代理服务器会在网络中的单一安全节点上限制哪些應用层协议的数据可以流入或流出一个组织还可以提供用来消除病毒的 Web 和 E-mail 代理使用的那种挂钩程序,以便对流量进行详细的检查

其实这個反向代理才是我们需要使用的代理可以假扮 Web 服务器。这些被称为替代物(surrogate)或反向代理(reverse proxy)的代理接收发给 Web 服务器的真实请求但与 Web 垺务器不同的是,它们可以发起与其他服务器的通信以便按需定位所请求的内容。可以用这些反向代理来提高访问慢速 Web 服务器上公共内嫆时的性能在这种配置 中,通常将这些反向代理称为服务器加速器(server accelerator)还 可以将替代物与内容路由功能配合使用,以创建按需复制内嫆的分布式网络

既然我们都知道了代理能够做些什么,那是不是需要知道他从哪里来到哪里去呢?接下来我们就看看代理他落在哪里

1.3.1 玳理服务器的部署

根据用处的不同都能把代理服务器安置在不同的地点,

1.4 代理是如何进行认证的

代理可以作为访问控制设备使用http代理 萣义了一种名为代理认证(proxy authentication)的机制,这种机制可以阻止对内容的请求直到用户向代理提供了有效的访问权限证书为止。

  • 对受限内容的請求到达一台代理服务器时代理服务器可以返回一个要求使用访问证 书的 407 Proxy Authorization Required 状态码,以及一个用于描述怎样提供这些证书 的 Proxy-Authenticate 首部字段

  • 客户端收到 407 响应时会尝试着从本地数据库中,或者通过提示用户来搜集所需要 的证书

  • 只要获得了证书,客户端就会重新发送请求在 Proxy-Authorization 首部芓段中 提供所要求的证书。

  • 如果证书有效代理就会将原始请求沿着传输链路向下传送(参见图 6-25c);否 则,就发送另一条 407 应答

其实说白叻代理可以实现认证授权机制,然后对我们对内容的访问进行相对应的控制如下图:

若传输链路中有多个代理,且每个代理都要进行认證时代理认证通常无法很好地工作。 人们建议应该对 http代理 进行升级,将认证证书与代理链中特定的路标联系起来但这些 升级措施并沒有得到广泛实现。

代理服务器可能无法理解所有经其传输的首部字段

有些首部可能比代理自身还要新;其 他首部可能是特定应用程序獨有的定制首部。代理必须对不认识的首部字段进行转发而 且必须维持同名首部字段的相对顺序。

关于 http代理 代理我就先说这么多,剩丅的内容还有待大家一起进行发掘

《http代理 权威指南》

个人强烈推荐《图解 http代理》这本书,作者是日本人图解确实很清晰很帮助人理解。

我是懿一个正在被打击却努力前进的码农。

之前写过一个篇 这次介绍代理垺务器, 代理服务器是http代理协议中一个重要的组件 发挥着重要的作用。 本文介绍一些http代理代理服务器的概念和工作原理

Web代理(proxy)服务器昰网络的中间实体 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色

http代理的代理服务器即是Web服务器又是Web客户端。

Fiddler 是以代理web服务器嘚形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler退出的时候它会自动注销代理这样就不会影响别的程序。

自己去寻找代理服务器很麻烦 一般都是鼡FQ软件来自动发现代理服务器的。

经常听新闻说”某某某“在网络上发布帖子,被跨省追缉了   假如他使用匿名的代理服务器,就不容噫暴露自己的身份了 

http代理代理服务器的匿名性是指: http代理代理服务器通过删除http代理报文中的身份特性(比如客户端的IP地址, 或cookie,或URI的会话ID) 从而对远端服务器隐藏原始用户的IP地址以及其他细节。 同时http代理代理服务器上也不会记录原始用户访问记录的log(否则也会被查到)

比如局域网不能上网, 只能通过局域网内的一台代理服务器上网

大部分代理服务器都具有缓存的功能,就好像一个大的cache 它有很大的存储空間,它不断将新取得数据存储到它本地的存储器上 如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重噺从Web服务器取数据而直接将存储器上的数据传给用户的浏览器,这样就能显著提高浏览速度

很多教育机构, 会利用过滤器代理来阻止學生访问成人内容

IE浏览器可以手动设置代理, 很简单指定一个IP地址和端口就可以了。 如下图

假如代理服务器的IP地址改变了,或者端ロ号改变了 难道要几百个客户端的浏览器去修改浏览器设置? Impossable  这太难维护了  下面还有一种更高级点的方法。

 手动配置代理很简单但昰不灵活。 只能指定一个代理服务器而且不支持故障转移。 

在大公司里一般都使用PAC文件来配置只需要指定PAC文件的URL就可以了, 如图:

当瀏览器访问网络的时候会根据PAC文件中的JavaScript函数来选择恰当的代理服务器。

// 应该使用指定的代理 // 直连不经过任何代理

 浏览器只要选中“自動检测设置”, 就可以使用WPAD协议 WPAD会自动找到PAC文件的URL。  WPAD会使用一系列的资源发现技术(DHCP,DNS等)去寻找PAC文件

代理服务器也可以需要权限认证, http代理定义了一种名为代理认证(Proxy authentication)的机制 这种机制可以阻止对内容的请求。

当浏览器访问需要认证的代理时 代理服务器会返回407 Authorization Required,告诉瀏览器输入用户名和密码。

代理认证跟http代理基本认证是一样的机制 如需了解代理认证的机制,请看

代理服务器和抓包工具(比如Fiddler)都能看到http代理 request中的数据 如果我们发送的request中有敏感数据,比如用户名密码,信用卡号码这些信息都会被代理服务器看到。所以非常危险 所以我们一般都是用http代理S来加密http代理 request.  这样代理服务器就看不到里面的数据了。

我要回帖

更多关于 http代理 的文章

 

随机推荐