博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTP隧道解决的问题
阅读量:5367 次
发布时间:2019-06-15

本文共 972 字,大约阅读时间需要 3 分钟。

转自别人的文章:https://blog.csdn.net/gogzf/article/details/78385506

  • 客户端通常会用 Web 代理服务器代表它们来访问 Web 服务器。比如,很多公司都会在公司网络和公共因特网的安全边界上放置一个代理。代理是防火墙路由器唯一允许进行 HTTP 流量交换的设备,它可能会进行病毒检测或其他的内容控制工作。
    这里写图片描述
  • 但只要客户端开始用服务器的公开密钥对发往服务器的数据进行加密,代理就再也不能读取 HTTP 首部了。代理不能读取 HTTP 首部,就无法知道应该将请求转向何处了。
    这里写图片描述
  • 为了使 HTTPS 与代理配合工作,要进行几处修改以告知代理连接到何处。
  • 一种常用的技术就是 HTTPS SSL 隧道协议。使用 HTTPS 隧道协议,客户端首先要告知代理,它想要连接的安全主机和端口。这是在开始加密之前,以明文形式告知的,所以代理可以理解这条信息。
  • HTTP 通过新的名为 CONNECT 的扩展方法来发送明文形式的端点信息。CONNECT 方法会告诉代理,打开一条到所期望主机和端口号的连接。这项工作完成之后,直接在客户端和服务器之间以隧道形式传输数据。CONNECT 方法就是一条单行的文本命令,它提供了由冒号分隔的安全原始服务器的主机名和端口号。host:port 后面跟着一个空格和 HTTP 版本字符串,再后面是 CRLF。接下来是零个或多个 HTTP 请求首部行,后面跟着一个空行。空行之后,如果建立连接的握手过程成功完成,就可以开始传输 SSL 数据了。
CONNECT home.netscape.com:443 HTTP/1.0User-agent: Mozilla/1.1N
  • 1
  • 2
  • 3
  • 4
    • 在请求中的空行之后,客户端会等待来自代理的响应。代理会对请求进行评估,确保它是有效的,而且用户有权请求这样一条连接。如果一切正常,代理会建立一条到目标服务器的连接。如果成功,就向客户端发送一条 200 Connection Established 响应。
      HTTP/1.0 200 Connection established
      Proxy-agent: Netscape-Proxy/1.1

转载于:https://www.cnblogs.com/wyqn/p/9556659.html

你可能感兴趣的文章
编写自己的who命令
查看>>
cocos2d-x介绍
查看>>
Python-初始面向对象
查看>>
评价输入法
查看>>
[codevs1157]2^k进制数
查看>>
判断两个对象是否相同
查看>>
java数组
查看>>
学习进度条---第十周
查看>>
11. Container With Most Water && 42. Trapping Rain Water
查看>>
2019年春节期间所看电影的短评
查看>>
WP7 Bing Map 显示中文地图
查看>>
【Python】使用codecs模块进行文件操作及消除文件中的BOM
查看>>
Excel 2007 批量删除隐藏的文本框
查看>>
ASP.NET Zero--3.菜单配置
查看>>
FPGA中RAM使用探索
查看>>
MFC 界面文本控制
查看>>
TCP/IP协议族体系结构
查看>>
mybatis
查看>>
BufferedInputStream 源码分析
查看>>
web Listener
查看>>