← 返回目录

第 1 卷

第 1 / 21 卷日期:

前端面试-HTTP核心高频5问(详细版)

1. 描述HTTP请求的整个过程

HTTP请求是客户端(如浏览器)向服务端发起请求→服务端处理并响应→客户端接收响应的完整通信流程,基于请求-响应模型,底层依托TCP/IP协议传输,核心步骤如下:

完整步骤(共7步)
  1. 建立TCP连接:HTTP基于TCP传输,客户端先与服务端的目标端口(默认80)完成三次握手,建

立可靠的TCP连接(HTTPS会额外先完成TLS握手)。

  1. 构造HTTP请求报文:客户端按HTTP规范组装请求报文,包含3部分:
  • 请求行:请求方法(GET/POST)、URL、HTTP版本(HTTP/1.1/2/3);
  • 请求头:携带客户端信息(浏览器、Cookie)、请求参数(Content-Type)、认证信息等;
  • 请求体:仅POST/PUT等方法有,存放提交的表单数据、JSON数据等(GET无请求体)。
  1. 发送请求报文:客户端将构造好的HTTP请求报文,通过已建立的TCP连接发送给服务端。
  2. 服务端接收并解析请求:服务端监听端口,接收请求报文,解析请求行、请求头、请求体,处理业

务逻辑(如查询数据库、生成页面数据)。

  1. 服务端构造HTTP响应报文:服务端处理完成后,组装响应报文,包含3部分:
  • 状态行:HTTP版本、状态码(200/404)、状态描述(OK/Not Found);

◦ 响应头:携带服务端信息(服务器软件)、响应数据信息(Content-Length、Content-

Type)、缓存控制(Cache-Control)等;

  • 响应体:核心数据,如HTML页面、JSON数据、图片二进制流等。
  1. 服务端发送响应报文:服务端将响应报文通过TCP连接回传给客户端。
  2. 关闭/复用TCP连接:
  • 若为非持久连接:响应完成后,TCP四次挥手关闭连接;
  • 若为持久连接(Keep-Alive):连接保留,供后续同域名请求复用。
  • 核心特点:HTTP是无状态协议,服务端不会记住客户端的上一次请求状态;单向通信,只有客户

端主动发起请求,服务端才会响应。

2. 浏览器输入URL到页面加载完成,涉及的HTTP相关技术/流程

阶段1:URL解析与DNS域名解析(为HTTP请求铺路)

• 浏览器先解析URL,提取协议(http/https)、域名、端口、路径(如 https 协议,域名

www.baidu.com,端口443);

• 域名解析:将域名转为IP地址(HTTP请求最终指向IP),解析顺序:浏览器缓存→系统缓存→本

地DNS→根DNS→顶级DNS→目标DNS。

阶段2:建立通信连接(HTTP的传输基础)
  • HTTP协议:与目标IP的80端口完成TCP三次握手,建立TCP连接;

• HTTPS协议:在TCP连接基础上,额外完成TLS四次握手(加密通信),建立安全的TLS+TCP连接

(HTTP的安全升级版)。

阶段3:发起HTTP请求(核心HTTP流程)

浏览器构造HTTP请求报文,发送给服务端,对应第1问的「HTTP请求核心步骤」,重点涉及:

  • 请求方法:默认 GET 方法(获取页面资源);

• 请求头:携带 User-Agent(浏览器标识)、 Accept(可接收的响应数据类型:

text/html)、 Cookie(客户端缓存的用户信息)、 Host(目标域名)等关键头信息;

  • 无请求体:GET请求无需提交数据,因此无请求体。
阶段4:服务端HTTP响应(核心HTTP流程)

服务端处理请求后,返回HTTP响应报文,浏览器接收后解析,重点涉及:

  • 状态码:正常返回 200 OK,表示请求成功;

• 响应头: Content-Type(告知浏览器响应体类型,如 text/html;charset=utf-8)、

Content-Length(响应体大小)、 Cache-Control(缓存策略)、 Set-Cookie(服务端向客户端写入Cookie);

  • 响应体:核心的HTML页面源码(页面加载的基础)。
阶段5:HTTP资源二次请求(页面渲染的关键,多轮HTTP请求)

浏览器解析HTML源码时,发现页面依赖静态资源(CSS/JS/图片/字体),会对每个资源发起新的 HTTP请求,重复「连接→请求→响应」流程,涉及HTTP关键技术:

  • HTTP持久连接(Keep-Alive):默认复用TCP连接,避免多次三次握手,提升请求效率;
  • Cookie携带:所有同域名的HTTP请求,都会自动携带 Cookie 头,实现用户状态保持。
阶段6:HTTP响应处理与页面渲染

• 浏览器接收所有资源的HTTP响应,解析CSS生成样式树、解析JS执行脚本、解析HTML生成DOM

树,合并为渲染树;

  • 最终渲染树绘制为可视化页面,完成整个加载流程。
✅ 涉及的HTTP核心技术汇总

HTTP请求/响应模型、HTTP请求方法、HTTP报文结构、HTTP状态码、HTTP请求头/响应头、HTTP 持久连接、HTTP缓存(强缓存/协商缓存)、Cookie/Session、HTTPS(TLS加密)、HTTP并发限

制。

  1. HTTP请求方法有哪些?POST和GET的区别是什么?
一、HTTP/1.1 规范的核心请求方法(共9种,常用6种)

HTTP请求方法表示客户端对服务端资源的操作意图,核心方法及用途:

  1. GET:✅ 最常用,获取资源(如查页面、查数据),无副作用(只读),请求参数拼接在URL后;
  2. POST:✅ 最常用,提交资源(如表单提交、新增数据),有副作用(修改服务端数据),参数放

在请求体中;

  1. PUT:更新资源(全量更新),如更新用户信息,幂等(多次请求结果一致);
  2. DELETE:删除资源,如删除一条数据,幂等;
  3. HEAD:仅获取响应头,不返回响应体,用于检查资源是否存在、获取文件大小;
  4. OPTIONS:预检请求(跨域时常用),查询服务端支持的请求方法/头信息;
  5. PATCH:局部更新资源(如仅更新用户昵称),非幂等;
  6. TRACE:回显请求,用于调试,极少用;
  7. CONNECT:建立隧道连接(HTTPS的TLS握手时用)。
  • 核心分类:
  • 安全方法:GET/HEAD/OPTIONS,不会修改服务端数据,无副作用;
  • 幂等方法:GET/PUT/DELETE,多次请求结果完全一致(POST/PATCH非幂等)。
全站分卷索引 · 21 卷
  1. 1第 1 卷
  2. 2第 2 卷
  3. 3第 3 卷
  4. 4第 4 卷
  5. 5第 5 卷
  6. 6第 6 卷
  7. 7第 7 卷
  8. 8第 8 卷
  9. 9第 9 卷
  10. 10第 10 卷
  11. 11第 11 卷
  12. 12第 12 卷
  13. 13第 13 卷
  14. 14第 14 卷
  15. 15第 15 卷
  16. 16第 16 卷
  17. 17第 17 卷
  18. 18第 18 卷
  19. 19第 19 卷
  20. 20第 20 卷
  21. 21第 21 卷