Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在网站URL中添加http_Url_Web - Fatal编程技术网

在网站URL中添加http

在网站URL中添加http,url,web,Url,Web,当我浏览像www.google.com这样的网站时,是浏览器在它前面添加了http,还是初始请求没有协议名 我在ubuntu机器上使用ApacheWeb服务器对本地托管的URL进行了尝试。 我发现最初的数据包是TCP握手,然后请求为。初始TCP SYN数据包是否也尝试访问或仅访问www.example.com 另外,在Wireshark中,TCP SYN数据包没有HTTP头。浏览器会添加它。不同的浏览器在如何将无效URL解析为正确URL方面有不同的逻辑。例如,如果您键入纯文字,某些浏览器会返回错

当我浏览像www.google.com这样的网站时,是浏览器在它前面添加了http,还是初始请求没有协议名

我在ubuntu机器上使用ApacheWeb服务器对本地托管的URL进行了尝试。 我发现最初的数据包是TCP握手,然后请求为。初始TCP SYN数据包是否也尝试访问或仅访问www.example.com


另外,在Wireshark中,TCP SYN数据包没有HTTP头。

浏览器会添加它。不同的浏览器在如何将无效URL解析为正确URL方面有不同的逻辑。例如,如果您键入纯文字,某些浏览器会返回错误页面,而其他浏览器会打开搜索页面(例如google或bing)。不完整的URL也会发生同样的情况(例如,没有http:schema)

整个过程如下:

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

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


    TCP的级别低于HTTP。在建立TCP连接时,应用层协议并不重要。
    http://
    从TCP的角度指出的唯一一件事是,如果没有明确指定端口号,则使用默认端口号。HTTP默认为端口80,FTP默认为端口21,等等。直到TCP会话建立之后,浏览器才开始讲HTTP(或FTP,或其他任何内容)。

    确定,因此TCP SYN数据包转到
    http://www.example.com
    ?我这样问是因为在ubuntu机器上的wireshark中,packetTCP SYN(TCP三方握手的一部分)中没有HTTP头,而TCP通信设置只是其中的一部分。只有在完成此操作后,浏览器才会发送HTTP头(通常是第4个TCP数据包,在SYN ACK后提交)。