图解HTTP学习记录(四)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010844304/article/details/82250662

HTTP状态码

状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器
端是正常处理了请求,还是出现了错误。

2XX 成功

  • 200 OK

    表示从客户端发来的请求在服务器端被正常处理了

  • 204 No Content

    该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许
    返回任何实体的主体。比如,当从浏览器发出请求处理后,返回 204 响应,那么浏览器显示的页面不发生更
    新。

  • 206 Partial Content

    该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的 GET 请求。响应报文中包含由
    Content-Range 指定范围的实体内容

3XX 重定向

  • 301 Moved Permanently

    永久性重定向。该状态码表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。也就是说,
    如果已经把资源对应的 URI 保存为书签了,这时应该按 Location 首部字段提示的 URI 重新保存。

  • 302 Found
    临时性重定向。该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问。
  • 303 See Other
    该状态码表示由于请求对应的资源存在着另一个 URI,应使用 GET 方法定向获取请求的资源。
    303 状态码和 302 Found 状态码有着相同的功能,但 303 状态码明确表示客户端应当采用 GET 方法获取资
    源,这点与 302 状态码有区别。

本书采用的是 HTTP/1.1,而许多 HTTP/1.1 版以前的浏览器不能正确理解 303 状态码。虽然 RFC 1945 和 RFC 2068 规范不
允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将 302 响应视为 303 响应,并且使用 GET 方式访问在
Location 中规定的 URI,而无视原先请求的方法。所以作者说这里使用 303 是最理想的。——译者注
  • 304 Not Modified
    该状态码表示客户端发送附带条件的请求 2 时,服务器端允许请求访问资源,但未满足条件的情况。304 状
    态码返回时,不包含任何响应的主体部分。304 虽然被划分在 3XX 类别中,但是和重定向没有关系。
  • 307 Temporary Redirect
    临时重定向。该状态码与 302 Found 有着相同的含义。尽管 302 标准禁止 POST 变换成 GET,但实际使用
    时大家并不遵守。
    307 会遵照浏览器标准,不会从 POST 变成 GET。但是,对于处理响应时的行为,每种浏览器有可能出现不
    同的情况

4XX客户端错误

  • 400 Bad Request
    该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。另外,浏览器
    会像 200 OK 一样对待该状态码。
  • 401 Unauthorized
    该状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息。另外若之前已
    进行过 1 次请求,则表示用 户认证失败
  • 403 Forbidden
    该状态码表明对请求资源的访问被服务器拒绝了。服务器端没有必要给出拒绝的详细理由,但如果想作说明
    的话,可以在实体的主体部分对原因进行描述,这样就能让用户看到了。
  • 404 Not Found
    该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使
    用。

5XX服务器错误

  • 500 Internal Server Error

    该状态码表明服务器端在执行请求时发生了错误。也有可能是 Web 应用存在的 bug 或某些临时的故障。

  • 503 Service Unavaliable

    该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。如果事先得知解除以上状况
    需要的时间,最好写入 RetryAfter 首部字段再返回给客户端。

猜你喜欢

转载自blog.csdn.net/u010844304/article/details/82250662