Interview AiBoxInterview AiBox 实时 AI 助手,让你自信应答每一场面试
请解释常见的HTTP状态码及其含义。
题型摘要
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状态码处理最佳实践
前端处理策略
- 2xx 状态码:正常处理响应数据
- 3xx 状态码:根据重定向规则处理
- 4xx 状态码:显示相应的错误信息,指导用户操作
- 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 服务器错误:显示维护信息或提供重试按钮
思维导图
Interview AiBoxInterview AiBox — 面试搭档
不只是准备,更是实时陪练
Interview AiBox 在面试过程中提供实时屏幕提示、AI 模拟面试和智能复盘,让你每一次回答都更有信心。
AI 助读
一键发送到常用 AI
HTTP状态码是服务器响应请求时返回的三位数字代码,分为五大类:1xx(信息性)、2xx(成功)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)。常见的状态码包括200(成功)、301/302(重定向)、401/403/404(客户端错误)和500(服务器错误)。前端开发者需要理解这些状态码的含义,以便正确处理响应、设计友好的错误页面,并提供良好的用户体验。
智能总结
深度解读
考点定位
思路启发
相关题目
请做一个自我介绍
自我介绍是面试的开场环节,应遵循"三段式"结构:基本信息与教育背景、核心能力与项目经验、求职动机与个人特质。重点突出与岗位相关的技能和经验,用具体数据和成果支撑,保持真诚自然的表达,控制在2-3分钟内。针对不同公司和岗位进行个性化调整,展示自己的匹配度和价值。
你有什么问题想问我们公司或团队的吗?
面试结尾提问是展示面试者思考深度和职业素养的重要机会。应提前准备3-5个有深度的问题,围绕团队技术、个人成长、公司文化和业务发展四个方面。好的问题能体现你对公司的了解、对职位的重视以及你的职业规划,避免问基础信息类问题。
请做一个自我介绍
自我介绍应遵循“我是谁-我为什么能胜任-我为什么想来”的逻辑框架。在“能胜任”部分,要通过STAR法则和量化结果来突出技术亮点和项目经验。在“想来”部分,要表达对华为技术、文化或业务的认同,展现匹配度和诚意。整个过程应简洁有力,控制在1-3分钟内。
请做一个自我介绍
自我介绍是面试的开场环节,应简洁明了地展示个人基本信息、教育背景、项目经验、技术特长、个人特质和求职动机。优秀的自我介绍应结构清晰、重点突出,与应聘岗位高度匹配,并表达出对公司的了解和加入的强烈意愿。
请做一个自我介绍,包括你的技术背景、项目经验和学习方向。
自我介绍应包含四个核心部分:个人背景、技术能力、项目经验和学习规划。技术背景需突出前端技术栈掌握程度;项目经验应选择代表性案例,说明技术实现和个人贡献;学习方向要体现职业规划与公司发展的契合度。整体表达应简洁有力,重点突出,时间控制在3-5分钟内。