Interview AiBoxInterview AiBox 实时 AI 助手,让你自信应答每一场面试
请列举常用的HTTP状态码及其含义
题型摘要
HTTP状态码是服务器响应的三位数字代码,分为五大类:1xx(信息响应)、2xx(成功)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)。最常用的状态码包括:200(成功)、201(已创建)、301(永久重定向)、302(临时重定向)、304(未修改)、400(错误请求)、401(未授权)、403(禁止访问)、404(未找到)、429(请求过多)、500(服务器内部错误)、502(网关错误)、503(服务不可用)和504(网关超时)。正确理解和使用HTTP状态码对于Web开发和运维至关重要,它们帮助客户端理解请求处理结果并采取相应措施。
HTTP状态码及其含义
HTTP状态码是服务器响应客户端请求时返回的三位数字代码,用于表示请求的处理结果。根据第一位数字,HTTP状态码分为五大类。
HTTP状态码分类结构
1xx:信息响应(Informational)
表示请求已接收,继续处理。
| 状态码 | 名称 | 含义 |
|---|---|---|
| 100 | Continue | 服务器已收到请求的初始部分,客户端应继续发送请求的剩余部分 |
| 101 | Switching Protocols | 服务器理解并同意切换请求中指定的协议 |
| 102 | Processing | 服务器已收到并正在处理请求,但尚未完成 |
2xx:成功响应(Success)
表示请求已成功被服务器接收、理解、并接受。
| 状态码 | 名称 | 含义 |
|---|---|---|
| 200 | OK | 请求成功,是最常见的状态码 |
| 201 | Created | 请求成功并且服务器创建了新的资源 |
| 202 | Accepted | 服务器已接受请求,但尚未处理 |
| 204 | No Content | 服务器成功处理了请求,但没有返回任何内容 |
| 206 | Partial Content | 服务器成功处理了部分GET请求,用于分块下载 |
3xx:重定向(Redirection)
表示需要后续操作才能完成请求。
| 状态码 | 名称 | 含义 |
|---|---|---|
| 301 | Moved Permanently | 请求的资源已永久移动到新位置,搜索引擎会更新索引 |
| 302 | Found | 请求的资源临时移动到新位置,搜索引擎不会更新索引 |
| 304 | Not Modified | 资源未被修改,可使用缓存的版本 |
| 307 | Temporary Redirect | 请求的资源临时移动到新位置,保持请求方法不变 |
| 308 | Permanent Redirect | 请求的资源永久移动到新位置,保持请求方法不变 |
4xx:客户端错误(Client Error)
表示请求包含语法错误或无法完成请求。
| 状态码 | 名称 | 含义 |
|---|---|---|
| 400 | Bad Request | 服务器无法理解请求的格式 |
| 401 | Unauthorized | 请求需要用户认证 |
| 403 | Forbidden | 服务器理解请求但拒绝执行 |
| 404 | Not Found | 服务器找不到请求的资源 |
| 405 | Method Not Allowed | 请求方法不被允许 |
| 408 | Request Timeout | 服务器等待请求时超时 |
| 413 | Payload Too Large | 请求实体过大 |
| 414 | URI Too Long | 请求的URI过长 |
| 429 | Too Many Requests | 客户端在给定时间内发送了太多请求(限流) |
5xx:服务器错误(Server Error)
表示服务器在处理请求的过程中发生了错误。
| 状态码 | 名称 | 含义 |
|---|---|---|
| 500 | Internal Server Error | 服务器内部错误,无法完成请求 |
| 501 | Not Implemented | 服务器不支持请求的功能 |
| 502 | Bad Gateway | 服务器作为网关需要得到一个处理这个请求的响应,但是未得到 |
| 503 | Service Unavailable | 服务器当前无法处理请求(过载或停机维护) |
| 504 | Gateway Timeout | 服务器作为网关需要得到一个处理这个请求的响应,但是未及时得到 |
| 505 | HTTP Version Not Supported | 服务器不支持请求的HTTP协议版本 |
HTTP状态码使用场景
实际应用中的注意事项
-
API设计:在RESTful API中,合理使用状态码可以使API更加语义化,例如使用201表示资源创建成功,使用409表示资源冲突。
-
SEO优化:对于网站迁移,使用301永久重定向而不是302临时重定向,有助于搜索引擎更新索引。
-
错误处理:客户端应用应根据不同的状态码提供相应的用户反馈,例如404显示"页面不存在",403显示"无权访问"等。
-
性能优化:利用304状态码实现缓存机制,减少不必要的数据传输,提高性能。
-
安全考虑:对于敏感操作,确保使用401和403状态码进行适当的权限控制,避免信息泄露。
参考资源
思维导图
Interview AiBoxInterview AiBox — 面试搭档
不只是准备,更是实时陪练
Interview AiBox 在面试过程中提供实时屏幕提示、AI 模拟面试和智能复盘,让你每一次回答都更有信心。
AI 助读
一键发送到常用 AI
HTTP状态码是服务器响应的三位数字代码,分为五大类:1xx(信息响应)、2xx(成功)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)。最常用的状态码包括:200(成功)、201(已创建)、301(永久重定向)、302(临时重定向)、304(未修改)、400(错误请求)、401(未授权)、403(禁止访问)、404(未找到)、429(请求过多)、500(服务器内部错误)、502(网关错误)、503(服务不可用)和504(网关超时)。正确理解和使用HTTP状态码对于Web开发和运维至关重要,它们帮助客户端理解请求处理结果并采取相应措施。
智能总结
深度解读
考点定位
思路启发
相关题目
请解释TCP和UDP协议的主要区别是什么?
TCP和UDP是传输层的两个核心协议,主要区别在于:TCP是面向连接的可靠传输协议,通过三次握手建立连接,提供序列号、确认应答、重传机制、流量控制和拥塞控制等确保数据可靠传输,但效率较低;UDP是无连接的不可靠传输协议,无需建立连接,直接发送数据报,不保证数据可靠到达,但效率高、速度快。TCP适用于文件传输、网页浏览等要求数据可靠性的场景;UDP适用于实时音视频、DNS查询等对实时性要求高、可容忍少量丢包的场景。
请解释TCP四次挥手的过程,并说明为什么需要四次而不是三次?
TCP四次挥手是终止TCP连接的标准过程,包含四个步骤:1)主动关闭方发送FIN;2)被动关闭方回复ACK;3)被动关闭方发送FIN;4)主动关闭方回复ACK并进入TIME_WAIT状态。需要四次而非三次挥手,主要是因为TCP是全双工协议,每个方向需要单独关闭,且需要确保数据完整传输和可靠性。四次挥手允许半关闭状态,确保所有数据都能被正确接收,同时TIME_WAIT状态防止延迟报文影响新连接。
请对比HTTP和HTTPS协议的区别,包括安全性、性能和应用场景
HTTP与HTTPS的主要区别在于安全性、性能和应用场景:HTTP是明文传输的协议,速度快但不安全;HTTPS通过SSL/TLS加密提供安全性,但增加了连接开销和资源消耗。HTTP适用于内网系统和非敏感内容,而HTTPS是处理敏感数据和现代Web应用的标准选择。随着HTTP/2的普及和浏览器安全策略的强化,HTTPS已成为Web通信的主流标准。
请解释TCP拥塞控制算法的原理和主要机制。
TCP拥塞控制是TCP协议的核心机制,通过动态调整发送窗口大小来控制发送速率,避免网络拥塞。主要包含四个机制:慢启动(指数增长窗口)、拥塞避免(线性增长窗口)、快重传(收到3个重复ACK立即重传)和快速恢复(拥塞时窗口减半而非重置)。算法经历了从Tahoe、Reno、New Reno到Vegas、BIC和CUBIC的演进,不断优化网络利用率和公平性。拥塞控制关注整个网络承载能力,与关注接收方处理能力的流量控制相辅相成,共同决定TCP的实际发送窗口大小。
TCP与UDP的区别
TCP与UDP是两种重要的传输层协议,主要区别在于:TCP是面向连接的可靠协议,提供顺序保证、流量控制和拥塞控制,适用于文件传输、Web浏览等要求数据完整性的场景;UDP是无连接的不可靠协议,传输效率高、延迟低,适用于实时音视频、在线游戏等对实时性要求高的场景。TCP需要三次握手建立连接和四次挥手释放连接,而UDP直接发送数据报。选择哪种协议取决于应用对可靠性、效率和延迟的具体需求。