Interview AiBox logo

Interview AiBox 实时 AI 助手,让你自信应答每一场面试

download免费下载
基础local_fire_department37 次面试更新于 2025-08-23account_tree思维导图

请列举并解释常见的HTTP状态码及其含义。

lightbulb

题型摘要

HTTP状态码是服务器对客户端请求的三位数字响应代码,分为五个类别:1xx(信息性)、2xx(成功)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)。常见状态码包括200(成功)、404(未找到)、500(服务器内部错误)等。理解这些状态码对前端开发者至关重要,它们帮助诊断网络问题、优化用户体验并正确处理API响应。不同类别的状态码需要不同的处理策略,如2xx表示成功处理响应数据,4xx需要修正请求,5xx则需显示错误并稍后重试。

HTTP状态码是服务器对客户端请求的响应结果的三位数字代码,它们被分为五个类别,每个类别的状态码有特定的含义。下面我将详细解释常见的HTTP状态码及其应用场景。

1xx(信息性状态码)

信息性状态码表示接收的请求正在处理。

  • 100 Continue:表示服务器已收到请求的初始部分,客户端应继续发送请求的剩余部分。这在客户端需要发送大量数据时很有用,可以先发送请求头,服务器确认后再发送请求体。

  • 101 Switching Protocols:表示服务器将根据客户端的请求切换协议。例如,在WebSocket握手过程中,客户端请求升级协议到WebSocket,服务器返回101状态码表示同意切换。

  • 102 Processing:表示服务器已收到请求并正在处理,但没有响应可用。这用于防止客户端超时,并假设请求不会丢失。

2xx(成功状态码)

成功状态码表示请求正常处理完毕。

  • 200 OK:表示请求成功。这是最常见的成功状态码,服务器已成功处理请求并返回了请求的内容。

  • 201 Created:表示请求成功并且服务器创建了新的资源。例如,在POST请求创建新资源后,服务器返回201状态码。

  • 202 Accepted:表示服务器已接受请求,但尚未处理。这适用于异步处理的场景,服务器接受请求但不保证完成。

  • 204 No Content:表示服务器成功处理了请求,但没有返回任何内容。通常用于DELETE操作或不需要返回数据的更新操作。

  • 206 Partial Content:表示服务器成功处理了部分GET请求。这用于分块下载或断点续传,客户端可以通过Range头指定请求资源的某个部分。

3xx(重定向状态码)

重定向状态码表示需要进行附加操作以完成请求。

  • 301 Moved Permanently:表示请求的资源已永久移动到新位置。搜索引擎会更新其索引,将旧URL替换为新URL。

  • 302 Found:表示请求的资源临时移动到新位置。搜索引擎不会更新其索引,后续请求仍应使用原始URL。

  • 304 Not Modified:表示资源未被修改,可使用缓存的版本。这用于条件GET请求,当客户端发送带有If-Modified-Since或If-None-Match头的请求时,如果资源未修改,服务器返回304状态码,客户端使用缓存。

  • 307 Temporary Redirect:表示请求的资源临时移动到新位置,且请求方法和主体不应更改。与302类似,但明确要求保持请求方法和主体不变。

  • 308 Permanent Redirect:表示请求的资源已永久移动到新位置,且请求方法和主体不应更改。与301类似,但明确要求保持请求方法和主体不变。

4xx(客户端错误状态码)

