304状态码--摘自百科

1定义编辑

如果客户端发送了一个带条件的 GET
请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态码.

简单的表达就是:客户端已经执行了GET,但文件未变化。

2什么情况下会返回304状态码编辑

客户端是怎么知道这些内容没有更新的呢?其实这并不是客户端的事情,而是你服务器的事情,大家都知道服务器可以设置缓存机制,这个功能是为了提高网站的访问速度,当你发出一个GET请求的时候服务器会从缓存中调用你要访问的内容,这个时候服务器就可以判断这个页面是不是更新过了,如果没有更新过那么他会给你返回一个304状态码。

例如:一些搜索引擎是如何知道我们的网站是否有更新。判断网页是否发生变化最直接的方法是设置页面的某一处为监控区域,每次都抓取该部分区域的内容,然后与本地保存的或最
近一次抓取内容比较,如果有差异就表明网页发生了变化,才可以进行解析。这种方法比较稳妥,几乎可达到万无一失的效果。但是,这种方式在每次扫描时都要下载页面内容,并且要去截取监控区域的内容,最后还要进行字符串比较,整个过程比较耗时。其实在众多网页中,有一部分网站的网页内容是静态页面,如图片,html,js等,这些静态页面往往可能是服务器早已准备好的,用户访问时仅仅是下载而已。那么针对这种静态页面,就可以仅仅通过304状态码来判断,内容是否发生了变化。

3如何从网站日志中分析304状态码编辑

例如某网站日志中有以下这样的一段:

2011-12-18 23:45:33 W3SVC7499849XX 61.145.116.XX GET
/asyj/1112_5544.html - 80 - 123.125.71.78
Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://***.baidu.coX/search/spider.html[1]) 304 0 0

其实这段文字是这样理解的。

2011-12-18 23:45:33 ——代表访问的日期和时间。

W3SVC7499849XX ——代表虚拟主机的名称

61.145.116.XX ——代表访问ip

GET ——代表访问的方法

/asyj/1112_5544.html——代表具体访问的文件

80 ——代表访问的端口

123.125.71.78 ——代表来源ip

Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://***.baidu.coX/search/spider.html)
——代表访问来源;这里是代表百度蜘蛛。注*换为w

304 ——304返回码。这个也是这里介绍的重点。这里表示客户端已经执行了GET,但文件未变化

前一个0 ——代表服务端传送到客户端的字节大小

后一个0 ——代表客户端传送到服务端的字节大小

从这一段日志。我们可以看出这次百度蜘蛛访问的结果的返回了一个304状态码。那么搜索引擎就不会对我们的页面进行再次抓取了

4304状态码的意义所在编辑

如果一个网站被搜索引擎抓取的次数以及频率越多那么他是越有利于排名的,但是如果你的网站出现太多的304,那么一定会降低搜索引擎的抓取频率以及次数,从而让自己的网站排名比别人落一步

304状态码--摘自百科,布布扣,bubuko.com

时间: 2024-07-30 09:51:52

304状态码--摘自百科的相关文章

304状态码前后的具体流程

首先304状态码或许不应该认为是一种错误,而是对客户端有缓存情况下服务端的一种响应.        客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified .因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端.服务端只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 .对于静态文件,例如:CSS.图片,

分析HTTP请求返回304状态码

大家好,今天给大家分享一个状态码304,大家可能在以前的开发中打开chrome tools 或 firebug工具时有意间或无意间看到它. HTTP 304: Not Modified 标准解释是:Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档).服务器告诉客户,原来缓冲的文档还可以继续使用.如下图: 在请求头里有:If-Modified-Since: Mon, 17 Aug 2015 01:5

【http】http的方法,状态码和组成部分

Http(Hypertext Transfer Protocol) HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议.它可以使浏览器更加高效,使网络传输减少.它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等. 用于http协议交互的信息被称为http报文.请求端(客户端)的http报文叫做请求报文,响应端(服务器)的叫做响应报文. 请求报文由请

HTTP协议 (六) ---状态码

状态码 201-206都表示服务器成功处理了请求的状态代码,说明网页可以正常访问. 200(成功)  服务器已成功处理了请求.通常,这表示服务器提供了请求的网页. 201(已创建)  请求成功且服务器已创建了新的资源. 202(已接受)  服务器已接受了请求,但尚未对其进行处理. 203(非授权信息)  服务器已成功处理了请求,但返回了可能来自另一来源的信息. 204(无内容)  服务器成功处理了请求,但未返回任何内容. 205(重置内容) 服务器成功处理了请求,但未返回任何内容.与 204 响

常见的HTTP状态码深入理解

状态码的职责是当客户端向服务器端发送请求时,描述返回请求结果.借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了什么错误. RFC2616定义的状态码,由3位数字和原因短信组成. 数字中的第一位指定了响应类别,后两位无分类.响应类别有以下5种: Type Reason-phrase Note 1XX Informational 信息性状态码,表示接受的请求正在处理 2XX Success 成功状态码,表示请求正常处理完毕 3XX Redirection 重定向状态码,表示需要客户端需要

HTTP 报文 之 HTTP 状态码

如前面所示,HTTP 状态码被分成了五大类.本节对这五类 HTTP 状态码中的每一类都进行了总结. 100~199--信息性状态码 HTTP/1.1 向协议中引入了信息性状态码.这些状态码相对较新,关于其复杂性和感知价值存在一些争议,而受到限制. 状态码 原因短语 含义 100 Continue  说明收到了请求的初始部分,请客户端继续.发送了这个状态码之后,服务器在收到请求之后必须进行响应.更多信息请参见附录 C 中的 Expect 首部介绍. 101 Switching Protocols

http请求头响应头及状态码列表

HTTP响应头和请求头信息对照表 HTTP请求头提供了关于请求,响应或者其他的发送实体的信息.HTTP的头信息包括通用头.请求头.响应头和实体头四个部分.每个头域由一个域名,冒号(:)和域值三部分组成. 通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联. 请求头标:允许客户端传递关于自身的信息和希望的响应形式. 响应头标:服务器和于传递自身信息的响应. 实体头标:定义被传送资源的信息.即可用于请求,也可用于响应. 根据以上分类的HTTP请求头介绍可以参考此文,本工具

状态码的分析

https://www.cnblogs.com/wxw16/p/6237548.html 状态码的分类 1xx :(表示信息性状态码)---- 接受请求正在处理 2xx:---(成功状态码)-----请求正常处理完毕 3xx------(重定向状态码)------ 需要进行附加操作以完成请求 4xx----(表示客户端出现错误)----服务器无法处理请求 5xx ----(表示服务器端错误)----服务器处理请求出错 200 OK 表示从客户端发来的请求在服务器端被正常处理了. 在响应报文中,随

HTTP状态码面试必知

typora-root-url: ./HTTPCODE HTTP状态码必知必会 这里主要介绍运维过程中经常遇到的状态码.并通过业界流行的Nginx进行模拟实现,让大家能有一种所见即所得的感觉.希望大家通过此知识点的学习,能够对HTTP状态码有一个理性的认识(如果你是一名运维人员,那么请记牢记些状态码的含义). 实验场景介绍 操作系统: CentOS 7.3实验用软件包: nginx php-fpm php httpd-tools(使用了YUM仓库原生软件包)yum -y install ngin