您现在的位置是:首页 >学无止境 >【网络进阶】HTTP服务器(二)网站首页学无止境

【网络进阶】HTTP服务器(二)

Ricky_0528 2023-07-17 12:00:02
简介【网络进阶】HTTP服务器(二)

1. HTTP状态码

HTTP状态码(HTTP Status Code)是服务器用于描述浏览器请求结果的三位数字。它们是HTTP/1.1协议中定义的一部分,通常用于说明浏览器的请求是否成功,以及在请求失败时,失败的原因。HTTP状态码对于开发者和维护者来说非常重要,因为它们可以帮助诊断问题和优化用户体验。

HTTP状态码可以分为五类:

  1. 1xx(信息性状态码):这类状态码表示请求已被接收,服务器需要客户端继续执行操作。这类状态码很少用到,仅用于提供额外的信息。

  2. 2xx(成功状态码):这类状态码表示请求已成功处理。常见的成功状态码包括:

    • 200 OK:请求成功,服务器已成功处理请求。
    • 201 Created:请求成功,并且服务器已创建了新的资源。
    • 204 No Content:请求成功,但没有需要返回的内容。
  3. 3xx(重定向状态码):这类状态码表示需要进一步操作才能完成请求。浏览器通常会自动处理这些操作。常见的重定向状态码包括:

    • 301 Moved Permanently:资源永久性移动,请求的资源已被分配了新的URI。
    • 302 Found:资源临时性移动,请求的资源临时分配了新的URI。
    • 304 Not Modified:资源未发生变化,无需再次发送给客户端。
  4. 4xx(客户端错误状态码):这类状态码表示请求包含错误语法或者无法完成。常见的客户端错误状态码包括:

    • 400 Bad Request:请求格式错误,服务器无法理解请求。
    • 401 Unauthorized:请求需要用户验证。
    • 403 Forbidden:服务器理解请求,但拒绝执行。
    • 404 Not Found:请求的资源在服务器上不存在。
  5. 5xx(服务器错误状态码):这类状态码表示服务器处理请求时出错。常见的服务器错误状态码包括:

    • 500 Internal Server Error:服务器遇到错误,无法完成请求。
    • 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到无效响应。
    • 503 Service Unavailable:服务器暂时无法处理请求,通常是由于过载或维护。

了解HTTP状态码有助于开发者和维护者快速定位和解决问题,提高网站的稳定性和用户体验。

2. HTTP状态码分类

