在网站的URL中添加http

时间:2014-07-05 20:36:23

标签: url web

当我浏览像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头。

2 个答案:

答案 0 :(得分:2)

浏览器添加它。不同的浏览器在如何将无效的URL解析为合适的URL方面具有不同的逻辑。例如,如果您键入普通单词,则某些浏览器会返回错误页面,而其他浏览器会打开搜索页面(例如google或bing)。同样的事情发生在不完整的URL上(例如没有http:schema)

整个过程如下:

  1. 用户输入“网址”
  2. 浏览器尝试解析并修复(如果需要)URL(例如,为新地址添加http,为使用浏览历史记录中的https的网站添加https,为无效输入准备搜索/错误页面等)
  3. 浏览器对网址进行DNS查找(例如将www.example.com转换为93.184.216.119)
  4. 浏览器将93.184.216.119的TCP连接设置为URL中指示的端口或模式隐含的端口(例如,80表示HTTP,443表示HTTPS)。 TCP不知道/关心架构。
  5. 对于HTTPS,浏览器会取消SSL会话。
  6. 浏览器发送HTTP请求并获得回复。

答案 1 :(得分:1)

http://指定应用层协议。如果没有指定协议,浏览器通常会假定HTTP。其他可能性包括ftp://或(现代浏览器不再支持)gopher://

TCP比HTTP低。在建立TCP连接时,应用层协议无关紧要。 http://从TCP的角度表示的唯一事情是默认端口号,如果没有明确指定则使用。 HTTP默认为端口80,FTP默认为端口21等。浏览器在建立TCP会话之后才开始说HTTP(或FTP,或其他)。