windowsdocker 怎么配置http代理 http代理是什么
HTTP 代理服务器在Windows下的实现
摘要:本文介绍了代理服务器的优点,HTTP 代理服务器在Windows 下的实现,最后
简单讨论实现代理服务器的意义。
关键字:
代理服务器(proxy)、HTTP、Windows、线程
普通的因特网访问是一个典型的客户机/服务器(Client/Server)结构:用户本地计算机
上的客户端程序如浏览器发生请求,远端WWW 服务器程序响应请求并提供相应的数据。
而代理(Proxy)处于客户机和服务器之间,对于服务器来说,Proxy是客户机,提出请求;
对于客户机来说,Proxy是服务器,它接受请求并提供数据。
代理服务器模型
代理服务器具有以下几个的优点:
(一)安全屏障
Proxy 是建立在应用层的软件,它的最主要功能是作为firewall 的重要组成部分,为它保
护的主机起到了安全屏障的作用。Proxy起到流量控制,包过滤,访问控制,和操作系统用
户集成等作用,所以Proxy可以成为简单网络管理软件的核心部分,同时它也是中小型企业
INTERNER访问解决方案的重要组成部分。
(二)提高网络性能
当Internet的用户以指数函数增长时,网络的拥挤是网络管理的一个重要问题。Proxy Server
就好像一个大储藏库, 它有很大的Cache空间。如果通过该Proxy有人去过了某个站点,传
输了某些内容,那么Proxy 会将相关的资料 (包含文字、图型、多媒体……)备份一份在Proxy
Server 中。当用户再要通过该Proxy访问相同地址时,可直接从Cache中获得数据。一个有
效的Proxy服务器将可能将90%的用量控制在Proxy 服务器之下。所以不仅用户的访问速度
将会提高,网络的拥挤状况也将会大大改观。
(三)多机共享一个IP地址
当一个局域网只有一个IP时,就可以在服务器上安装Proxy,整个局域网的用户就可通过一
个IP访问Internet了,这样将会给局域网用户节省大量申请IP的费用。
WWW 代理服务器包括主要代理gopher,http,ftp,Telnet等几种服务,各种代理服务
的基本工作原理是相同的。HTTP 代理服务器是WWW 代理服务器的一个最重要的组成部
分,同时HTTP 的代理服务器的实现比较简单,因此在这里以它为样本介绍Windows 下的
代理服务器的实现方法。本文只介绍的代理服务器数据包转发的实现方法,由于Cache的处
理比较复杂,所以本文不对其进行讨论。
1、Brower 通过proxy访问Web Server 头文件的数据格式
由于不可能在此解释HTTP协议,所以只给出最简单的数据格式的例子:
动作:Brower 获得http://202.196.48.9/index.htmBrower 发送到proxy的数据:
2、HTTP代理服务器的建立过程:
1)Proxy启动监听Brower 的连接申请
2)Proxy接受Brower 的申请,Brower 向Proxy发数据
3)Proxy解析Brower 发的数据,确定服务类型(HTTP),服务器地址和服务端口号
4)Proxy连接服务器
5)Proxy启动B_P_S(brower to proxy to server)线程,该线程负责Brower 把数据传到
Proxy,再由Proxy传到Server
6)B_P_S启动S_P_B(Server to Proxy to Brower)线程,该线程负责Server 把数据传到
Proxy,再由Proxy传到Client
7)传输完毕结束B_P_S线程和S_P_B线程
8)循环启动线程,直到所有传输完成
Brower Proxy Server
1.监听
2.连接上,发数据
3.解析
数据
4.连接服务器5.启动线程
初始化
B_P_S线程
S_P_B 线程
数据
数据
Proxy_Server Socket
Brower_Proxy Socket
Brower_Proxy Socket
Brower_Proxy Socket
Proxy_Server Socket
Proxy_Server Socket
接收
发送 接收
发送
HTTP代理服务器的建立过程
3、程序框架结构
HTTP协议是各部分单独连接传送的,Web页面中的每个文本,图片都是作为独立单元
传送的,为了提高Proxy的效率防止主程序阻塞,特意启动三级线程。
各线程之间的关系
主线程在Proxy端口监听Brower 的申请,然后启动B_P_S线程;B_P_S线程负责接受
每个Brower 的申请(每个B_P_S都是独立的),在完成Brower 到Server 单向数据传送的同
时启动S_P_B 线程,然后由S_P_S 线程完成Server 到Brower 的单向数据传送。由于篇幅
所限,本文将简要介绍B发给P的数据分析函数、B_P_S线程函数和S_P_B线程函数
(I) B发给P的数据分析
这部分的主要功能是分析B发给P的数据,确定服务类型和服务器相关信息。
客户机向服务器申请接受HTTP 数据,它发出的HTTP 命令格式第一行一般是:命令
从以上的程序可以看出,Proxy是Brower 访问Server 的中介,它可以监控Brower 发出的所
有的HTTP数据包,对这些数据包进行阻塞,转发和流量记录。同时,它也可以监控Server
发出的所有的HTTP数据包,对这些数据包进行阻塞,转发和流量记录。
对 Browser 而言,在HTTP服务上是连通的,但是在IP层却不通;然而对Server 而言,它
看到的只是一个IP节点。在Internet环境看,这是一个单向的数据传输模式。
所有这些特点,使Proxy成为网络接入管理的核心部分,对Proxy简单扩展,就可以完成许
多功能。如果对数据包进行过滤,就构成了一个Fierwall;如果对流量进行记录,就构成了
一个计费系统。
4、实现代理服务器的意义
HTTP 代理服务器是中小型企业Web 访问解决方案的重要组成部分,对它的功能进行
简单的扩展,就可以构成访问计费系统和管理系统,因此拥有代理服务器的内核对企业管理
和程序员都是很有意义的。
周翚 侯滨
HTTP代理,什么是HTTP代理?HTTP代理如何设置?HTTP代理的用途?
什么是HTTP代理?HTTP代理的作用?HTTP代理怎么设置?
HTTP代理什么是反向HTTP代理?反向HTTP代理的工作原理及使用场景
Docker的三种网络代理配置:dockerd pull镜像代理;容器docker run网络代理;docker build代理--build-argdocker pull 代理
http代理和https代理的区别socks代理和http代理的区别
动态HTTP代理与静态HTTP代理的区别及HTTP代理的常见用途与类型
SOCKS代理 与HTTP代理的区别socks代理和http代理的区别