3

我们经常在网络浏览器代理设置中找到地址、端口等列。我知道当我们使用代理访问页面时,网络浏览器从代理服务器请求网页,但我想知道整个机制是如何工作的?我观察到,在我们用尽免费数据使用后,许多 ISP 只允许访问单个 IP(他们网站的)。但是,当我们在代理 URL 中输入要浏览的站点,然后输入允许的 IP 时,该站点就会被加载。这是如何工作的?

4

2 回答 2

9

通常,您的浏览器只是连接到代理地址和端口,而不是 DNS 名称解析到的任何 IP 地址。然后它按正常方式发出 Web 请求。

Web 代理读取标头,使用 HTTP/1.1 的“主机”标头来确定请求应该去哪里,然后让该请求自己在两个方向中继所有剩余的数据。

代理通常也会进行缓存,因此如果另一个人从该代理请求相同的页面,它可以只返回以前的结果。(这是简化的——缓存是一个复杂的话题。)

由于代理完全控制连接,它可以选择将请求路由到其他地方、抓取请求和回复数据、注入其他内容(如广告)或完全阻止您。使用 SSL 来防止这种情况。

一些网络代理是“透明的”。它们驻留在网关上,所有 IP 流量都必须通过该网关,并使用机器的网络堆栈将到端口 80 的传出连接重定向到本地端口。然后它的行为就像在浏览器中定义了代理一样。

其他代理,如 SOCKS,有一个专用协议,也允许发出非 HTTP 请求。

于 2012-11-13T15:25:03.487 回答
2

HTTP 代理有两种类型,一种是反向的,一种是正向的。

反向代理与正向代理

Web浏览器使用转发代理,基本上是通过代理发送所有http流量,代理将把这些流量带到互联网上。从您的计算机发出的每个 http 数据包都将在到达目标站点之前发送到代理。

使用代理时,ISP 阻止不起作用,因为从您的机器发出的每个数据包都指向代理而不是目标站点。代理可能通过另一个没有任何阻塞的 ISP 访问互联网。

于 2016-07-08T19:36:52.680 回答