这是一个经典的面试题,但是其实面试官考察的时候有两个层面,一个是http ,一个浏览器工作原理!本篇文章仅仅针对http和网络层面的知识总结。
在浏览器地址栏输入网址
浏览器根据地址栏的输入,进行dns 解析,获取服务器的IP地址和端口号,具体解析过程依次如下:
浏览器缓存
操作系统缓存
本地的hosts文件
局域网/本地域名服务器
广域网域名服务器
根域名服务器
顶级域名服务器
权威域名服务器
返回ip地址或者解析出错
浏览器使用tcp的三次握手与服务器建立连接
浏览器发送http请求报文
服务器收到浏览器发的请求报文之后,发送一个应答报文ack
服务器继续解析收到的请求报文,处理之后,把资源拼接成响应报文发送给浏览器
浏览器收到服务器发的响应报文之后,发送一个应答报文ack
浏览器继续解析收到的响应资源,解析成html, 渲染输出页面