浏览器端发起HTTP请求流程
如果你在浏览器地址栏中输入百度网站的地址:https://www.baidu.com,那么接下来,浏览器会完成哪些动作呢?我们就一步一步详细"追踪"下。
1.构建请求
首先,浏览器构建请求行信息(如下所示),构建好后,浏览器准备发起网络请求。
GET /index.html HTTP1.1
2.查找缓存
在真正发起网络请求之前,浏览器会先在浏览器缓存中查询是否有要请求的文件。其中,浏览器缓存是一种本地保持资源副本,以供下次请求时直接使用的技术。
当浏览器发现请求的资源已经在浏览器缓存中存有副本,它会拦截请求,返回该资源的副本,并直接结束请求,而不会再去源服务器重新下载。这样做的好处有:
- 缓解服务器端压力,提升性能(获取资源的耗时更短了)。
- 对于网站来说,缓存是实现快速资源加载的重要组成部分。
当然,如果缓存查找失败了,就会进入网络请求过程了。
3.准备IP地址和端口
我们知道一个完整的TCP连接包括三个阶段:建立连接、传输数据和断开连接。HTTP的内容是通过TCP的数据传输阶段来实现的。