在浏览器输入URL地址后回车到页面显示全流程


相关问题


ps:个人整理的内容,后面有时间把它补详细出来

详细版

  • 1)首先是:DNS查询

  • 在这里插入图片描述

    • 有DNS的地方就有缓存,所以浏览器会会先检查一些浏览器有没有本地缓存,(如果有直接返回ip地址,结束DNS查询,后面的同理),然后是检查系统host文件里面有没有缓存,然后是路由器有没有缓存,如果前面的都没有,那么就向本地DNS服务器发起递归查询,本地DNS服务器向根DNS服务器,顶级域DNS服务器,权威DNS服务器发起迭代查询,具体是先向根服务器查询顶级域(.com,.net,.edu等这些),拿到顶级域服务器IP之后向其发起查询,其返回权威服务器的IP,又向这个新的IP发起查询,这个权威服务器再放回所访问域名的IP地址,本地DNS服务器拿到这个真正的IP地址后向客户端浏览器返回,客户端浏览器才开始向这个IP地址发起TCP连接


  • 2)然后是:建立TCP连接

    • SYN置1 ,随机初始序号,发送SYN后进入SYN_SENT状态
    • serviceSYN cookie防御系统
      • 没有部署
        • 为该连接分配 TCP缓存和相关变量(半开连接) ,随机初始序号,SYN置1,ACK(SYNACK报文段)
      • 有部署
        • 不生成半开连接 ,而是把初始序号设为hash(源IP,源port,目的IP,目的port),之后就还没有部署一样
        • 再搜到客户的ACK后判断ACK的确认序号-1是否等于hash(源IP,源port,目的IP,目的port),是的话才分配 TCP缓存和相关变量,此时TCP连接才正式建立双向连接
    • 客户收SYNACK后分配 TCP缓存和相关变量,进入ESABLISHED状态,SYN置0,ACK,可开始携带数据(HTTP请求)


  • 3)服务端对请求进行相应,客户拿到相应数据后开始解析HTML文档,解析完成后渲染显示在屏幕上


  • 4)在服务端发送完响应后,如果HTTP请求的首部行Connection

    • 为close
      • 服务器断开TCP连接
        • 服务器FIN置1,发送后进入FIN_WAIT_1状态
        • 客户发送ACK,服务器接到ACK后进入FIN_WAIT_2状态。
        • 等客户确认数据发送完成后,FIN置1,发送给服务器
        • 服务器收到FIN后发送ACK并进入TIME_WAIT状态,经过某个等待时间后连接正式关闭,释放资源,客户端收到这个ACK后也响应的关闭连接,释放资源
    • 为 keep-alive
      • 保持TCP连接













简记版

在浏览器输入地址回车到页面显示流程

  • DNS查询
    • 浏览器缓存,host,路由器缓存,本地DNS,根,顶级域,权威
  • 建立TCP连接
    • SYN置1 ,随机初始序号,发送SYN后进入SYN_SENT状态
    • serviceSYN cookie防御系统
      • 没有部署
        • 为该连接分配 TCP缓存和相关变量(半开连接) ,随机初始序号,SYN置1,ACK(SYNACK报文段)
      • 有部署
        • 不生成半开连接 ,而是把初始序号设为hash(源IP,源port,目的IP,目的port),之后就还没有部署一样
        • 再搜到客户的ACK后判断ACK的确认序号-1是否等于hash(源IP,源port,目的IP,目的port),是的话才分配 TCP缓存和相关变量,此时TCP连接才正式建立双向连接
    • 客户收SYNACK后分配 TCP缓存和相关变量,进入ESABLISHED状态,SYN置0,ACK,可开始携带数据(HTTP请求)
  • 服务端对请求进行相应,客户拿到相应数据后开始解析HTML文档,解析完成后渲染显示在屏幕上
  • 在服务端发送完响应后,如果HTTP请求的首部行Connection
    • 为close
      • 服务器断开TCP连接
        • 服务器FIN置1,发送后进入FIN_WAIT_!状态
        • 客户发送ACK,服务器接到ACK后进入FIN_WAIT_2状态。
        • 等客户确认数据发送完成后,FIN置1,发送给服务器
        • 服务器收到FIN后发送ACK并进入TIME_WAIT状态,经过某个等待时间后连接正式关闭,释放资源,客户端收到这个ACK后也响应的关闭连接,释放资源
    • 为 keep-alive
      • 保持TCP连接

自己整理的内容,喜欢可以留个赞(⁎˃ᆺ˂)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值