HTTP请求流程
前言
日常是否会有以下疑问?
第一次访问一个站点时,打开速度很慢?再次访问,速度就快多了?
一、浏览器发起HTTP请求流程
如果在地址栏里面键入地址:http://www.baidu.com/index.html,那么浏览器接下来会完成那些动作呢?
- 构建请求:
首先,浏览器构建请求行信息GET /index.html HTTP1.1
,构建好后,浏览器准备发起网络请求。 - 查找缓存:
真正发起网络请求之前,浏览器会先在浏览器缓存中查询是否有要请求的文件。其中浏览器缓存是一种在本地保存资源副本,以供下次请求直接使用的技术。
当发现请求资源已经在浏览器中存有副本,会拦截请求,返回该资源的副本,并直接结束请求。这样做的优点是:
a、缓解服务器端压力,提升性能(获取资源的耗时更短了);
b、对于网站来说,缓存是实现快速资源加载的重要组成部分。 - 准备IP地址和端口:
在HTTP工作开始之前,浏览器需要通过TCP与服务器建立连接,也就是说HTTP的内容是通过TCP的传输数据阶段来实现的: