你好,我是风一样的树懒,一个工作十多年的后端开发,曾就职京东、阿里等多家互联网头部企业。
我曾经面试有被问到过,401是什么意思,我没有答出来,虽然不是个不知名的公司,但是总觉得因为401没答上来,这样简单的问题有些遗憾。下面我们我们一起来复习一下这些Code码吧。
HTTP 状态码 401 代表 "Unauthorized"(未授权)。
缺少认证信息:客户端在请求时没有提供用户名、密码或者 API 密钥等认证凭证。
凭证无效:提供的认证信息可能是错误的、过期的或者不再有效。
需要进行认证:服务器期望客户端提供认证信息,如 Basic Authentication 或者 OAuth 令牌等。
响应中通常会包含一个 WWW-Authenticate 头,指示客户端如何提供认证信息。例如:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="Example"
这意味着服务器要求客户端提供用户名和密码以通过 Basic 认证。
Basic Authentication:客户端需要提供用户名和密码作为凭证。
Bearer Token:客户端需要提供 OAuth2 访问令牌。
API 认证失败:API 请求缺少有效的认证头信息。
确保在请求中提供了正确的认证信息。
检查认证凭证是否有效。
如果是登录相关的认证,确保用户名和密码正确。
假设你正在通过浏览器访问一个需要身份验证的网页,没有提供正确的登录信息,服务器会返回如下的响应:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="My Protected Area"
这会提示用户输入有效的用户名和密码。
这些状态码表示请求已成功处理。
200 OK:请求已成功,并且服务器返回了请求的资源。
例如:GET 请求成功,服务器返回数据。
201 Created:请求已成功,并且服务器创建了新的资源。
例如:POST 请求创建了一个新的资源。
202 Accepted:请求已接受,但尚未处理完成。通常用于异步操作。
204 No Content:请求成功,但没有返回内容。
例如:DELETE 请求成功执行,但没有返回任何数据。
这些状态码表示客户端需要采取进一步的操作来完成请求。
301 Moved Permanently:请求的资源已被永久移动到新位置。响应应该包含 Location 头指示新位置。
302 Found (临时重定向):请求的资源临时移动,客户端应使用新的 URL,但未来可能会恢复到旧的 URL。
303 See Other:响应内容应该从另一个 URI 获取。通常与 POST 请求结合使用,告知客户端重定向到 GET 请求。
304 Not Modified:资源未修改,客户端可以使用缓存的版本。
307 Temporary Redirect:请求临时重定向,客户端应该使用相同的 HTTP 方法重新请求。
308 Permanent Redirect:请求的资源已永久重定向,客户端使用新 URL。
这些状态码表示客户端请求有问题,服务器无法处理。
400 Bad Request:服务器无法理解客户端请求的格式,通常是请求无效或参数错误。
401 Unauthorized:未授权,客户端请求缺少有效的身份验证凭证。
403 Forbidden:服务器理解客户端请求,但拒绝执行。客户端没有权限访问该资源。
404 Not Found:请求的资源不存在,服务器无法找到匹配的资源。
405 Method Not Allowed:请求方法不被允许,例如尝试使用 POST 请求访问只支持 GET 的资源。
408 Request Timeout:请求超时,客户端请求未能在服务器等待的时间内完成。
409 Conflict:请求无法完成,通常是由于资源冲突(如版本冲突、重复提交等)。
413 Payload Too Large:请求体太大,服务器无法处理。
414 URI Too Long:请求的 URI 太长,服务器无法处理。
415 Unsupported Media Type:请求的媒体类型不受支持,例如上传了服务器不支持的文件格式。
429 Too Many Requests:客户端发送了过多的请求,通常是为了防止滥用或限制访问频率。
这些状态码表示服务器端出现问题,导致无法处理有效的请求。
500 Internal Server Error:服务器遇到未预料的情况,导致无法完成请求。
501 Not Implemented:服务器不支持请求中所需的功能或方法。
502 Bad Gateway:服务器作为网关或代理时,收到无效响应。
503 Service Unavailable:服务器当前无法处理请求,通常是由于过载或维护。
504 Gateway Timeout:服务器作为网关或代理时,未能在规定时间内从上游服务器获取响应。
505 HTTP Version Not Supported:服务器不支持请求中指定的 HTTP 版本。
418 I'm a teapot:这是一个愚弄性的 HTTP 状态码,来源于 April Fools' Day 的一个 RFC (RFC 2324)。其描述是服务器是一个茶壶,因此不能处理冲泡茶的请求。
419 Authentication Timeout:通常指会话超时,可能是在表单提交后会话过期。
426 Upgrade Required:请求要求服务器升级协议,客户端需要使用更高版本的协议进行连接。
通常我们做服务治理与监控的时候,会对nginx中的code进行收集,这些特定的一些code还是需要提高警觉的,如400、404、502、504等。
今天的内容就分享到这儿,喜欢的朋友可以关注,点赞。有什么不足的地方欢迎留言指出,您的关注是我前进的动力!