http代理穿透

※HTTP 隧道※

--------

HTTP是基于文本的通过浏览器检索网页的协议。 大多数情况下你躲在代理服务器的后面,通过LAN接入互联网。 在IE的Connection Option中, 你给出你的LAN的设置。 这个代理服务器运行着基于文本的协议, 你从它那里可以得到外界的网络HTTP相关的数据。是的, 用HTTP通过它上面的小的望孔可以连接到外部世界, 并用二进制协议得到你想要的数据, 或者甚至是你的协议。 它通过HTTP。

※HTTPS 解释※

---------

在HTTPS中, 数据以一种安全的方式从浏览器到服务器和从服务器到浏览器。 它是二进制的协议; 当他穿过代理时, 代理不知道是什么。 代理仅仅允许二进制流打开, 让服务器和客户两者之间交换数据。 代理服务器认为我们在进行某个安全的会话。

对于HTTPS, 你的浏览器连接到代理服务器,并送出一个命令

CONNECT neurospeech.com:443 HTTP/1.0 <CR><LF>

HOST neurospeech.com:443<CR><LF>

【...如果需要,HTTP头部的其它行以<CR><LF>结束 】

<CR><LF>    // 最后的空行

接下来, 代理服务器把它作为某个HTTP安全会话, 打开一个到需求服务器和端口的二进制流。 如果连接确立, 代理服务器返回如下回应:

HTTP/1.0 200 Connection Established<CR><LF>

【...忽略所有HTTP头部的其它行以<CR><LF>结束,】

<CR><LF>    // 最后的空行

现在, 浏览器连接到了终端服务器, 可以用二进制和安全的方式交换数据了。

宁任声  14:45:05

通过HTTP协议与代理服务器建立连接,协议信令中包含要连接到的远程主机的IP和端口号,如果有需要身份验证的话还需要加上授权信息,服务器收到信令后首先进行身份验证,通过后便与远程主机建立连接,连接成功之后会返回给客户端200,表示验证通过,就这么简单,下面是具体的信令格式:

CONNECT 124.xxx.xxx.xx:443 HTTP/1.1 //建立http隧道要443端口

Proxy-Connection: Keep-Alive   //客户端到服务器端的连接持续有效

Content-Length: 0

Host: 124.xxx.xxx.xx   //主机地址

Proxy-Authorization:Basic YTph //身份验证信息

User-Agent: OpenFetion //可以标识请求者的信息,如什么浏览器类型和版本、操作系统、使用语言等信息

     其中Proxy-Authorization是身份验证信息,Basic后面的字符串是用户名和密码组合后进行base64编码的结果,也就是对username:password进行base64编码。

    其实编码对安全性没什么意义,base64严格意义上都已经不能算是加密了,现在信息安全这么受重视的年代,不需要密钥的加密算法还是叫编码更贴切一些,抓到这种包之后瞬间就可以得到用户名和密码。

HTTP/1.0 200 Connection established

    客户端收到收面的信令后表示成功建立连接,接下来要发送给远程主机的数据就可以发送给代理服务器了,代理服务器建立连接后会在根据IP地址和端口号对应的连接放入缓存,收到信令后再根据IP地址和端口号从缓存中找到对应的连接,将数据通过该连接转发出去。


转载于:https://my.oschina.net/u/1860977/blog/291493

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值