首页 > 编程知识 正文

http状态码200,http状态码304的含义

时间:2023-05-05 13:33:55 阅读:21826 作者:916

状态代码类别状态代码类别理由说明正在处理接收1xx信息状态代码的请求2xx成功状态代码请求正常处理完成3xx重定向状态代码请求完成4xx客户端错误状态代码服务器处理请求5xx服务器错误状态代码详细说明状态代码304状态代码不应视为错误,而可能应视为客户端有缓存时的服务端响应。

整个请求响应过程如下: 如果客户端请求文件时发现自己缓存的文件中存在最后修改,则请求中将包含if修改的since。 此时间是缓存文件的最后修改。 因此,如果请求包含If Modified Since,则表示客户端已经有缓存。 服务端只需确定这个时间和当前请求的文件修改时间,就可以确定是否返回304或200。 作为附加条件,对于CSS、照片等静态文件,服务器但是,动态的页面、即动态生成的页面大多不包含Last Modified信息,浏览器、网关等不制作缓存,并且因此,要对动态页面进行缓存加速,请首先将最后修改定义添加到响应的HTTP Header中,然后根据请求的if修改的同步和请求的内容更新时间来更新200 返回304时进行了一次数据库查询,但是增加了以下数据库查询的数量,避免了页面内容不返回而只是HTTP Header,大大降低了带宽消耗,也提高了用户的感觉如果启用了这些缓存,则在Fiddler或HttpWatch中查看请求将生成第一次访问200时的结果

按F5刷新(第二次访问) 304

按Ctrl F5强制更新200

Last-Modified和If-Modified-Since 1.基本定义

Last-Modified和If-Modified-Since都是标准的HTTP请求标头标记,用于记录页面的上次修改时间。

2 .发送方向

Last-Modified是服务器发送到客户机的HTTP请求标头标记

If-Modified-Since是客户端发送到服务器的HTTP请求标头标签

3 .应用场景

(1)最后修改

当浏览器首次请求URL时,服务器端回复状态为200。 内容是请求的资源,Last-Modified属性标记此文件在服务期间上次修改的时间。 形式如下。

Last-Modified: Fri,12 May 2006 18:53:33 GMT

后续的时间是服务器上保存的文件的修改时间

) if -已修改-单次

当客户端第二次请求此URL时,浏览器会根据HTTP协议的规定将If-Modified-Since标头发送到服务器,询问该文件在那段时间后是否发生了更改。

If-Modified-Since: Fri,12 May 2006 18:53:33 GMT

后续时间是本地浏览器中存储的文件的修改时间

如果服务器端资源没有变化,则时间匹配,自动返回HTTP状态代码304(notchanged.)状态代码。 内容为空,客户端收到后,直接在浏览器中显示本地缓存文件。 这样可以节约传输数据量。

如果服务器端资源发生更改或服务器重新启动时时间不匹配,则返回HTTP状态代码200和新文件的内容,客户端在收到后销毁旧文件,缓存新文件并浏览器

这些操作可以确保不会向客户端重复发布资源,并且客户端在服务发生更改时可以获得最新的资源。

2xx成功200 OK

指示客户端请求已成功处理服务端204 No Content

206 Partial Content,指示服务器只需将信息从客户端发送到服务器,就不必发送新的信息内容

表示客户端发出了范围请求,服务器成功执行了这部分GET请求,响应消息中应该将Content-Range指定范围的实体内容3xx重定向到301 Moved Permanently

永久重定向表示已将新URI分配给请求的资源,并且必须稍后使用当前指定的URI302 Found资源

暂时重定向。 是这个状态吗? 为请求的资源分配了新的URI。 希望用户“这次”可以使用新的URI访问303 See Other

此状态代码显示了与请求对应的资源中存在另一个URI,并注意应使用GET方法检索请求的资源。 当301、302和303响应状态代码返回时,大多数浏览器会将开机自检更改为GET,删除请求消息中的主体,然后自动重新发送请求

304不修改

此状态代码表示客户端发送有条件的请求时,服务器端允许请求访问资源,但会从缓存中获取资金

源307 Temporary Redirect
临时重定向,于 302 有相同的含义,但它会遵照浏览器的标准,不会从 POST 变为 GET,但对处理响应行为时,每种浏览器可能出现不同的情况 4xx 客户端错误 400 Bad Request
该状态码表示请求报文中存在语法错误,当这种错误发生时,需要修改请求内容后再次发送请求401 Unauthorized
该状态码表示发送的请求需要有通过 HTTP 认证(BASIC认证、DIGEST认证)的认证信息403 Forbidden
该状态码表明请求资源的访问呗服务器拒绝了,服务器没有必要给出拒绝的详细理由。一般时访问权限出现某些问题(如从未授权发送源 IP 地址试图访问)等情况都是可能发生 403 的404 Not Found
该状态码表示服务器上无法找到请求的资源,除此之外,也可以是服务器端拒绝请求且不行说明理由时使用 5xx 服务器错误 500 Internal Server Error
该状态码表示服务端在执行请求时发生了错误,也有可能是 web 应用存在的 bug 或某些临时的故障503 Service Unavailable
该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。(如果事先知道解除以上状况需要的时间,最好写入 Retry-After 首部字段返回给客户端)

注意:状态码和状况的不一致,不少返回的状态码响应都是错误的,但是用户可能察觉不到这点。比如 web 应用程序内部发生错误,状态码依旧返回 200 OK,这种情况也经常遇到

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。