Interview AiBox logo

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

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

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

lightbulb

题型摘要

HTTP状态码是服务器响应请求时返回的三位数字代码,分为五大类:1xx(信息性)、2xx(成功)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)。常见的状态码包括200(成功)、301/302(重定向)、401/403/404(客户端错误)和500(服务器错误)。前端开发者需要理解这些状态码的含义,以便正确处理响应、设计友好的错误页面,并提供良好的用户体验。

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 请求的资源临时移动到新位置
303 See Other 对应的资源的另一个URI,应使用GET方法获取
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 服务器等待请求时超时
409 Conflict 请求与服务器当前状态冲突
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状态码详解

200 OK

这是最常见的成功状态码,表示请求已成功处理,服务器返回了所请求的资源。

// 示例:成功获取数据
fetch('/api/data')
  .then(response => {
    if (response.status === 200) {
      return response.json();
    }
    throw new Error('请求失败');
  })
  .then(data => console.log(data))
  .catch(error => console.error(error));

301 Moved Permanently

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

302 Found

表示请求的资源临时移动到新的URL。搜索引擎不会更新其索引,继续使用原URL。

304 Not Modified

表示资源未被修改,可使用缓存的版本。这有助于减少网络流量和提高加载速度。

// 示例:利用缓存
fetch('/api/data', {
  headers: {
    'If-Modified-Since': 'Wed, 21 Oct 2022 07:28:00 GMT'
  }
})
.then(response => {
  if (response.status === 304) {
    console.log('使用缓存数据');
    // 从缓存中获取数据
  } else if (response.status === 200) {
    return response.json();
  }
});

400 Bad Request

表示客户端请求有语法错误,服务器无法理解。常见原因包括:

  • 请求参数格式错误
  • 缺少必要的请求头
  • 请求体格式不正确

401 Unauthorized

表示请求未经授权,需要身份验证。通常需要用户提供登录凭据。

// 示例:处理401错误
fetch('/api/protected-data')
  .then(response => {
    if (response.status === 401) {
      // 跳转到登录页面
      window.location.href = '/login';
    }
    return response.json();
  });

403 Forbidden

表示服务器理解请求,但拒绝执行。即使经过身份验证,用户也没有权限访问所请求的资源。

404 Not Found

表示服务器无法根据客户端的请求找到资源。这是最常见的错误之一,可能原因包括:

  • URL输入错误
  • 资源已被删除
  • 权限不足

500 Internal Server Error

表示服务器内部错误,无法完成请求。这通常是服务器端的问题,与客户端无关。

HTTP状态码处理最佳实践

前端处理策略

  1. 2xx 状态码:正常处理响应数据
  2. 3xx 状态码:根据重定向规则处理
  3. 4xx 状态码:显示相应的错误信息,指导用户操作
  4. 5xx 状态码:显示服务器错误信息,并提供重试选项
// 示例:综合处理HTTP状态码
fetch('/api/data')
  .then(response => {
    switch (response.status) {
      case 200:
      case 201:
        return response.json();
      case 304:
        // 使用缓存数据
        return getCachedData();
      case 401:
        // 跳转到登录页面
        redirectToLogin();
        throw new Error('未授权,请登录');
      case 403:
        throw new Error('无权限访问');
      case 404:
        throw new Error('资源不存在');
      case 500:
        throw new Error('服务器内部错误');
      default:
        throw new Error(`未知错误: ${response.status}`);
    }
  })
  .then(data => {
    // 处理数据
    renderData(data);
  })
  .catch(error => {
    // 显示错误信息
    showError(error.message);
  });

错误页面设计

对于常见的HTTP错误状态码,设计友好的错误页面可以提升用户体验:

  • 400 Bad Request:提示用户检查输入
  • 401 Unauthorized:提供登录选项
  • 403 Forbidden:解释权限限制
  • 404 Not Found:提供搜索框或返回首页的链接
  • 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"]
--- title: HTTP请求-响应状态码流程 --- sequenceDiagram participant Client as 客户端 participant Server as 服务器 Client->>Server: 发送HTTP请求 alt 请求成功 Server-->>Client: 2xx 成功状态码 else 需要重定向 Server-->>Client: 3xx 重定向状态码 Client->>Server: 发送新的请求 else 客户端错误 Server-->>Client: 4xx 客户端错误状态码 else 服务器错误 Server-->>Client: 5xx 服务器错误状态码 end
account_tree

思维导图

Interview AiBox logo

Interview AiBox — 面试搭档

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

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

AI 助读

一键发送到常用 AI

HTTP状态码是服务器响应请求时返回的三位数字代码,分为五大类:1xx(信息性)、2xx(成功)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)。常见的状态码包括200(成功)、301/302(重定向)、401/403/404(客户端错误)和500(服务器错误)。前端开发者需要理解这些状态码的含义,以便正确处理响应、设计友好的错误页面,并提供良好的用户体验。

智能总结

深度解读

考点定位

思路启发

auto_awesome

相关题目

请做一个自我介绍

自我介绍是面试的开场环节,应遵循"三段式"结构:基本信息与教育背景、核心能力与项目经验、求职动机与个人特质。重点突出与岗位相关的技能和经验,用具体数据和成果支撑,保持真诚自然的表达,控制在2-3分钟内。针对不同公司和岗位进行个性化调整,展示自己的匹配度和价值。

arrow_forward

你有什么问题想问我们公司或团队的吗?

面试结尾提问是展示面试者思考深度和职业素养的重要机会。应提前准备3-5个有深度的问题,围绕团队技术、个人成长、公司文化和业务发展四个方面。好的问题能体现你对公司的了解、对职位的重视以及你的职业规划,避免问基础信息类问题。

arrow_forward

请做一个自我介绍

自我介绍应遵循“我是谁-我为什么能胜任-我为什么想来”的逻辑框架。在“能胜任”部分,要通过STAR法则和量化结果来突出技术亮点和项目经验。在“想来”部分,要表达对华为技术、文化或业务的认同,展现匹配度和诚意。整个过程应简洁有力,控制在1-3分钟内。

arrow_forward

请做一个自我介绍

自我介绍是面试的开场环节,应简洁明了地展示个人基本信息、教育背景、项目经验、技术特长、个人特质和求职动机。优秀的自我介绍应结构清晰、重点突出,与应聘岗位高度匹配,并表达出对公司的了解和加入的强烈意愿。

arrow_forward

请做一个自我介绍,包括你的技术背景、项目经验和学习方向。

自我介绍应包含四个核心部分:个人背景、技术能力、项目经验和学习规划。技术背景需突出前端技术栈掌握程度;项目经验应选择代表性案例,说明技术实现和个人贡献;学习方向要体现职业规划与公司发展的契合度。整体表达应简洁有力,重点突出,时间控制在3-5分钟内。

arrow_forward

阅读状态

阅读时长

7 分钟

阅读进度

5%

章节:19 · 已读:0

当前章节: HTTP状态码分类

最近更新:2025-08-23

本页目录

Interview AiBox logo

Interview AiBox

AI 面试实时助手

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

免费下载download

分享题目

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

外部分享