美文网首页
浏览器输入URL回车后发生了什么(简略版)

浏览器输入URL回车后发生了什么(简略版)

作者: 已不淘气很多年 | 来源:发表于2018-07-19 11:07 被阅读0次

网上看了一些文章,很多时候也是记不住,于是特地写下这篇文章摘取一些重要的部分记录(简略版),方便自己更加容易理解。

我的思考是输入url后,这个过程中间涉及到的一些知识点,然后通过这个过程对前端的一些问题对应的解决方案(能解决什么问题),把知识点和对应的问题的解决方案串联起来,会更加便于自己理解。

1. URL的解析

我们在输入URL回车后,首先我们要了解URL的构成,进行一个解析
一个完整的URL主要包含的部分 (例如 https://www.xxxx.com/list/detail.html?id=12#news)

  1. 协议 (https或者http协议)
  2. 域名 (www.xxxx.com)
  3. 目录名(list)
    4 文件名(detail.html)
  4. 参数 (id)
  5. 锚(news)

2. DNS解析

DNS解析又称为域名解析,每一个域名对应了一个IP地址,使用专用的域名解析服务器来完成解析(这个过程是域名解析服务器自动完成解析)。
(浏览器中可以输入域名也可以输入IP地址,但IP一般难记,所以更多的使用域名)

  1. 直接输入IP地址,则是直接调用主机上的内容
  2. 域名解析一般都会有一些过程,域名解析成IP地址,即域名解析服务器指向对应的主机IP地址,然后再调用内容。(域名解析过程暂不做说明,后面单独补充文章记录说明)

3. TCP链接(三次握手)

通过三次握手,建立起客户端与服务端的链接,然后接着会进行数据传输。

4. HTTP Request请求

  1. 请求方式
  2. Header

5. 服务端返回HTTP响应

  1. 状态码
  2. 响应头
  3. 响应正文

6. 浏览器中HTML的解析

  1. 浏览器自上而下解析html,会构建dom树,如果遇到css文件则向服务器发起请求下载css文件,同时也会解析html(不会造成阻塞),如果遇到js文件则发起请求下载js文件(停止解析html,造成阻塞)。

  2. 浏览器解析css,构建cssom树,当dom树和cssom树构建完成后,JS引擎会通过dom树和cssom树构建出render树。然后渲染出可视化dom节点。

7. 布局和绘制

布局:得到每个渲染树的具体大小和位置。
绘制:将得到的像素点绘制在屏幕上

页面在渲染的过程中,可能会涉及到不断的重排和重绘(重排的性能消耗比重绘的性能消耗大的多),一般不会轻易改变布局。(解决方案一般就是使用transform来实现动画,不会引起重绘。使用fixed或者absolute定位,因为跳出了文档流,不用重排)

相关文章

网友评论

      本文标题:浏览器输入URL回车后发生了什么(简略版)

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