【图解HTTP】HTTP 状态码

1. HTTP 状态码 —— 用于返回结果

HTTP 状态码可以表示 HTTP 请求的返回结果、标记服务器端的处理是否异常、通知出现的错误等。但是也可能会出现状态码和状况的不一致的情况,不少返回的状态码响应都是错误的,但是用户可能察觉不到这点。比如 Web 应用程序内部发生错误,状态码依然返回 200 OK,这种情况也经常出现。

1.1 表示请求结果

状态码用来描述服务器返回的请求结果,用户可通过状态码,判断服务器是否正常处理了请求

1. 状态码类别:

状态码一般由三位组成,第一位指定了响应类别,共有以下 5 种:

状态码类别原因短语
1xxInformational (信息类状态码)接收的请求正在处理
2xxSuccess(成功状态码)请求正常处理完毕
3xxRedirection(重定向状态码)需要进行附加操作以完成请求
4xxClient Error(客户端错误状态码)服务器无法处理请求
5xxServer Error(服务器错误状态码)服务器处理请求出错

遵守状态码类别定义,服务器端可自行定义状态码。状态码共 60 余种,但常用的只有14种,将在下文介绍

1.2 2XX —— 成功状态码

1.2.1 —— 200 OK

表示客户端发送的请求被服务器端正常处理。随状态码一起返回的内容因请求方法的不同而改变(如GET方法——请求的资源实体作为响应返回,HEAD方法——请求资源实体的首部作为响应返回 )

1.2.2 —— 204 No Content

表示服务器接收的请求已成功处理,但是返回的响应报文中不含实体的主体部分。(不容许访问任何实体的主体)
使用情况: 只需要客户端向服务器发信息,客户端不需要收到新响应信息的情况

1.2.3 —— 206 Partial Content

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

1.3 3XX —— 重定向

该状态码表示浏览器需要执行某些特殊处理以正确处理请求

1.3.1 —— 301 Moved Permanently

永久性重定向,表示请求的资源已被分配了新的 URI ,以后应使用新的 URI。即提示浏览器用新的 URI 替换旧的 URI 书签,即重新保存新的 URI。

1.3.2 —— 302 Found

临时性重定向,表示请求资源被临时分配了新的 URI,希望用户本次用新的 URI 访问

1.3.3 —— 303 See Other

表示请求对应的资源存在另一个 URI,应该使用 GET 方法定向获取请求的资源

与302区别: 与 302 相似,但是明确要求使用 GET 方法获取资源

实际使用时,当 301、302、303 状态码返回时,浏览器会把 POST 方法改为 GET 方法,并删除请求报文中的主体,再重新发送请求 (301、302 标准是禁止改变的,但是大家还是这么做)

1.3.4 ——304 Not Modified

该状态码表示客户端发送附带条件的请求时,服务器容许访问该资源,但是未满足附带条件。

附带条件的请求是指采用 GET 方法的请求报文中包含 If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since 中任一首部。

1.3.5 —— 307 Temporary Redirect

临时重定向,与 302 Found 含义相同。307 会遵守浏览器标准,不将 POST 变为 GET,但是每种浏览器都可能出现不同的情况。

1.4 4XX —— 客户端错误

1.4.1 —— 400 Bad Request

表示报文中存在语法错误,需要修改请求的内容再重新发放请求。

1.4.2 —— 401 Unauthorized

表示发送的请求需要包含通过 HTTP 认证(BASIC认证、DIGEST认证)的认证信息。返回 401状态码的响需要包含一个适用于被请求资源的 WWW-Authenticate 首部用以质询用户信息。浏览器首次接收到 401 响应,会弹出认证用的对话窗口。
在这里插入图片描述

1.4.3 —— 403 Forbidden

表示请求资源被服务器拒绝,服务器不必给出拒绝的详细理由。若想说明,可在实体的主体部分对原因进行描述。
出现403的可能原因: 未获得文件系统授权、访问权限出现问题等

1.4.4 —— 404 Not Found

表示服务器上无法找到请求的资源,也可能是服务器拒绝请求但是不想说明理由

5XX —— 服务器错误

1.5.1 —— 500 Internal Server Error

表示服务器在执行请求时发送错误,可能是 Web 应用存在 bug 或 某些临时的故障

1.5.2 —— 503 Service Unavailable

表示服务器暂时处于超负载或者真正进行停机维护,目前无法处理请求。若事先知道解除上述状况的时间,最好写入 RetryAfter首部 再返回给客户端。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值