当我浏览像www.google.com这样的网站时,浏览器是否会在其前面添加http以生成http://www.google.com,或者初始请求是否没有协议名称?
我在使用apache web服务器的ubuntu机器上尝试了本地托管的URL。 我发现初始数据包是TCP握手,然后请求是http://www.example.com。初始TCP SYN数据包是否也尝试转到http://www.example.com或仅转到www.example.com?
P.S。在Wireshark中,TCP SYN数据包没有HTTP头。
答案 0 :(得分:2)
浏览器添加它。不同的浏览器在如何将无效的URL解析为合适的URL方面具有不同的逻辑。例如,如果您键入普通单词,则某些浏览器会返回错误页面,而其他浏览器会打开搜索页面(例如google或bing)。同样的事情发生在不完整的URL上(例如没有http:schema)
整个过程如下:
答案 1 :(得分:1)
http://
指定应用层协议。如果没有指定协议,浏览器通常会假定HTTP。其他可能性包括ftp://
或(现代浏览器不再支持)gopher://
。
TCP比HTTP低。在建立TCP连接时,应用层协议无关紧要。 http://
从TCP的角度表示的唯一事情是默认端口号,如果没有明确指定则使用。 HTTP默认为端口80,FTP默认为端口21等。浏览器在建立TCP会话之后才开始说HTTP(或FTP,或其他)。