状态码状态码英文中文描述及用途
100Continue继续:客户端应继续请求。在接收到请求正文之前,服务器可以发送100 Continue响应,以确认服务器已准备好接收请求正文。这对于大文件上传等场景非常有用。
101Switching Protocols切换协议:服务器已理解并同意客户端的协议切换请求(如升级到WebSocket)。
102Processing处理中:服务器已接收请求,但尚未完成处理。主要用于防止客户端超时,避免重复发送请求。
200OK请求成功:服务器成功处理了请求,通常返回请求的资源或数据。
201Created已创建:请求成功且服务器已创建新资源,通常用于POST请求创建新资源后的响应。
202Accepted请求已接受:服务器已接受请求但尚未处理,无法保证最终处理结果。主要用于异步处理请求。
203Non-Authoritative Information非权威信息:服务器成功处理请求,但返回的信息来源于另一资源。
204No Content无内容:请求成功处理,但无需返回数据。通常用于DELETE请求和无需返回数据的更新操作。
205Reset Content重置内容:请求成功处理,客户端应重置文档视图(如清空表单内容)。
206Partial Content部分内容:服务器成功处理了部分GET请求,通常用于分块下载或断点续传。
207Multi-Status多状态:响应包含多个独立操作的状态信息,主要用于WebDAV。
208Already Reported已报告:之前的请求已完成,避免重复处理。主要用于WebDAV。
226IM UsedIM使用的:服务器已应用实例操作,响应中的资源状态已被修改。
300Multiple Choices多个选择:请求的资源有多个可选版本,客户端可以根据响应中提供的信息选择一个进行访问。
301Moved Permanently永久重定向:请求的资源已被永久移动到新位置,所有的引用应更新为新URI。
302Found临时重定向:请求的资源临时移动到新位置,客户端应使用新URI访问资源。
303See Other查看其他:请求已处理,客户端应访问另一URI获取响应。常用于POST请求处理后的重定向。
304Not Modified未修改:资源自上次请求以来未发生变化,客户端可以继续使用缓存的版本。
305Use Proxy使用代理:请求的资源必须通过指定代理访问。
306(Unused)(未使用):该状态码已废弃,不再使用。
307Temporary Redirect临时重定向:请求的资源临时移动到新位置,客户端应使用新URI访问资源,但后续请求应使用原始URI。
308Permanent Redirect永久重定向:类似301,但要求客户端在后续请求中使用新URI,并保持原始请求方法。
400Bad Request请求错误:服务器无法理解或处理请求,可能由于语法错误或参数问题。
401Unauthorized未授权:请求需要用户身份验证。
402Payment Required需要付款:请求的资源需要付款才能访问,尚未实际使用。
403Forbidden禁止访问:服务器理解请求,但拒绝执行,可能由于权限不足等原因。
404Not Found未找到:请求的资源在服务器上不存在。
405Method Not Allowed请求方法不允许:请求中使用的HTTP方法不适用于请求的资源。
406Not Acceptable无法接受:服务器无法生成与客户端要求的内容特性匹配的响应。
407Proxy Authentication Required需要代理身份验证:客户端必须先向代理服务器进行身份验证。
408Request Timeout请求超时:服务器等待客户端发送请求的时间过长。
409Conflict冲突:请求与服务器上的资源状态冲突,通常用于并发修改同一资源。
410Gone已删除:请求的资源已被永久删除,将不再可用。
411Length Required需要指定长度:请求头中必须包含有效的Content-Length字段。
412Precondition Failed前提条件失败:请求中的某个前提条件未满足,如使用If-Match头。
413Payload Too Large请求实体过大:请求的实体(如上传文件)过大,服务器无法处理。
414URI Too Long请求的URI过长:请求行中的URI长度超过服务器允许的限制。
415Unsupported Media Type不支持的媒体类型:请求中的实体内容类型不被服务器支持。
416Range Not Satisfiable请求范围不满足:客户端请求的字节范围不可用或无效。
417Expectation Failed期望失败:服务器无法满足请求头中的Expect字段所指定的期望。
418I’m a teapot我是一个茶壶:此状态码用于彩蛋,表示服务器拒绝煮咖啡,因为它是个茶壶。
421Misdirected Request错误导向的请求:服务器无法处理请求,可能由于连接复用导致的服务器配置问题。
422Unprocessable Entity无法处理的实体:请求格式正确,但语义错误导致无法处理。主要用于WebDAV。
423Locked已锁定:请求的资源被锁定,无法执行请求操作。主要用于WebDAV。
424Failed Dependency依赖失败:由于之前的请求失败,导致当前请求也失败。主要用于WebDAV。
425Too Early过早:服务器拒绝执行请求,因为它可能是重放攻击。
426Upgrade Required需要升级:客户端应切换到指定的协议,如升级到TLS/1.0。
428Precondition Required需要前提条件:请求必须满足服务器要求的前提条件,如使用If-Match头。
429Too Many Requests请求过多:客户端发送请求过于频繁,已触发限速。
431Request Header Fields Too Large请求头字段过大:请求头中某个字段的大小超过服务器允许的限制。
451Unavailable For Legal Reasons因法律原因不可用:请求的资源因法律原因无法提供,如受到审查或侵权。
500Internal Server Error服务器内部错误:服务器在处理请求时发生错误。
501Not Implemented未实现:服务器不支持请求所需的功能或方法。
502Bad Gateway错误网关:作为网关或代理服务器,从上游服务器接收到无效响应。
503Service Unavailable服务不可用:服务器暂时无法处理请求,如因维护或超载。
504Gateway Timeout网关超时:作为网关或代理服务器,未及时从上游服务器接收到响应。
505HTTP Version Not Supported不支持的HTTP版本:服务器不支持请求所使用的HTTP协议版本。
506Variant Also Negotiates变体也协商:服务器存在内部配置错误,导致透明内容协商失败。
507Insufficient Storage存储空间不足:服务器无法完成请求,因为存储空间不足。主要用于WebDAV。
508Loop Detected检测到循环:服务器在处理请求时检测到无限循环。主要用于WebDAV。
510Not Extended未扩展:请求需要进一步扩展以完成,如提供附加认证信息。
511Network Authentication Required需要网络身份验证:客户端需要进行网络层面的身份验证,如提供WiFi密码。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。