在浏览器输入url回车之后发生了什么?

在浏览器输入url回车之后发生了什么?

  1. 浏览器解析URL(https://www.baidu.com/dist/test.html),获得协议(https)、web服务器名(baidu.com)和文件路径(/dist/test.html)等信息
  2. 根据解析URL获取的信息生成HTTP请求报文(请求行 + 消息头 + 消息体)
  3. 客户端去DNS服务器查询web服务器域名对应的IP地址
    1. 域名解析(www.baidu.com):
      1. 客户端向本地DNS服务器发起DNS请求,如果本地有缓存,则直接取出对应web服务器的IP地址返回给客户端
      2. 如果本地没有缓存,则向根域服务器发起请求,它会告诉你去.com域名服务器去找
      3. 然后向.com域名服务器发起请求,它会告诉你去baidu.com域名服务器去找
      4. 最后向baidu.com域名服务器发起请求,它会找到对应web服务器地址的IP地址返回给本地DNS
  4. 为HTTP报文添加TCP头部,添加源端口号+目的端口号等信息
    1. 三次握手建立TCP连接
      1. 客户端(CLOSED),服务端(CLOSED)>>
      2. 客户端(CLOSED),服务端主动监听某端口 >(LISTEN) >>
      3. 客户端发起连接SYN>(SYN—SENT)
      4. 服务端收到SYN,发送SYN + ACK > (SYN-RCVD) 第一次握手
      5. 客户端收到SYN + ACK,发送ACK >(ESTABLISHED) 第二次握手
      6. 服务端收到ACK > (ESTABLISHED)第三次握手
    2. 三次握手的目的就是保证双方都有发送和接收的能力
    3. TCP协议会将过大的数据包分包处理
  5. 为TCP+HTTP+报文添加IP头部 ,添加源IP地址+目的IP地址等信息
  6. 为IP + TCP + HTTP + 报文添加MAC头部,添加源MAC地址+ 目的MAC地址等信息
    1. MAC地址用于两点之间传输(MAC地址是路由器的地址)
  7. MAC + IP + TCP + HTTP + 报文通过网卡发送到交换机
    1. 网卡将数字信号转化为电信号发送出去
  8. 交换机根据报文的MAC地址查找MAC地址,然后将信号发送到对应端口
  9. 报文通过交换机到达了路由器,路由器通过对应的端口将报文发送出去
    1. 路由器与交换机的区别:路由器的每个端口都具有MAC地址与IP地址,交换机的每个端口都只有MAC地址
  10. 数据包终于抵达服务器,服务器根据四个请求头来分发数据。
  11. 分发到HTTP进程,将浏览器请求的数据封装成HTTP响应报文,HTTP响应报文也逐层添加TCP、IP、MAC头部,不过这次的源地址是服务器IP地址,目的地址是客户端IP地址
    1. 响应报文(状态行 + 消息头 + 消息体)
  12. 报文 >> 网卡 >> 交换机 >> 路由器 >> …
  13. 最后客户端收到HTTP响应报文,交给浏览器去响应报文,向服务器发起了TCP四次挥手断开连接
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值