一次HTTP请求的全过程

1. 域名解析

  1. 浏览器搜索自己的DNS缓存
  2. 若没有 ,搜索操作系统的DNS缓存
  3. 若没有,搜索操作系统中hosts文件中是否有
  4. 若没有,操作系统将域名发送到本地域名服务器,本地域名服务器查询自己的DNS缓存(递归查询)
  5. 若没有(迭代查询)
    1. 本地域名服务器向根域名服务器发送请求,根域名服务器返回如com域的顶级域名服务器地址
    2. 本地域名服务器向顶级域名服务器发送请求,返回权限域名服务器地址
    3. 本地域名服务器向权限域名服务器发送请求,会得到具体的IP地址
    4. 本地域名服务器将IP地址返回给操作系统,同时自己也将IP地址缓存起来
  6. 操作系统将IP地址返回给浏览器,并且自己将IP地址缓存起来
  7. 浏览器得到了相应的IP地址

2. 发起TCP三次握手

3. 建立TCP连接后发送HTTP请求

  • 构建应用层请求HTTP报文
  • 传输层添加TCP头部(可能需要分割数据)
  • 网络层添加IP头部
  • 数据链路层添加以太网协议头部
  • 数据经过交换机,路由器转发,最终达到目标服务器,目标服务器同样解析数据,最终拿到http报文。

4. 服务器响应HTTP请求,也会再走一遍装包拆包过程。浏览器得到HTML代码

5. 浏览器解析HTML代码,再请求HTML代码中的资源(如js,css和img)

6. 断开TCP连接

7. 浏览器对页面解析渲染呈现给用户

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值