我想了解 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
Run Code Online (Sandbox Code Playgroud)
据我了解,变体 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 加密,然后将请求转发到服务器?然而,在这种情况下,它是不是打破了客户端和服务器之间的端到端加密?如果我的假设是错误的,那么此设置的正确图片是什么?
具体来说,我想知道从客户端 - …