我们经常在网络浏览器代理设置中找到地址、端口等列。我知道当我们使用代理访问页面时,网络浏览器从代理服务器请求网页,但我想知道整个机制是如何工作的?我观察到,在我们用尽免费数据使用后,许多 ISP 只允许访问单个 IP(他们网站的)。但是,当我们在代理 URL 中输入要浏览的站点,然后输入允许的 IP 时,该站点就会被加载。这是如何工作的?
user1447426
问问题
8238 次
2 回答
9
通常,您的浏览器只是连接到代理地址和端口,而不是 DNS 名称解析到的任何 IP 地址。然后它按正常方式发出 Web 请求。
Web 代理读取标头,使用 HTTP/1.1 的“主机”标头来确定请求应该去哪里,然后让该请求自己在两个方向中继所有剩余的数据。
代理通常也会进行缓存,因此如果另一个人从该代理请求相同的页面,它可以只返回以前的结果。(这是简化的——缓存是一个复杂的话题。)
由于代理完全控制连接,它可以选择将请求路由到其他地方、抓取请求和回复数据、注入其他内容(如广告)或完全阻止您。使用 SSL 来防止这种情况。
一些网络代理是“透明的”。它们驻留在网关上,所有 IP 流量都必须通过该网关,并使用机器的网络堆栈将到端口 80 的传出连接重定向到本地端口。然后它的行为就像在浏览器中定义了代理一样。
其他代理,如 SOCKS,有一个专用协议,也允许发出非 HTTP 请求。
于 2012-11-13T15:25:03.487 回答