美文网首页
从输入URL到页面展示的详细过程

从输入URL到页面展示的详细过程

作者: 月半女那 | 来源:发表于2019-05-08 15:14 被阅读0次

大致流程

  1. 输入网址
  2. DNS解析
  3. 建立tcp连接
  4. 客户端发送HTTP请求
  5. 服务器处理请求
  6. 服务器响应请求
  7. 浏览器显示HTML
  8. 浏览器发送请求获取其他在HTML中的资源(图片,音频,视频,css, js....)

1. 浏览器渲染页面的全过程

  1. 解析HTML生成DOM树
  2. 解析CSS 生成 style rules
    (脚本处理,当遇到script标签的时候,会立即解析脚本,停止解析文档,如果脚本是外部的会等待脚本下载完毕之后,在继续解析文档,但是现在可以在script标签上加defer/async,将该改变DOM/CSS的地方分别解析出来,追加到DOM Tree / Style Rules上)
  3. 将二者关联生成render tree
  4. layout 根据render tree 计算每个节点的信息
  5. painting根据计算好的信息绘制整个页面
    页面渲染优化
    在改变文档颜色字体等视觉信息的时候会触发文档的重绘,而改变元素位置等DOM元素的几何变化会导致重排
    a. html 文档结构层次尽量少,最好小于六层,
    b. 脚本尽量后方
    c. 在脚本中减少DOM操作

2. http和https区别

http是以明文的方式发送内容的,不提供 任何方式的数据加密 ,不适合传输一些敏感信息
https是在http的基础上加入了SSL/TSL ,依靠证书来验证服务器的身份,为浏览器和服务器之间的通信加密
https协议需要CA申请证书,http和https使用的是完全不同的连接方式,使用的端口也不一样,http是80,https是443
客户端使用HTTPS方式与web服务器通信的步骤

  1. 客户端使用HTTPS的URL访问web服务器,要求与web服务器建立SSL连接
  2. web服务器收到客户端请求后,将网站的证书(证书中包含公钥)传送一份到客户端
  3. 客户端的浏览器与web服务器开始协商SSL连接的安全等级,也就是信息的加密等级
  4. 建立会话密钥,然后利用网站的公钥开始将会话密钥加密,并传送给网站
  5. web服务器利用自己的私钥解密会话密钥
  6. web服务器利用会话密钥加密与客户端之间的通信
    在交换密钥阶段使用公开密钥加密(非对称密钥加密)方式,之后建立通信交换保温阶段使用共享密钥加密(对称密钥加密)
    https和http区别https://blog.csdn.net/qq_32998153/article/details/80022489

3. DNS(Domain Name System)

通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
DNS查询两种方式:递归查询/迭代查询
[https://blog.csdn.net/wlk2064819994/article/details/79756669]

相关文章

网友评论

      本文标题:从输入URL到页面展示的详细过程

      本文链接:https://www.haomeiwen.com/subject/dehmoqtx.html