zoukankan      html  css  js  c++  java
  • http请求状态码

    简介

    HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。让我们通过本章的学习,好好了解一下状态码的工作机制。

    1xx代表请求已接收,等待进一步处理

    • 101 Switching Protocols。HTTP 升级 WebSocket,如果服务器同意变更,就会发送状态码 101。

    2xx代表请求已处理并返回

    • 200,ok,表示从客户端发来的请求在服务器端被正常处理了
    • 204,no content,请求成功被处理不过没有返回信息,多用于客户端不需要更新的时候。常用语跨域时 Options 请求的试探。
    • 206,partial content,表示客户端对服务器端资源的某一部分进行请求,响应报文由Content-Range指定范围的实体内容。常用语 HTTP 分块下载和断点续传。

    3xx代表请求被转发

    • 301,Moved Permanently,永久重定向,告诉客户端以后应从新地址访问. 比如你的网站从 HTTP 升级到了 HTTPS 了,以前的站点再也不用了,应当返回301,这个时候浏览器默认会做缓存优化,在第二次访问的时候自动访问重定向的那个地址。
    • 302,Found,临时性重定向,302表示资源只是被临时移动了,已移动资源的URI将来仍可能被改动位置,PHP的默认Location重定向用的就是302。但是HTTP 1.1 有303 和307作为详细的补充,其实是对302的细化
    • 303,See Other,303与302的功能相同,只是303状态码明确表示客户端应当采用GET方法获取资源。
    • 304,Not Modified。该状态码表示客户端发送附带条件(附带条件的请求是指采用GET方法的请求报文中包含If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since中任一首部)的请求时,服务器端允许请求访问资源,但未满足条件的情况。304状态码返回时,不包含任何响应的主体部分。304虽然被划分在3XX类别中,但是和重定向没有关系。
    • 307,Temporary redirect,临时重定向,与302功能相同。307遵照浏览器标准不会从post换成get,但是对于处理响应时的行为,每种浏览器可能出现不同情况。

    4xx代表客户端请求有语法错误或者无法实现

    • 400,Bad Request,请求报文有语法错误。
    • 401,Unauthorized,客户端请求没有经过授权,用户认证失败。
    • 403,Forbidden,服务器端受到了请求但是拒绝提供服务,可能是未获得文件系统访问授权。
    • 404,Not Found,该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。
    • 406 Not Acceptable: 资源无法满足客户端的条件。
    • 405 Method Not Allowed: 请求方法不被服务器端允许。
    • 408 Request Timeout: 服务器等待了太长时间。
    • 409 Conflict: 多个请求发生了冲突。
    • 413 Request Entity Too Large: 请求体的数据过大。
    • 414 Request-URI Too Long: 请求行里的 URI 太大。
    • 429 Too Many Request: 客户端发送的请求过多。
    • 431 Request Header Fields Too Large请求头的字段内容太大。

    5xx代表服务器端的错误

    • 500,Internal Server Error,该状态码表明服务器端在执行请求时发生了错误。也有可能是Web应用存在的bug或某些临时的故障。
    • 502,网关错误 (Bad gateway)。这个问题是由后端电脑之间不良的 IP 通讯造成的, 可能包括您正在尝试访问的网站的 Web 服务器。代表服务器自身是正常的,但访问的时候出错了,不知错误何在。
    • 503,Service unavailable,该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。如果事先得知解除以上状况需要的时间,最好写入RetryAfter首部字段再返回给客户端。
    • 504,Gateway Time-out,连接超时,服务器(不一定是web服务器)作为网关或代理,但没有及时从上游服务器收到请求。
  • 相关阅读:
    006_linux驱动之_ioremap函数使用
    004_linux驱动之_class_create创建一个设备类
    003_linux驱动之_file_operations函数
    002_linux驱动之_register_chrdev注册字符设备
    001_linux驱动之_驱动的加载和卸载
    007_linuxC++之_构造函数的初级应用
    006_linuxC++之_引用
    005_linuxC++之_指针的引入
    004_linuxC++之_函数的重载
    003_linuxC++之_namespace使用
  • 原文地址:https://www.cnblogs.com/everlose/p/12779634.html
Copyright © 2011-2022 走看看