ETag简介与作用

一、ETag简介

ETag是URL的tag,用来标示URL对象是否改变。这样可以应用于客户端的缓存:服务器产生ETag,并在HTTP响应头中将其传送到客户端,服务器用它来判断页面是否被修改过,如果未修改返回304,无需传输整个对象。

二、现在站点Sitemap存在的问题

二、现在站点Sitemap存在的问题

1、发现更新不及时

当站点或其Sitemap发生更新时,百度难以及时发现并响应,因为百度难以无时无刻地持续检查站点内容和Sitemap是否更新。

2、全量抓取,消耗带宽

现在百度对站点Sitemap的抓取会将Sitemap文件完整下载下来,鉴于Sitemap文件一般较大,而这种下载可能存在多次,故比较消耗网站的流量和带宽。

三、ETag的作用

HTTP1.1用ETag来判断请求的文件是否被修改,主要为了解决Last-Modified无法解决的一些问题

1、一些文件也许会周期性的更改,但是他的内容并不改变(仅仅改变的修改时间),这个时候并不希望客户端认为这个文件被修改了重新GET;

2、某些文件修改非常频繁,1秒内修改了N次,If-Modified-Since能检查到的粒度是秒级的,这种修改无法判断

3、某些服务器不能精确的得到文件的最后修改时间;

为此,HTTP1.1引入了ETag.但标准并没有规定ETag的内容是什么或者说要怎么实现,唯一规定的是ETag需要放在双引号内。ETag由服务器端生成,客户端通过If-Match或者说If-None-Match这个条件判断请求来验证资源是否修改。我们常见的是使用If-None-Match.请求一个文件的流程可能如下:

第一次请求:

  1. 客户端发起HTTP get请求一个文件
  2. 服务器处理请求,返回文件内容和一堆Header,当然包括ETag(例如"1ec5-502264e2ae4c0")(假设服务器支持ETag生成和已经开启了ETag).状态码200,如下图所示

第二次请求:

1.客户端发起HTTP GET请求一个文件,这个时候客户端同时发送一个If-None-Match头,这个头的内容就是我们第一次请求时服务器返回的ETag:1ec5-502264e2ae4c0

2.服务器判断发送过来的ETag和计算出来的ETag是匹配的,不返回200,返回304,让客户端继续使用本地缓存。

四、站点启用ETag的好处

1、Sitemap启用ETag后,百度就可以快速的知道Sitemap的更新。在内容没有做更改的情况下,服务器只发回304应答头,对流量的消耗极小。平均每个head在227B大小的通常下,如果24个小时每秒回应的流量消耗仅为18.7M。

  2、站长平台对每个站点的Sitemap主动抓取次数是有上限的,且 这项功能没有对所有站点开放,如果你的站点Sitemap开启了ETag,并通过了测试,就可以用较小的流量享受百度及时更新网站的Sitemap的功能。

  

最新文章

  1. 框架dubbox的简单使用
  2. .NET 扩展方法 (一)
  3. address_add
  4. android ant 自动编译打包
  5. C语言Makefile文件使用
  6. apache部署多个项目
  7. Swift 可选值(Optional Values)介绍
  8. Flex 日期和字符串之间转换
  9. mybatis+spring+struts2框架整合
  10. Specify a culture in string conversion explicitly
  11. Java GC 概念摘要
  12. 转--Oracle DB 服务器系统时间修改问题与 SCN 关系的深入研究
  13. wpf纯前台绑定
  14. Linux查看非root流程执行
  15. ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)
  16. asp.net core中负载均衡场景下http重定向https的问题
  17. 51nod_1605:棋盘问题
  18. tensorflow Method源码阅读之 fully_connected
  19. Sql server 索引详解
  20. 使用Kinect2.0控制VREP中的虚拟模型

热门文章

  1. Spark读取Hbase中的数据
  2. Spark文档阅读之一:Spark Overview
  3. 密码学数论基础部分总结之 有限域GF(p) Galois Fields
  4. 这一次搞懂Spring的XML解析原理
  5. mac安装powerdesigner
  6. elk2
  7. Jenkins入门-环境搭建(1)-转
  8. 蝙蝠算法(BA)学习笔记
  9. Mac下搭建react开发环境
  10. 【Spring注解驱动开发】BeanPostProcessor在Spring底层是如何使用的?看完这篇我懂了!!