从输入URL到页面渲染

一、输入URL

历史记录、书签:补全URL

缓存(chrome):不用回车直接显示页面

二、DNS查询(应用层)

递归查询:

  • 浏览器缓存
  • 操作系统缓存(hosts文件) :在C:\Windows\System32\drivers\etc路径下的hosts文件
  • (本地)ISP DNS服务器(运营商)

迭代查询:

  • 本地ISP DNS服务———(请求顶级域名服务器地址)———》根域名服务器,返回结果
  • 本地ISP DNS服务———(请求第二层域名服务器地址)———》顶级域名服务器(com),返回结果
  • 本地ISP DNS服务———(请求子域域名服务器地址)———》第二层域名服务器(baidu.com)
  • ...... 直到找的IP地址返回给本地ISP DNS服务器
  • 本地ISP DNS服务器——(发送IP地址给浏览器)——》浏览器
  • 浏览器发送网络请求并将IP保存在缓存中

三、生成HTTP报文(应用层)

总体来说,HTTP报文分为请求报文和响应报文,报文内容分为:行,头,空行,体

请求报文:

  • 请求行:请求方法 、请求URL、请求协议名/版本号
  • 请求头
  • 空行
  • 请求体

响应报文:

  • 状态行:协议名/版本号、状态码、状态描述
  • 响应头
  • 空行
  • 响应体

HTTP协议的状态码:HTTP协议状态码汇总

四、TCP三次握手(传输层)

作用:防止无效的报文发送到服务器(若某个网络节点积压报文后发送)

从输入URL到页面渲染_第1张图片

五、浏览器发送HTTP请求

六、服务器接收HTTP请求

    1.服务器重定向

        作用:增加引擎排名,如www.yy.com和yy.com看成不同的网站,此时将yy.com重定向成www.yy.com搜索引擎将其看成一个增加排名,但容易造成缓存友好性差(保存两个网址)

        HTTP状态码:301、302

    2.浏览器重定向追踪

        在返回的HTTP响应包头的location中保存重定向网址,向新地址再次发起HTTP请求同上

七、浏览器接收资源

    1.加载(loader模块)

        主资源:index.html

        派生资源:index.html中用到的资源

    2.解析(parse模块)

        HTML:解码、分词、解析、建DOM树

        CSS:cssRule

        JS:js解析引擎

    3.渲染

        DOM树——render树——point  / renderlayer+GPU

八、TCP四次挥手

       作用:防止服务器端有未发完的数据

从输入URL到页面渲染_第2张图片

 

你可能感兴趣的:(前端)