proxy - http_proxy 和 https_proxy 的区别
问题描述
我想了解 http_proxy 和 https_proxy 环境变量之间的区别。
所以我的理解是,如果我(作为客户端)发送 http 请求,将使用 http_proxy。如果我(作为客户端)发送 https 请求,将使用 https_proxy。
有一些可能的设置来设置 http_proxy 和 https_proxy:
1. http_proxy = http://proxy:port
2. https_proxy = http://proxy:port
3. http_proxy = https://proxy:port
4. https_proxy = https://proxy:port
据我了解,变体 1、2 可能是常见设置。变体 3 怎么样,这是一个可能的设置吗?请求是如何传输的?我认为4也是一个可能的设置,但我不清楚工作流程。
这是我的猜测:
在第一个设置中,如果我向目标服务器发送 http 请求,则将使用 http_proxy,使用此设置,请求将作为客户端发送 --(http 请求) --proxy --(http 请求) -- 服务器
在第二个设置中,如果我向目标服务器发送 https 请求,则将使用 https_proxy,使用此设置,请求将是客户端 --(https 请求)--代理 --(https 请求) --server。在这种情况下,代理只会将加密的数据包传输到服务器,数据包只会在服务器端解密。
在第三个设置中,如果我向目标服务器发送一个 http 请求,使用此设置会发生什么?是否符合条件?
在第四个设置中,如果我向目标服务器发送 https 请求,则将使用 https_proxy,使用此设置,请求将与客户端一起发送 --(https 请求) --proxy --(https 请求) -- 服务器. 在这种情况下,这是否意味着客户端的https请求使用代理的公钥加密,哪个代理先解密请求,然后使用目标服务器的pk加密,然后将请求转发给服务器?但是,在这种情况下,它不会破坏客户端和服务器之间的端到端加密吗?如果我的假设是错误的,那么这个设置的正确图片是什么?
具体来说,我想知道来自客户端 - 代理 - 具有不同代理(http/https)和代理设置(使用 http_proxy/https_proxy 设置)的服务器的数据包流的工作流程。
在所有情况下,我假设服务器都可以接受 http/https 请求。如果服务器只接受 http/https 请求呢?关于上述设置会发生什么以及如何激活它们?我对他们没有清晰的印象。
解决方案
简而言之,两者都http_proxy
支持https_proxy
代理HTTP
或HTTPS
请求。
不同之处在于http_proxy
不加密客户端和代理之间的数据传输,而加密https_proxy
。所以 https_proxy 代理本身需要一个 TLS 证书。
一般来说,http_proxy
对于本地网络来说就足够了。如果您https_proxy
使用仅支持的代理设置变量http_proxy
,则连接将无法正常工作。
因为没有统一的规定,对于http_proxy
和https_proxy
变量,不同的程序可能会做不同的事情。
为了兼容不同的应用程序,我们可能会添加不同的样式,但实际上只要应用程序能够识别以下其中一种,代理应该可以正常工作(HTTP和HTTPS请求)。
- http_proxy= http://user:pass@server:port
- http_proxy= https://user:pass@server:port
- https_proxy= https://user:pass@server:port
https_proxy= http://user:pass@server:port
推荐阅读
- python - 如何将 numpy 数组中的分类数据加载到 Indicator 或 Embedding 列中?
- spring-data-jpa - 无法使用 Spring Data JPA 通过 JNDI 名称访问 Weblogic 数据源
- reactjs - 在 Redux 中使用字符串而不是对象
- javascript - 本地存储*有时*无法在页面之间设置或保留变量
- lisp - lispworks 和 sbcl
- javascript - 如何使用 php 或 javascript/jquery 脚本从服务器下载 .PHP 文件
- nginx - nginx - 读取客户端上设置的自定义标头
- php - 当 SSH 进入但不是通过 cron 时,运行 PHP 文件可以正常工作
- bash - 使用 Docker,如何更改 bash 版本?
- r - dateRangeInput 不影响绘图