客户端错误状态码表示服务器无法处理请求,因为请求本身有问题。

  • 400 Bad Request:表示服务器无法理解请求的格式,客户端不应重复提交该请求。这通常是由于请求语法错误、无效参数或格式问题导致的。

  • 401 Unauthorized:表示请求需要用户认证。客户端需要提供有效的认证凭证才能访问资源。

  • 403 Forbidden:表示服务器理解请求,但拒绝执行。这与401不同,403表示认证后仍然没有权限访问资源。

  • 404 Not Found:表示服务器无法找到请求的资源。这是最常见的客户端错误状态码,通常由于URL错误或资源已被删除。

  • 405 Method Not Allowed:表示请求方法不被允许。例如,尝试对只支持GET的资源使用POST方法。

  • 408 Request Timeout:表示服务器等待请求时超时。客户端应在适当的时间后重试。

  • 409 Conflict:表示请求与服务器当前状态冲突。例如,尝试创建已存在的资源,或使用过期的数据进行修改。

  • 413 Payload Too Large:表示请求实体太大,服务器拒绝处理。这通常是由于上传的文件超过服务器限制导致的。

  • 414 URI Too Long:表示请求的URL过长,服务器拒绝处理。

  • 429 Too Many Requests:表示客户端在给定时间内发送了太多请求。这用于速率限制,防止客户端过度使用服务器资源。

5xx(服务器错误状态码)

服务器错误状态码表示服务器处理请求时出错。

  • 500 Internal Server Error:表示服务器遇到错误,无法完成请求。这是最常见的服务器错误状态码,通常是由于服务器端代码错误或配置问题导致的。

  • 501 Not Implemented:表示服务器不支持请求的功能。例如,服务器不支持某个HTTP方法。

  • 502 Bad Gateway:表示服务器作为网关或代理,从上游服务器收到无效响应。这通常是由于上游服务器不可用或返回无效响应导致的。

  • 503 Service Unavailable:表示服务器暂时不可用,可能是由于过载或维护。客户端应在稍后重试。

  • 504 Gateway Timeout:表示服务器作为网关或代理,未及时从上游服务器收到响应。这通常是由于上游服务器处理请求时间过长导致的。

  • 505 HTTP Version Not Supported:表示服务器不支持请求的HTTP版本。

这些状态码对于前端开发者来说非常重要,因为它们可以帮助我们理解和处理API请求的结果,优化用户体验,以及调试网络问题。例如,当我们收到401状态码时,可以引导用户登录;收到404状态码时,可以显示友好的错误页面;收到5xx状态码时,可以显示服务器错误提示并建议用户稍后重试。

--- title: HTTP状态码分类 --- graph TD A["HTTP状态码"] --> B["1xx 信息性状态码"] A --> C["2xx 成功状态码"] A --> D["3xx 重定向状态码"] A --> E["4xx 客户端错误状态码"] A --> F["5xx 服务器错误状态码"] B --> B1["100 Continue"] B --> B2["101 Switching Protocols"] C --> C1["200 OK"] C --> C2["201 Created"] C --> C3["204 No Content"] C --> C4["206 Partial Content"] D --> D1["301 Moved Permanently"] D --> D2["302 Found"] D --> D3["304 Not Modified"] D --> D4["307 Temporary Redirect"] E --> E1["400 Bad Request"] E --> E2["401 Unauthorized"] E --> E3["403 Forbidden"] E --> E4["404 Not Found"] E --> E5["429 Too Many Requests"] F --> F1["500 Internal Server Error"] F --> F2["502 Bad Gateway"] F --> F3["503 Service Unavailable"] F --> F4["504 Gateway Timeout"]
类别 首数字 含义 常见状态码 处理方式
1xx 1 信息性 100, 101 继续发送请求或等待后续响应
2xx 2 成功 200, 201, 204 处理响应数据或确认操作成功
3xx 3 重定向 301, 302, 304 跟随重定向或使用缓存
4xx 4 客户端错误 400, 401, 403, 404 修正请求、认证或显示错误信息
5xx 5 服务器错误 500, 502, 503 显示错误信息并稍后重试
account_tree

思维导图

Interview AiBox logo

Interview AiBox — 面试搭档

不只是准备,更是实时陪练

Interview AiBox 在面试过程中提供实时屏幕提示、AI 模拟面试和智能复盘,让你每一次回答都更有信心。

AI 助读

一键发送到常用 AI

HTTP状态码是服务器对客户端请求的三位数字响应代码,分为五个类别:1xx(信息性)、2xx(成功)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)。常见状态码包括200(成功)、404(未找到)、500(服务器内部错误)等。理解这些状态码对前端开发者至关重要,它们帮助诊断网络问题、优化用户体验并正确处理API响应。不同类别的状态码需要不同的处理策略,如2xx表示成功处理响应数据,4xx需要修正请求,5xx则需显示错误并稍后重试。

