一次完整的http请求过程

一次完整的http请求过程

题目相当于:当我们在浏览器地址栏中输入www.baidu.com,具体发生了什么?

1. www.baidu.com这个网址进行DNS域名解析,得到相应的IP地址
2. 根据这个IP,找到对应的服务器,发起TCP的三次握手
3. 建立TCP连接后发起HTTP请求
4. 服务器响应HTTP请求,浏览器得到HTML代码
5. 浏览器解析HTML代码,并请求HTML代码中的资源(如:js,css,图片等)(先得到HTML代码,才能去找这些资源)
6. 浏览器对页面进行渲染呈现给用户
7. 服务器关闭TCP连接

更深一层解释

1.DNS怎么找到域名的?

DNS域名解析采用的是递归查询的方式
先去找 DNS缓存 => 缓存找不到就去找根域名服务器 => 根域名又会找下一级,这样递归查找后,找到了,给我们的web浏览器

2.为什么HTTP协议要基于TCP来实现?

TCP是一个端到端的可靠的面相连的协议,HTTP基于传输层TCP协议,不用担心传输数据的各种问题(当发生错误时,会重传)

3.最后一步浏览器是如何对页面进行渲染的

a) 解析html文件 构成DOM树
b) 解析css文件 构成渲染树
c) 边解析 边渲染
d) JS单线程运行,JS可能修改DOM结构,意味着JS执行完成前,后续所有资源的下载是没有必要的,所以JS是单线程,会阻塞后续资源下载

posted @ 2021-04-16 15:28  WJJ呀  阅读(87)  评论(0)    收藏  举报