当你从浏览器地址栏中输入URL回车后发生了什么

参考于:当你从浏览器地址栏中输入URL回车后发生了什么_千里之行,始于足下-CSDN博客

  1. 在浏览器中输入域名

    例如www.zhuhebin.com

  2. 查询浏览器缓存

  3. 查询本机的hosts文件(C:\Windows\System32\drivers\etc\hosts)

  4. 查询本地域名服务器

  5. 由本地域名服务器去访问根域名服务器,获取顶级域名服务器”com”的IP地址

  6. 由本地域名服务器去访问顶级域名服务器,获取权限域名服务器”zhb.com”的IP地址

  7. 由本地域名服务器去访问权限域名服务器,获取”www.zhuhebin.com"的IP地址

  8. 本地域名服务器将查询结果返回主机(此时本地域名服务器会保留一份缓存)

  9. 主机访问该域名

  10. 发起TCP的三次握手

    1. A–>B SYN=1,seq=x
    2. B–>A SYN=1,ACK=1,ack=x+1,seq=y
    3. A–>B ACK=1,ack=y+1,seq=x+1
  11. 在建立TCP连接后,发起HTTP请求

  12. 服务器给浏览器进行一个301永久重定向响应。(该IP对应的服务器很可能是代理服务器,比如你输入“http://baidu.com”,而不是“http://www.baidu.com”,按道理这两个网址对应的是同一个网页,因此通过代理服务器的方式进行重定向相应,让这两个网址访问的是同一个网页。)

  13. 浏览器根据重定向地址再次进行HTTP请求

  14. 服务器接受请求并返回 HTTP 响应

  15. 客户端浏览器解析 HTML 内容

  16. ……

  17. 释放TCP连接(四次挥手)

    1. A–>B FIN=1,seq=u
    2. B–>A ACK=1,ack=u+1,seq=v
    3. B–>A FIN=1,ACK=1,ack=u+1,seq=w
    4. A–>B ACK=1,ack=w+1,seq=u+1
    5. A会再等待2MSL(最长报文段寿命),确保B接收到A的响应

访问网址.png