本文翻译自这里,访问原文可能需要科学上网。

proxy服务器可以作为访问http和https资源的网关,这两种类型的存在造成了一种困惑,从而引发配置错误甚至安全漏洞。下面我们就一起来看一下这两种类型的proxy分别做了什么。

http proxy

先来看看流程,http客户端发送一个请求到http代理,让代理到远端目的服务器上获取资源然后传递给客户端。远端服务器上的资源不一定要通过http协议访问,只要代理支持,http客户端可以发送ftp或者其他命令给代理,这也包括https。http客户端访问代理使用的就是普通的http协议,像GET,POST,HEAD

http代理从客户端获取请求,分析并做出对应动作。如果请求的远端服务器的资源不在代理的缓存中从而需要重新获取的话,代理会做为客户端连接到远端服务器,获取请求的资源并传递给客户端。

如果远端服务器的资源需要通过https协议访问,http代理会去验证远端服务器的X.509证书。

这种http连接不能保证端到端的安全性。的确是可用提前对远端服务器的资源进行保护,但是即使客户端和代理都采用https,代理还是会接触到没有被https保护的原始数据,甚至这些原始数据还会保存在代理的缓存当中(如果代理开启了缓存功能的话)。

https proxy

https代理就是为了解决端到端安全性而出现的。还是先看看流程,客户端发送一个特殊的CONNECT请求给代理,代理通过和远端服务器建立一条TCP连接从而创建一个不透明的隧道。TCP的套接字建立完成后,https代理返回一个200状态码给客户端并开始在客户端以及远端服务器之间转发数据。这种设计意味着客户端和远端服务器之间不仅仅局限于https流量,事实上任何协议都可以通过这个隧道在客户端和远端服务器之间传递。

代理连接到远端服务器并向客户端进行确认,从而建立一条不透明隧道。正是因为这种不透明的隧道,端到端的安全性得到了保障。

除非是要做debug或者是穿刺实验,不要使用http代理去获取https资源。

http和https代理区别相关推荐

  1. 简单说下HTTP代理、HTTPS代理、SOCKS代理的原理区别,charles抓包HTTPS原理

    采用PROXY代理方式通讯时,都是客户只TCP/IP连接到代理,客户只和代理通讯.  代理和目标进行TCP/IP通讯,代理需要先有PROXY信息,才能知道目标服务器的地址. HTTP代理最简单!因为H ...

  2. HTTP代理和HTTPS代理的区别

    随着代理服务器的广泛使用,大家多少对这一工具有一些了解,今天我们就来看看HTTP代理和HTTPS代理的工作流程有哪些不同? HTTP协议即超文本传输协议,它的全称为Hyper Text Transfe ...

  3. HTTP GET/CONNECT代理区别

    HTTP GET/CONNECT代理区别举例: HTTP Proxy Server :<wbr>127.0.0.1 8080<br> Access Web Site:<a ...

  4. 浅谈HTTP 和 HTTPS的区别

    HTTP 和 HTTPS 的区别 无论是在校学习还是找工作的时候,老师和面试官都问过同学 HTTP 和 HTTPS 的区别. HTTP和HTTPS是计算机网络中很重要的知识点,面试的时候很容易被问他们 ...

  5. Nginx-Caddy之HTTP-HTTPS代理区别

    本文首发于个人博客,文章链接为:https://blog.d77.xyz/archives/6fb5f2d2.html 偶然的机会,发现 HTTP 代理和 HTTPS 代理这两个词,没接触过 HTTP ...

  6. nginx和gunicorn相关,反向代理和正向代理区别,静态资源和动态资源

    nginx官网:http://nginx.org/ nginx github:https://github.com/nginx/nginx 反向代理和正向代理区别:https://www.cnblog ...

  7. 【转】http与https代理中的差异及细节

    前提: HTTP/1.1中,默认开启长连接,如客户端不需要,需要加上请求首部connection:close告知服务器.如服务器不支持长连接,则需要加上响应首部connection:close告知客户 ...

  8. http和https的区别 与 SSL/TLS协议运行机制的概述

    http和https的区别 与 SSL/TLS协议运行机制的概述 参考1 1 http 是不使用的SSL/TSL的通信通道 窃听风险:第三方获取通信内容 篡改风险:修改通信内容 冒充风险:冒充他人身份 ...

  9. http与https的区别,http 1.0与1.1的区别

    Http与Https的区别: HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头 HTTP 是不安全的,而 HTTPS 是安全的 HTTP 标准端口是80 , ...

最新文章

  1. Android中的网络(字节跳动)
  2. 获取鼠标在盒子中的坐标
  3. [Swift][OC]tableView去掉顶部空白
  4. ARM通用NEON多媒体处理SIMD引擎
  5. 艾伟:尽可能摆脱对HttpContext的依赖
  6. 【风控】作弊用户行为序列图片化
  7. 谁最终需要Java模块?
  8. 探索性测试 之 极速测试
  9. linux怎么打开rdp文件,Linux运维知识:linux实现rdp访问
  10. 编程菜鸟的日记-初学尝试编程递归
  11. 税控盘版开票助手开发
  12. python3的spyder安装,python中spyder怎么安装
  13. 计算机毕业设计——简单的网页设计HTML+CSS+JavaScript
  14. Cloudera:开放式数据湖仓,释放数据分析潜力
  15. Linux入侵痕迹清理
  16. turtlebot 2i 安装*
  17. Globally and Locally Consistent Image Completion 实验记录
  18. 在美国成年人群体中,语音助手Siri已经成了第二大移动搜索引擎
  19. java排序接口ComparableT 的实现与使用
  20. concatenation 和 element-wise summation 该选哪个?

热门文章

  1. SNPE分析与评测 (1)
  2. android--手机桌面增加网址链接图标(解决方案二)
  3. 单片机入门:点亮第一个LED小灯
  4. 【FPGA教程案例54】深度学习案例1——基于FPGA的CNN卷积神经网络之理论分析和FPGA模块划分
  5. stm32的157系列linux,STM32MP157A-DK1测评 (1)官方OpenSTLinux烧写
  6. 战地指挥官 服务器维护,战地指挥官突然显示数据包损坏怎么办 解决数据包损坏方案...
  7. 【PR】音频处理及过度效果
  8. Android模拟器上模拟GPS
  9. 详细实现ESP8266WIFI时钟(基于51单片机)
  10. 【蓝桥杯选拔赛真题10】Scratch投球 少儿编程scratch蓝桥杯选拔赛真题讲解