从输入URL到网页呈现的过程
- 1、输入网址
- 2、DNS解析
- 3、建立tcp连接
- 4、客户端发送HTPP请求
- 5、服务器处理请求
- 6、服务器响应请求
- 7、浏览器展示HTML
- 8、浏览器发送请求获取其他在HTML中的资源。
1.域名解析
当我们在浏览器中输入一个URL的时候首先需要解析为IP地址,这一过程叫做DNS解析
DNS解析是一个递归查询的过程,例如我们解析“www.baidu.com” 时过程是这样的:
- 在本地域名服务器中查询IP地址,未找到域名
- 本地域名服务器向根域名服务器发送请求,未找到域名
- 本地服务器向.com顶级域名服务器发送请求,未找到域名
- 本地域名服务器向.baidu.com域名服务器发送请求,找到该域名,并将对应的IP返回给本地域名服务器
2.TCP连接
HTTP协议是使用TCP协议作为其传输层协议的,在拿到服务器的IP地址后,浏览器客户端会与服务器建立TCP连接,该过程包括三次握手
3.浏览器发送HTTP请求
浏览器构建http请求报文,并通过TCP协议传送到服务器的指定端口,http请求报文一共包括三个部分:
- 请求行:指定http请求的方法、url、http协议版本等
- 请求头:描述浏览器的相关信息,语言、编码等
- 请求正文:当发送POST、PUT等请求时,通常需要向服务器传递数据。这些数据就储存在请求正文中。
4.服务器处理HTTP请求
服务器处理HTTP请求,并返回响应报文。响应报文包括三个部分:
- 状态码:http服务常用的状态码及其含义如下
| 分类 | 分类描述 |
|---|---|
| 1** | 信息,服务器收到请求,需要请求者继续执行操作 |
| 2** | 成功,操作被成功接收并处理 |
| 3** | 重定向,需要进一步的操作以完成请求 |
| 4** | 客户端错误,请求包含语法错误或无法完成请求 |
| 5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
- 响应头:包含了响应的相关信息,如日期等。
- 响应正文:服务器返回给浏览器的文本信息,通常的 html、js、css、图片等就在这部分里。
5.浏览器页面渲染
浏览器接收到http服务器发送过来的响应报文,并开始解析HTML文档,渲染页面。具体的渲染过程包括:构建DOM树、构建渲染树、定位页面元素、绘制页面元素等
6.断开TCP连接
客户端与服务器四次挥手,断开TCP连接
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hexo!
