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