从输入URL到页面展现,发生了什么(HTTP请求的过程)
HTTP是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据。
1.域名解析,查找缓存
- 查找浏览器缓存(DNS缓存)
- 查找操作系统缓存(如果浏览器缓存没有,浏览器会从hosts文件查找是否有DNS信息)
- 查找路由器缓存
- 查找ISP缓存
2.浏览器获得对应的ip地址后,浏览器与远程Web
服务器通过TCP
三次握手协商来建立一个TCP/IP
连接。
3.TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求
4.服务器处理请求,返回资源(MVC设计模式)
5.浏览器处理(加载,解析,渲染)
- HTML页面加载顺序从上而下
- 解析文档为有意义的结构,DOM树;解析css文件为样式表对象
- 渲染。将DOM树进行可视化表示
6.绘制网页
- 浏览器根据HTML和CSS计算得到渲染数,最终绘制到屏幕上
一个完整HTTP请求的过程为: DNS Resolving -> TCP handshake -> HTTP Request -> Server -> HTTP Response -> TCP shutdown