http 代理运行逻辑是什么?

2019-10-18 09:18:12 +08:00
 pingc

假设 124.24.12.5:80 是一个代理 IP 我使用代理访问 baidu.com 是不是向 124.24.12.5:80 发送 get 请求 Host: www.baidu.com Pragma: no-cache Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3722.400 QQBrowser/10.5.3751.400 这样呢?

2458 次点击
所在节点    程序员
8 条回复
pingc
2019-10-18 09:19:05 +08:00
假设 124.24.12.5:80 是一个代理 IP
我使用代理访问 baidu.com
是不是向 124.24.12.5:80 发送 get 请求
Host: www.baidu.com
Pragma: no-cache Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3722.400 QQBrowser/10.5.3751.400
这样呢?
virusdefender
2019-10-18 09:25:01 +08:00
要区分普通模式和隧道模式

https://imququ.com/post/web-proxy.html
collery
2019-10-18 09:27:41 +08:00
网上有张 喝椰子水的图
nadoo
2019-10-18 10:46:51 +08:00
以 client 通过代理访问 http://baidu.com/index.htm 为例

http 代理:
client -> 代理,GET 包含域名全路径
GET http://baidu.com/index.htm HTTP/1.1

代理 -> baidu.com
GET /index.htm HTTP/1.1
Host: baidu.com

代理获取到 baidu 返回的数据后,删除一些不需要的 http header,把结果返回给 client


~~~~
http connect 代理:
client -> 代理
CONNECT baidu.com:80

然后代理建立到 baidu.com tcp 连接

client -> 代理(透传) -> baidu.com , 和正常请求 baidu.com 一样
GET / HTTP/1.1
Host: baidu.com/index.htm
nadoo
2019-10-18 10:49:46 +08:00
上面的内容有一点点错误,回复更正居然说我 spamming
nadoo
2019-10-18 10:54:33 +08:00
最后的 GET 应该包括路径,而 Host 只有域名.

系统老是提示:请不要在每一个回复中都包括外链,这看起来像是在 spamming
ghostheaven
2019-10-18 11:04:11 +08:00
你这说的是正向 HTTP 代理,如果是访问非加密链接基本跟你想的一样,除了 GET 的时候需要发送完整的 URL 而不只是 path 部分:
比如直接请求只需要 GET / HTTP/1.1
代理请求就需要 GET http://www.baidu.com/ HTTP/1.1

如果是加密链接就完全不一样了,开头是发送一个 CONNECT www.baidu.com:443 HTTP/1.1,代理收到后帮你连接到 www.baidu.com 的 443 端口,然后剩下的工作就仅仅是转发双方的数据流。

还有,如果代理是其他协议比如 SOCKS5 之类的,就是另外一回事了,甚至可以代理任意 TCP/UDP 请求。
salamanderMH
2019-10-18 11:09:24 +08:00
要区分普通模式和隧道模式

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/610519

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX