zoukankan      html  css  js  c++  java
  • HTTP请求方法及响应状态码详解

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

    HTTP请求方法

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

    image-20210622163436411

    GET

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

    image-20210622163806188

    POST

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

    image-20210622164102609

    PUT

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

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

    image-20210622164432672

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

    DELETE

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

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

    image-20210622164703616

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

    Options

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

    image-20210622165241408

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

    HTTP响应状态码

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

    image-20210622170923856

    五类响应状态码

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

    image-20210622170957786

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

    200 OK

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

    image-20210622172158370

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

    204 No Content

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

    image-20210622172459814

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

    206 Partial Content

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

    image-20210622172825786

    301 Moved Permanently

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

    302 Found

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

    303 See Other

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

    304 Not Modified

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

    400 Bad Request

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

    401 Unauthorized

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

    image-20210622191016915

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

    403 Forbidden

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

    • 未获得文件系统访问权限
    • 使用受限制的IP地址访问网站资源
    404 Not Found
    • 服务器上找不到请求的资源
    • 拒绝请求但不想向客户端表明原因
    500 Internal Server Error
    • 服务器端在执行请求时发生了错误
    • Web应用存在bug或者出现临时故障
    503 Service Unavailable

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

    • 服务器暂时处于超负荷状态
    • 服务器正进行停机维护

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

    参考资料

    《图解HTTP》 by 上野宣

  • 相关阅读:
    HDU 5313 bitset优化背包
    bzoj 2595 斯坦纳树
    COJ 1287 求匹配串在模式串中出现的次数
    HDU 5381 The sum of gcd
    POJ 1739
    HDU 3377 插头dp
    HDU 1693 二进制表示的简单插头dp
    HDU 5353
    URAL 1519 基础插头DP
    UVA 10294 等价类计数
  • 原文地址:https://www.cnblogs.com/caoyusang/p/14920020.html
Copyright © 2011-2022 走看看