智能总结

深度解读

考点定位

思路启发

auto_awesome

相关题目

请解释TCP三次握手的过程。

TCP三次握手是建立可靠网络连接的关键过程,通过SYN、SYN+ACK和ACK三个数据包的交换,确保客户端和服务端都具备收发能力并同步序列号。第一次握手客户端发送SYN包并进入SYN_SENT状态;第二次握手服务端回复SYN+ACK包并进入SYN_RCVD状态;第三次握手客户端发送ACK包,双方都进入ESTABLISHED状态,连接建立完成。三次握手而非两次或四次的设计是为了在保证可靠性的同时避免不必要的延迟和潜在问题。

arrow_forward

TCP和UDP有什么区别?

TCP和UDP是两种核心的传输层协议,主要区别在于:TCP是面向连接的可靠传输协议,通过三次握手建立连接,提供确认重传、流量控制和拥塞控制机制,保证数据不丢失、不重复、按序到达,适用于文件传输、电子邮件等高可靠性场景;UDP是无连接的不可靠传输协议,无需建立连接,直接发送数据报,不保证数据可靠性,但传输速度快、开销小,适用于实时音视频、在线游戏、DNS查询等实时性要求高的场景。选择哪种协议取决于应用对可靠性和实时性的需求权衡。

arrow_forward

什么是跨域问题?如何解决前端跨域请求?

跨域问题是浏览器的同源策略导致的,限制了一个域的文档或脚本获取另一个域的资源。常见解决方案包括:JSONP(利用script标签无跨域限制)、CORS(通过HTTP头部控制访问权限)、代理服务器(同源转发)、WebSocket(双向通信协议)、postMessage(跨文档通信)、document.domain(设置相同主域)和window.name(利用窗口名称特性)。选择方案时需考虑兼容性、安全性和场景需求,现代应用首选CORS,实时通信可选WebSocket,无法控制服务器时可考虑代理。

arrow_forward

什么是跨域?有哪些解决跨域的方法?

跨域是Web开发中因浏览器同源策略导致的限制,当协议、域名或端口不同时发生。解决跨域的主要方法有:1) CORS(跨域资源共享),通过服务器设置HTTP响应头实现,是最推荐的标准化方案;2) JSONP,利用script标签跨域特性,但仅支持GET请求;3) 代理服务器,通过同源服务器转发请求;4) WebSocket,双向通信协议,不受同源限制;5) postMessage,HTML5 API,用于窗口间安全通信;6) document.domain,适用于子域间通信;7) window.name和location.hash,利用浏览器特性实现但安全性较低。选择方案需考虑安全性、兼容性、通信类型和实现复杂度等因素。

arrow_forward

请详细解释HTTPS的工作原理和加密过程。

HTTPS是HTTP的安全版本,通过SSL/TLS协议实现数据加密、身份验证和完整性保护。其工作原理主要分为两个阶段:SSL/TLS握手阶段和数据传输阶段。在握手阶段,客户端和服务器协商加密算法、验证服务器身份并生成会话密钥;在数据传输阶段,使用会话密钥进行对称加密通信。HTTPS结合了对称加密(效率高)和非对称加密(安全密钥交换)的优点,通过数字证书验证服务器身份,防止中间人攻击,并使用哈希函数保证数据完整性。随着网络安全意识的提高,HTTPS已成为网站的标准配置。

arrow_forward

阅读状态

阅读时长

7 分钟

阅读进度

0%

章节:0 · 已读:0

当前章节: 暂无章节

最近更新:2025-08-23

本页目录

暂无目录
Interview AiBox logo

Interview AiBox

AI 面试实时助手

面试中屏幕实时显示参考回答,帮你打磨表达。

免费下载download

分享题目

复制链接,或一键分享到常用平台

外部分享