代理机制如何与浏览器中的代理设置配合工作

3

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

2个回答

9
一般来说,您的浏览器会简单地连接到代理地址和端口,而不是DNS名称解析出的任何IP地址。然后,它按照正常的方式进行网页请求。
Web代理读取头文件,使用HTTP/1.1的"Host"头文件确定请求应该去哪里,然后自己进行请求并在两个方向上传递所有剩余的数据。
代理通常还会做缓存,因此如果另一个人从该代理请求相同的页面,则可以返回先前的结果。(这是简化了--缓存是一个复杂的话题)
由于代理完全控制连接,它可以选择将请求路由到其他位置,抓取请求和回复数据,注入其他内容(如广告)或完全阻止您。使用SSL来保护自己。
一些Web代理是“透明”的。它们驻留在必须通过其中所有IP流量的网关上,并使用机器的网络堆栈将输出连接重定向到本地端口80。然后它的行为与在浏览器中定义代理相同。
其他代理,如SOCKS,具有专用协议,允许进行非HTTP请求。

谢谢回复,但并没有回答第二部分关于免费上网技巧是如何运作的问题? - user1447426
需要更多信息才能猜测。是否有“自动配置”脚本?您能否捕获(例如使用Wireshark)被阻止的请求,然后在配置为代理时成功? - Brian White
1
你的“免费上网”技巧之所以有效,是因为ISP没有必要的防火墙规则来阻止你的网络流量。如果他们想要强制用户通过代理访问,他们需要添加一些防火墙规则。我认为,如果你完全删除代理设置,它也会起作用。 - Tony Hinkle

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

Reverse proxy vs Forwars proxy

网络浏览器使用正向代理,基本上是通过代理发送所有的HTTP流量,代理将把这些流量发送到互联网。每个从您的计算机发出的HTTP数据包,在前往目标站点之前都会发送到代理服务器。
当使用代理时,ISP阻止不起作用,因为每个从您的计算机发出的数据包都指向代理而不是目标站点。代理可能通过另一个没有任何阻塞的ISP获得互联网连接。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接