zoukankan      html  css  js  c++  java
  • http 状态码

    200 ok    访问成功,从服务器获取资源,根据配置设置缓存,设定缓存新鲜度周期,

    200 okfrom memory cach chrome,safari的强缓存,从内存获取缓存,一般为脚本、字体、图片,关闭浏览器会被释放

    200 okfrom disk cachechrome,safari的强缓存,从磁盘获取缓存,一般为css,关闭浏览器不会消失

     

    ---------

    404("Not Found")
    重要程度:高。

    这也许是最广为人知的HTTP响应代码了。404表明服务器无法把客户端请求的URI转换为一个资源。相比之下,410更有用一些。web服务可以通过404响应告诉客户端所请求的URI是空的,然后客户端就可以通过向该URI发送PUT请求来创建一个新资源了。但是404也有可能是用来掩饰403或者401.

    ---------

    403("Forbidden")

    客户端请求的结构正确,但是服务器不想处理它。这跟证书不正确的情况不同--若证书不正确,应该发送响应代码401。该响应代码常用于一个资源只允许在特定时间段内访问,
    或者允许特定IP地址的用户访问的情况。403暗示了所请求的资源确实存在。跟401一样,若服务器不想透露此信息,它可以谎报一个404。既然客户端请求的结构正确,那为什么还要把本响应代码放在4XX系列(客户端错误),而不是5XX系列(服务端错误)呢?因为服务器不是根据请求的结构,而是根据请求的其他方面(比如说发出请求的时间)作出的决定的。

    实体主体:一个描述拒绝原因的文档(可选)。

    ---------

    401("Unauthorized")

    客户端试图对一个受保护的资源进行操作,却又没有提供正确的认证证书(证书不正确,发送响应代码401)。客户端提供了错误的证书,或者根本没有提供证书。这里的证书(credential)可以是一个用户名/密码,也可以市一个API key,或者一个认证令牌。客户端常常通过向一个URI发送请求,并查看收到401响应,以获知应该发送哪种证书,以及证书的格式。如果服务器不想让未授权的用户获知某个资源的存在,那么它可以谎报一个404而不是401。这样做的缺点是:客户端需要事先知道服务器接受哪种认证--这将导致HTTP摘要认证无法工作。

    响应报头:WWW-Authenticate报头描述服务器将接受哪种认证。
    实体主体:一个错误的描述文档。假如最终用户可通过“在网站上注册”的方式得到证书,那么应提供一个指向该注册页面的链接。

    ---------

    201("Created")

    当服务器依照客户端的请求创建了一个新资源时,发送此响应代码。

    响应报头:Location报头应包含指向新创建资源的规范URI。
    实体主体:应该给出新创建资源的描述与链接。若已经在Location报头里给出了新资源的URI,那么可以用新资源的一个表示作为实体主体。

    ---------

    409("Conflict")

    此响应代码表明:你请求的操作会导致服务器的资源处于一种不可能或不一致的状态。例如你试图修改某个用户的用户名,而修改后的用户名与其他存在的用户名冲突了。

    响应报头:若冲突是因为某个其他资源的存在而引起的,那么应该在Location报头里给出那个资源的URI。
    实体主体:一个描述冲突的文档,以便客户端可以解决冲突。

    ---------

    412("Precondition Failed")

    客户端在请求报头里指定一些前提条件,并要求服务器只有在满足一定条件的情况下才能处理本请求。若服务器不满足这些条件,就返回此响应代码。

    在缓存处理中使用If-Unmodified-Since,If-Match 这一常见的前提条件,检验文件是否修改,不符合则返回412,而不是304。但它要求,仅在自客户端最后一次获取该资源后该资源未被别人修改过才能执行修改操作。若没有这一前提条件,客户端可能会无意识地覆盖别人做的修改,或者导致409的产生。

  • 相关阅读:
    grep 匹配打印的上下几行
    java List<String>的初始化
    HashMap优雅的初始化方式以及引申
    protocol buffer开发指南(官方)
    20种常用的DOS命令小结
    linux xfs文件系统无法用readdir获取dirent文件类型d_type则用stat获取暨stat函数讲解
    java中jar命令打包一个文件夹下的所有文件
    C/C++中的格式化字符
    自定义标签(JspFragment类、invoke方法、开发带属性的标签)
    java中Scanner类nextLine()和next()的区别和使用方法
  • 原文地址:https://www.cnblogs.com/liujinyu/p/11654943.html
Copyright © 2011-2022 走看看