304状态码--摘自百科
原创lixiuran_hello 博主文章分类:HTTP ©著作权
©著作权归作者所有:来自51CTO博客作者lixiuran_hello的原创作品,请联系作者获取转载授权,否则将追究法律责任
如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态码.
简单的表达就是:客户端已经执行了GET,但文件未变化。
客户端是怎么知道这些内容没有更新的呢?其实这并不是客户端的事情,而是你服务器的事情,大家都知道服务器可以设置缓存机制,这个功能是为了提高网站的访问速度,当你发出一个GET请求的时候服务器会从缓存中调用你要访问的内容,这个时候服务器就可以判断这个页面是不是更新过了,如果没有更新过那么他会给你返回一个304状态码。
例如:一些搜索引擎是如何知道我们的网站是否有更新。判断网页是否发生变化最直接的方法是设置页面的某一处为监控区域,每次都抓取该部分区域的内容,然后与本地保存的或最 近一次抓取内容比较,如果有差异就表明网页发生了变化,才可以进行解析。这种方法比较稳妥,几乎可达到万无一失的效果。但是,这种方式在每次扫描时都要下载页面内容,并且要去截取监控区域的内容,最后还要进行字符串比较,整个过程比较耗时。其实在众多网页中,有一部分网站的网页内容是静态页面,如图片,html,js等,这些静态页面往往可能是服务器早已准备好的,用户访问时仅仅是下载而已。那么针对这种静态页面,就可以仅仅通过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状态码。那么搜索引擎就不会对我们的页面进行再次抓取了
如果一个网站被搜索引擎抓取的次数以及频率越多那么他是越有利于排名的,但是如果你的网站出现太多的304,那么一定会降低搜索引擎的抓取频率以及次数,从而让自己的网站排名比别人落一步

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
5万字 AI绘画 SD sdxl comfyui Animatediff 换脸 stable diffusion Midjourney 官方GPT文档 AIGC百科全书资料收集
【选题思路】随着深度学习和计算机视觉的进步,AI绘画逐渐成为了可能。通过大量的数据训练和复杂的算法模型,AI可以学习艺术家的绘画风格,并生成以假乱真的艺术作品。这种技术的突破,使得AI能够模仿各种绘画风格,从古典到现代,从印象派到抽象艺术,尽显无限创造力。本期我们以AI绘画开源作品Stablediffusion为例进行讲解,简称SD,但是SD目前最大的还是显存占用,特别是个别视频插
AI绘画 stablediffusion comfyui sd sdxl -
PNEdit 百科
Table of Contents简介 1窗口设置 1编辑方式 2快捷命令 3应用插件 3版本信息 4参考资料 4
vim emacs 文本编辑器 ultraedit vscode -
Selenium 百科
Selenium 百科
其他 Selenium -
NoSQL 百科
NoSQL 百科http://baike.baidu.com/view/2677528.htmmongodb 百科http://baike.baidu.com/view/3385614.htmMongoDB学习笔记
nosql mongodb mvc 文档 javascript -
#ifndef -摘自百度百科
*****/备注:#ifndef 和 #endif 要一起使用,如果丢失#endif,可能会报
#ifndef #endif 头文件 #define 重定义 -
PNFile 百科
T
vscode ultraedit 文本编辑器 emacs vim