303服务器响应码,HTTP请求方法及响应状态码详解

HTTP请求方法和响应状态详解

HTTP请求方法

HTTP1.0/1.1支持的所有请求方法如下所示:

4c5f7a4baeaffe089cc92e2f6eabc2a4.png

GET

用来请求访问已被URI识别的资源。指定的资源经服务器解析后返回响应内容。

78ec6710c5ff07d7ae17057e5d6800a9.png

POST

POST方法用来传输实体的主体(一般是身份认证信息数据或者是请求服务的参数数据),虽GET方法也能做到,但一般不用。POST的功能和GET很类似,但POST的主要目的并不是获取响应的主体内容。

baef8775810b849dca2967b1c0e46410.png

PUT

PUT方法用来传输文件,要求在请求报文的主体中包含文件内容,然后将文件保存请求URI指定的位置。

但是由于PUT方法自身不带验证机制,所以为了保障Web网站安全(防止恶意文件上传),一般不使用PUT方法。

bc2d6e5119b64b5a7b60ff74bd589322.png

状态码204表明文件传输成功,且没有数据返回。

DELETE

DELETE用来删除文件,是与PUT方法完全相反的方法,使用DELETE方法可以按照请求URI删除指定的资源。同样,DELETE方法本身也不带验证机制,一般Web网站都不会使用DELETE方法。

HEAD

HEAD方法和GET方法一样,只是不返回响应报文的主体部分,一般用来确认URI的有效性以及资源更新的日期时间。

051a82bc0ca3a98b0d515e925e546eb7.png

上述例子通过HEAD方法请求响应得到响应报文的首部,根据首部就可以确认请求URI是否有效以及请求资源的更新时间。

Options

OPTIONS方法用来查询针对请求URI指定资源支持的请求方法。

726aae3b1fb036a90735546acbafa884.png

上述例子表明请求URI指定资源支持的请求方法有GET、POST、HEAD、OPTIONS。

HTTP响应状态码

响应状态码的职责在于告知客户端请求的处理结果。

43c7fcd329f9a94ae45d83d9b2747ea3.png

五类响应状态码

在三位的响应状态码中,第一位代表了相应的类别,后两位无任何含义,只是状态码的代号。

b9c700509dfb2c4f34569079ca22d6fd.png

在上述五类响应状态码中,着重关注成功状态码(2XX)、客户端错误状态码(4XX)以及服务器错误状态码(5XX)。

200 OK

表示请求被正常处理。而根据不同请求方法,得到的响应报文中的响应实体信息也不同。

e3dba6524e84dde2c4000e4391a80f74.png

例如,使用GET方法,对应请求资源的实体会作为响应实体返回;而使用HEAD方法时,响应实体中只包含请求资源的实体首部信息(不会返回主体部分)。

204 No Content

请求已成功处理,但是返回的响应报文中不包含实体的主体部分。

3f6b6b6ad58040fea060847c322730d3.png

一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容时使用。

206 Partial Content

当客户端发起的是HTTP范围请求(即请求头中使用了字段Range),服务器若成功执行,则返回响应码206。

2e16681851417030d46d2a01701960f3.png

301 Moved Permanently

永久重定向,表明请求的资源已被分配了新的URI,以后请求该资源应使用新的URI。

302 Found

临时重定向,请求的资源被分配了临时的新URI,希望用户本次能使用新的URI请求该资源。

303 See Other

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

304 Not Modified

客户端发送了附带条件的请求时,服务器端允许请求访问资源,但是请求条件未满足的情况。

400 Bad Request

该状态码表示请求报文存在语法错误,需要对请求内容进行修改后再次进行请求。

401 Unauthorized

若之前没有进行请求,则表示客户端发送的请求需要包含通过HTTP认证的认证信息;若之前已经进行过请求,则表示用户认证失败。

ab35d9d70ee316832021568cb8ab80c0.png

返回401的响应中必须包含一个WWW-Authenticate首部用以质询用户信息,浏览器初次接收到401响应时,会弹出认证用的对话窗口。

403 Forbidden

拒绝对请求资源的访问,发生403的情况:

未获得文件系统访问权限

使用受限制的IP地址访问网站资源

404 Not Found

服务器上找不到请求的资源

拒绝请求但不想向客户端表明原因

500 Internal Server Errot

服务器端在执行请求时发生了错误

Web应用存在bug或者出现临时故障

503 Service Unavailable

服务器此时无法处理请求(服务暂时不可用)。出现503的可能原因:

服务器暂时处于超负荷状态

服务器正进行停机维护

如果事先得知解除上述状况需要的时间,服务端最好在响应报文中写入Retry-After首部字段再返回给客户端。

参考资料

《图解HTTP》 by 上野宣

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值