小编elm*_*zun的帖子

“CONNECT”和“GET HTTPS”有什么区别?

在进入真正的问题之前,让我解释一下我的项目是如何工作的:为了简单起见,我的代理在我的笔记本电脑上,客户端(我的浏览器)也在那里;例如,远程服务器将是 YouTube。

由于 SwitchOmega 插件,客户端连接到代理的特定端口:客户端想要连接到 www.youtube.com 并且代理收到以下请求:

CONNECT www.youtube.com:443 HTTP/1.1
Host: www.youtube.com:443
Proxy-Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
Run Code Online (Sandbox Code Playgroud)

有人告诉我,当代理收到CONNECT请求时,它应该打开一个到 IP:Port 的 TCP 连接,200 OK向客户端返回一条消息并发送数据,直到连接的一侧关闭。

使用另一个跟踪 HTTP 请求的插件 HTTP Trace,我在浏览器上看到了不同的请求:

GET https://www.youtube.com/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
and other data...
Run Code Online (Sandbox Code Playgroud)

那么,为什么我的代理会CONNECT www.youtube.com:443 HTTP/1.1在 HTTP Trace 显示时收到GET https://www.youtube.com/?他们的意思是一样的吗?

networking proxy https http-proxy

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

http-proxy ×1

https ×1

networking ×1

proxy ×1