HTTP协议

https://zhuanlan.zhihu.com/p/24913080?utm_source=qq&utm_medium=social&utm_oi=667009035568680960
首先从一个问题入手,当我们在浏览器输入url时,浏览器做了哪些事情。
1.首先Chrome搜索自身的DNS缓存。
2.读取硬盘中的host文件,里面记录着域名到ip地址的映射关系(如果1没有找到)
3.浏览器向宽带运营服务商或域名服务器发起DNS解析请求(如果12都没有找到)
4.拿到ip地址后,浏览器就向该ip地址所在服务器建立TCP连接(三次握手)
5.建立连接后,浏览器向服务器发起http请求(比如访问百度首页,就向服务器发起HTTP中的get请求)
6.服务器收到请求后,根据路径参数,经过后台一些处理后,把处理的结果返回给浏览器(如果是百度首页,就把完整的HTML页面代码返回给浏览器)
7.浏览器拿到完整的HTML页面代码,内核和js引擎就会解析和渲染这个页面,里面的js,css,图片等静态资源也通过一个个HTTP请求进行加载
8.浏览器根据拿到的资源对页面进行渲染,最终把完整页面呈现给用户
9.如果浏览器没有后续请求,就会跟服务器端发起TCP断开(四次挥手)

补充:HTML页面加载和解析流程

  1. 用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件。
  2. 浏览器开始载入html代码,发现标签内有一个标签引用外部CSS文件。
  3. 浏览器又发出CSS文件的请求,服务器返回这个CSS文件。
  4. 浏览器继续载入html中部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了。
  5. 浏览器在代码中发现一个标签引用了一张图片,向服务器发出请求。此时浏览器不会等到图片下载完,而是继续渲染后面的代码。
  6. 服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排布,因此浏览器需要回过头来重新渲染这部分代码。
  7. 浏览器发现了一个包含一行Javascript代码的

你可能感兴趣的:(HTTP协议)