zoukankan      html  css  js  c++  java
  • 当在浏览器地址栏里输入URL后会发生什么事情

    其实这个很多大神已经说的很多了。但是为了自己更好的理解,在自己所接触的层面上,重新对自己讲解一下。当然,这是站在一个前端开发者的角度上来看问题的。

    说说一次HTTP完整事务的过程

    1. 输入URL

      浏览器从URL中解析出服务器的域名

    2. DNS服务器解析URL,查找IP。

      • 如果有端口号的话,将端口号也解析出来
      • 先从浏览器缓存中查找
      • 再从系统系统中查找
      • 再从路由器缓存中查找
      • 递归查找...
    3. 构建HTTP请求包(HTTP头,HTTP体)

    4. 传输层发送TCP连接

    5. 3次握手建立TCP连接成功后,发送TCP包

      • TCP包发送过程中的几个重要过程
      • 窗口滑动
      • 流量控制
      • 拥塞处理
    6. TCP包在网络层被封装成IP包

    7. IP包在数据链路层被封装成数据帧

    8. 数据帧在物理层被转为比特流

    9. 发送方这边就结束了, 接受方那变和这边差不多

    10. 操作系统将阻塞的进程(HTTP服务器进程)唤醒,并且建立自己的子进程,子进程开始处理请求,而自己调用block原语阻塞自己。

    11. 处理结束后,将找到的资源封装成HTTP响应包

    12. 发送给客户端, 发送成功后,关闭连接

    13. 客户端进行页面渲染

      • HTML解析器解析HTML,转换为DOM Tree
      • CSS解析器解析CSS,提取CSS Rules
      • 将HTML和CSS混合为一个attachment
      • attachment通过布局(layout)被转换为一个Render Tree
      • Render Tree通过绘制就显示页面了

    参考链接

    浏览器的工作原理

  • 相关阅读:
    转载 | CSS文本溢出显示省略号
    转载 | CSS书写顺序
    转载 | CSS布局大全
    threejs sprite 制作标签
    typeScript 中的类
    Es5中的类
    typeScript中的函数
    websocket在vue项目中的使用
    typeScript中的变量数据类型
    echarts 中的1/4圆环行图的使用
  • 原文地址:https://www.cnblogs.com/yzfdjzwl/p/6646048.html
Copyright © 2011-2022 走看看