前端-关于输入URL到页面显示以及变形问题
1查询IP
浏览器搜索自己的 DNS 缓存(维护一张域名与 IP 地址的对应表);
搜索操作系统中的 DNS 缓存(维护一张域名与 IP 地址的对应表);
搜索操作系统的 hosts 文件( Windows 环境下,维护一张域名与 IP 地址的对应表);
操作系统将域名发送至 LDNS,查找成功则返回结果,失败则发起一个迭代 DNS 解析请求;
LDNS 向 Root Name Server (根域名服务器,其虽然没有每个域名的的具体信息,但存储了负责每个域,如 com、net、org等的解析的顶级域名服务器的地址)发起请求,此处,Root Name Server 返回 com 域的顶级域名服务器的地址;
LDNS 向 com 域的顶级域名服务器发起请求,返回 baidu.com 域名服务器地址;
LDNS 向 baidu.com 域名服务器发起请求,得到 www.baidu.com 的 IP 地址;
LDNS 将得到的 IP 地址返回给操作系统,同时自己也将 IP 地址缓存起来;
操作系统将 IP 地址返回给浏览器,同时自己也将 IP 地址缓存起来;
至此,浏览器已经得到了域名对应的 IP 地址。
4浏览器向服务器建立一个TCP链接
三次握手
主机向服务器发送一个建立连接的请求(您好,我想认识您);
服务器接到请求后发送同意连接的信号(好的,很高兴认识您);
主机接到同意连接的信号后,再次向服务器发送了确认信号(我也很高兴认识您),自此,主机与服务器两者建立了连接。
5浏览器发送HTTP请求
浏览器根据 URL 内容生成 HTTP 请求,请求中包含请求文件的位置、请求文件的方式等等;
服务器接到请求后,会根据 HTTP 请求中的内容来决定如何获取相应的 HTML 文件;
服务器将得到的 HTML 文件发送给浏览器;
在执行 HTML 中代码时,根据需要,浏览器会继续请求图片、CSS、JavsScript等文件,过程同请求 HTML ;
解析HTML
浏览器在解析html的时候会根据需要,继续请求引用的外部资源文件
浏览器根据html结构生成dom树,根据样式文件生成css树,然后根据dom树和cssom树生成render tree 根据这个渲染树渲染出页面
5浏览器收到响应报文关闭TCP链接 ,,或者稍后用在另一个请求上
6四次挥手
主机向服务器发送一个断开连接的请求(不早了,我该走了);
服务器接到请求后发送确认收到请求的信号(知道了);
服务器向主机发送断开通知(我也该走了);
主机接到断开通知后断开连接并反馈一个确认信号(嗯,好的),服务器收到确认信号后断开连接;
-----------------------------------------------------