标签:一个 完整 域名解析 握手 dns 没有 过程 执行 展示
(一)一次完整HTTP请求过程
在浏览器输入地址,浏览器与访问服务器之间会完成一次http请求,步骤如下:
1.DNS域名解析为服务器主机的IP地址;
2.根据IP,找到对应的服务器,发起TCP三次握手;
3.建立TCP连接后发起HTTP请求;
4.服务器得到HTTP请求,浏览器得到HTML代码;
5.浏览器解析HTML代码,并请求HTML代码中的资源(如js,图片,css,先得到代码才能去找这些资源);
6.浏览器对页面进行渲染并展示给用户;
在上述过程,需注意:
1.DNS域名解析采用的是递归查询的方式,过程是,先去找DNS缓存>缓存找不到就去找根域名服务器>根域名又会去找下一级>递归查找之后,找到了,给web浏览器。
2.为什么HTTP协议要基于TCP来实现? TCP是一个端到端的可靠的面向连接的协议,HTTP基于传输层TCP协议不用担心数据传输的各种问题(当发生错误时,会重传)。
3.最后一步浏览器是如何对页面进行渲染的?
a)解析html文件构成 DOM树;
b)解析CSS文件构成渲染树;
c)边解析,边渲染 ;
d)JS 单线程运行,JS有可能修改DOM结构,意味着JS执行完成前,后续所有资源的下载是没有必要的,所以JS是单线程,会阻塞后续资源下载;
(二)前端之HTTP协议
参考:https://www.cnblogs.com/taostaryu/p/9076789.html
标签:一个 完整 域名解析 握手 dns 没有 过程 执行 展示
原文地址:https://www.cnblogs.com/banyouxia/p/11777392.html