提问人:Shantik 提问时间:11/15/2023 更新时间:11/15/2023 访问量:46
浏览器如何确定它们应该向哪个端口发出请求?
How do browsers determine the port to which they should make a request?
问:
当浏览器创建对 Web 服务器的请求时,它们会添加一个包含源端口和目标端口的第 4 层标头。源端口是客户端计算机上自由选择的随机端口,而目标端口是 HTTP 的 80 或 HTTPS 的 443。但是,如果 Web 服务器侦听 80 或 443 以外的端口怎么办?请求如何到达目的地?
我知道端口转发,我们也可以直接在URL中指定端口号,格式为PROTOCOL://DOMAIN_NAME:PORT_NUMBER。还有其他方法吗?
答:
0赞
benc
11/15/2023
#1
浏览器通常支持 URL 类型的白名单。
对于是否将它们描述为方案(URL 的前缀)或协议(网络上发生的任何内容),通常存在一些分歧。
但是当浏览器接受 URL 时,如果 URL 中未指定端口号,则将使用默认端口。通常,浏览器有一个内部列表(换句话说,大多数不会服从)。/etc/services
浏览器通常支持各种形式的代理,如“CONNECT”和各种版本的“SOCKS”,但通常浏览器不允许默认端口的可配置重定向,因为这些是广泛分布的最终用户应用程序。
这些代理配置会将所有请求发送到代理服务器的端口。如果你想变得非常花哨,PAC文件允许动态映射代理使用情况。
从编码的角度来看,如果在内部使用 URL 引用,则应始终考虑使用显式端口号。
评论
http://hostname:8080/path
hostname
/path