图解http学习笔记4.返回结果的HTTP状态码

返回结果的HTTP状态码

[状态码告知从服务器端返回的请求结果]

状态码的职责是当客户端发送请求时,描述返回的请求结果。借助状态码,用户可以知道具体信息。

状态码如200 OK,三位数字+原因短语

数字 第一位:响应类型

类别原因短语
1XXInformational(信息性)
2XXSuccess(成功)
3XXRedirection(重定向)
4XXClient Error(客户端错误)
5XXServer Error(服务器错误)

只要遵守状态码类别的含义,改变定义的状态码或这自行创建状态码都可以。

[2XX成功]

[200 OK]

从客户端发来的请求被正常处理。

在响应报文中,随状态码一起返回的信息会因方法的不同而发生改变。

GET方法响应返回的是请求资源的实体。

HEAD方法响应返回的是请求资源的实体首部。

[204 No Content]

表示服务器接收的请求已成功处理,但返回的响应报文中不含实体的主体部分,也不允许返回任何实体的主体。

浏览器发出请求后,返回204响应,浏览器显示的页面不会更新。

在只需客户端发送消息而不需要接受新消息内容的情况下使用。

[206 Partial Content]

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

[3XX 重定向]

[301 Moved Permanently]

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

资源路径忘记添加/就会产生301状态码

http://example.com/sample

[302Found]

临时性重定向。该状态码表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问。

和301Moved Permanently状态码相似,但302只是临时性质。已移动的资源对应的URI将来还有可能发生改变。

用户把URI保存成书签,但不会像301那样更新书签,而是仍旧保留返回302状态码对应的URI.

[303 See Other]

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

303和302Found有相同的功能,但303明确表明了客户端应该采用GET方法获取资源。

使用POST方法访问CGI(通用网关接口)程序,其执行后的处理结果是希望客户端能以GET方法重定向到另一个URI上去,返回303See Other。

当301,302,303响应状态码返回时,几乎所有的浏览器都会把POST改成GET,并删除请求报文内的主体,之后请求自动再次发送

301、302标准是静止将POST方法变成GET方法,但实际使用大家都这么做。。。

[304 Not Modified]

表示客户端发送附带条件的请求时,服务器允许请求访问资源,但未满足条件的情况。304状态码返回时,不包含任何响应的主体部分。和重定向无多大关系。

[307 Temporary Redirect]

临时重定向。与302Found有相同的含义。

307会遵守浏览器规则,不会从POST变成GET。但对于处理响应时的行为,每种浏览器都有可能出现不同的情况。

[4XX 客户端错误]

[400 Bad Request]

表示请求报文中存在语法错误。错误发生时,需修改请求的内容再次发送请求。

浏览器会像200 OK一样对待该状态码

[401 Unauthorized]

该状态码表示发送的请求需要有通过HTTP认证(BASIC认证、DIGEST认证)的认证消息。另外若之前已经进行过1次请求,则表示用户认证失败。

返回401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部用以质询(challenge)用户信息。当浏览器初次接收到401响应,会弹出认证用的对话窗口。

[403 Forbidden]

该状态码表明对请求资源的访问被服务器拒绝了。

未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发送源IP地址试图访问)等列举的情况都可能发生403原因。

[404 Not Found]

该状态码表明服务器上无法找到请求的资源。

也有可能是服务器拒绝请求且不想说明理由时使用。

[5XX 服务器错误]

[500 Internal Server Error]

表明服务器端执行请求时发生了错误。

可能是Web应用存在的bug或者某些临时的故障。

[503 Service Unavailable]

表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

如果事先得知解除以上状况所需时间,最好写入Retry-After首部字段再返回给客户端。


状态码和状态不一致

不少返回的状态码响应都是错误的。。。只是用户没有察觉。。。。。

比如Web应用程序内部错误,状态码依然是200OK。。。这种情况很多见。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值