← 返回目录

第 2 卷

第 2 / 21 卷日期:

作)

参数位置URL后拼接(查询字符串)请求体中(不可见,更安全)
数据长度限制受URL长度限制(浏览器一般无限制(服务端可配置)

2KB)

缓存支持可缓存(浏览器会缓存GET请不可缓存求)

幂等性幂等(多次请求结果一致)非幂等(多次提交可能重复创建)

安全性低(参数暴露在URL,易被窃高(参数在请求体,隐藏传
取)输)
书签/收藏可收藏(URL可直接保存)不可收藏
历史记录请求参数会保留在浏览器历史请求参数不保留在历史

✅ 补充重要细节

1.「GET无请求体,POST有请求体」是规范约定,并非强制:GET也可带请求体,但浏览器/服务端大多不支持,无实际意义;

  1. POST的「安全性」是传输层面,并非加密:POST参数在请求体,不会暴露在URL,但明文传输仍

可被抓包,加密需用HTTPS;

  1. 跨域场景中:GET请求直接发起,POST请求会先触发OPTIONS预检请求,确认服务端允许后再发

正式POST。

  1. 什么是HTTP持久连接(HTTP Keep-Alive)?它如何工作?

一、HTTP持久连接的定义

HTTP持久连接(HTTP Keep-Alive,也叫长连接)是HTTP/1.1的默认特性,核心目的是复用TCP连接,解决HTTP/1.0「一次请求一次TCP连接」的性能问题。

  • 对比理解:

• 短连接(HTTP/1.0默认):每次HTTP请求都新建TCP连接,请求完成后立即四次挥手关闭连接,

频繁建立/关闭连接会产生大量性能开销;

• 长连接(HTTP/1.1默认):一次TCP连接建立后,可承载多次HTTP请求/响应,连接不会立即关

二、HTTP Keep-Alive的工作原理(核心流程)

  1. 开启持久连接的标识

HTTP请求头/响应头中通过 Connection: Keep-Alive 标识开启持久连接(HTTP/1.1默认开启,无需手动加,若要关闭则写 Connection: close)。

  1. 完整工作流程
  • 客户端发起第一次HTTP请求,请求头默认携带 Connection: Keep-Alive,与服务端建立

TCP连接;

  • 服务端响应时,响应头也返回 Connection: Keep-Alive,确认支持持久连接,并携带超时参

数(如 Keep-Alive: timeout=5,表示连接空闲5秒后关闭);

  • 本次请求/响应完成后,TCP连接不关闭,保持空闲状态;
  • 客户端发起同域名的下一次HTTP请求时,直接复用该TCP连接,无需重新三次握手,大幅提升请求

效率;

  • 连接空闲达到服务端设置的 timeout 时间,或客户端主动关闭,TCP连接才会四次挥手关闭。

三、持久连接的核心优势

  1. 减少TCP连接开销:避免多次三次握手/四次挥手的网络延迟,提升请求速度;
  2. 降低服务端压力:服务端无需频繁创建/销毁TCP连接,节省服务器资源;
  3. 支持HTTP管道化:同一条TCP连接中,客户端可同时发送多个HTTP请求(无需等待前一个响

应),进一步提升并发效率(浏览器有限支持)。

四、关键细节

  1. HTTP/1.1默认开启Keep-Alive,HTTP/1.0需手动加 Connection: Keep-Alive 才生效;
  2. 持久连接仅针对同域名、同端口的请求复用,不同域名需新建TCP连接;
  3. 浏览器对同域名的持久连接数有限制(Chrome为6个),超出则新建连接。
  4. 解释HTTP状态码200、301、404、500分别表示什么意思?

HTTP状态码是服务端返回给客户端的「请求处理结果标识」,共分5类,由3位数字组成:

  • 1xx:信息类,请求已接收,继续处理(如100);
  • 2xx:成功类,请求已成功处理(核心:200);
  • 3xx:重定向类,需客户端进一步操作(核心:301/302/304);
  • 3xx:重定向类,需客户端进步操作(核心:301/302/304);
  • 4xx:客户端错误,请求本身有问题(核心:404/403/401);
  • 5xx:服务端错误,服务端处理请求失败(核心:500/502/503)。

核心状态码含义(面试必背)

  • 200 OK - 成功类

表示客户端的HTTP请求被服务端成功接收、成功处理、成功返回**,是最常见的状态码。**

  • 场景:浏览器请求页面、接口请求数据,服务端正常返回结果时,均返回200;

• 注意:200仅表示「请求处理成功」,不代表业务逻辑成功(如查询数据为空,仍可能返回200+空

数据)。

  • 301 Moved Permanently - 重定向类(永久重定向)

表示请求的资源已被永久迁移到新的URL地址,服务端告知客户端「以后请直接访问新地址」。

  • 核心特点:永久生效,浏览器会缓存新地址,后续请求直接跳转到新URL,无需再访问原地址;

• 场景:网站域名更换(如 www.old.com → www.new.com)、页面永久下架并迁移到新页面,

SEO友好(搜索引擎会更新索引到新地址)。

  • 404 Not Found - 客户端错误类

表示服务端无法找到客户端请求的资源,是最常见的错误状态码。**

  • 核心原因:URL地址输入错误、请求的页面/接口/资源已被删除、服务端未配置该资源路由;
  • 场景:浏览器输入错误URL、请求不存在的接口、访问已下架的图片,均返回404。
  • 500 Internal Server Error - 服务端错误类

表示服务端在处理请求时,发生了未预期的内部错误**,导致请求无法完成。**

• 核心原因:服务端代码bug(如空指针、语法错误)、服务器配置错误、数据库连接失败、服务端

资源耗尽(内存/CPU);

  • 场景:接口请求时,服务端代码执行报错,返回500,代表「服务端出问题了,和客户端无关」。

✅ 补充高频状态码(面试拓展)

  • 302 Found:临时重定向(资源临时迁移,浏览器不缓存新地址,SEO不友好);
  • 304 Not Modified:协商缓存命中,服务端告知客户端「资源未修改,直接用本地缓存」;
  • 401 Unauthorized:未授权,需用户登录后才能访问资源;
  • 403 Forbidden:禁止访问,服务端拒绝处理请求(如无权限);
  • 502 Bad Gateway:网关错误,服务端作为网关/代理,收到上游服务器的无效响应;
  • 503 Service Unavailable:服务不可用,服务端临时维护/过载,无法处理请求。
全站分卷索引 · 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 卷