- 构造请求头。eg get /index.html?name=user HTTP1.1
- 查找本地缓存 (强制缓存和协商缓存)
- 准备ip和端口。HTTP协议是应用层协议,作用于TCP/IP协议上。
- 等待tcp队列。同一个域名最多建立6个tcp请求,其他的要进入tcp队列。
- 建立tcp链接。(创建阶段三次握手阶段)
- 发送http请求(tcp的传输阶段)
- 服务器返回阶段
- 响应请求数据,并返回(响应行,响应头,响应体)
- 断开tcp(通常情况下,一旦服务器向客户端返回了请求数据,就需要关闭tcp链接。)
- Connection: Keep-Alive 就会保持tcp链接状态
- 通常这么做是因为保持 TCP连接可以省去下次请求时需要建立连接的时间,提升资源加载速度。比如,一个Web⻚面中内嵌的图片 就都来自同一个Web站点,如果初始化了一个持久连接,你就可以复用该连接,以请求其他资源,而不需要 重新再建立新的TCP连接。
- 重定向