rew*_*wbs 12 rest etag http http-headers if-modified-since
似乎有两种不同的方法来使用HTTP头实现条件请求,这两种方法都可以用于缓存,范围请求,并发控制等......:
在这两种情况下,客户端都会发送一条有关资源的信息,这使得服务器可以确定自客户端上次查看资源后资源是否已更改.然后,服务器根据客户端提供的条件头决定是否执行请求.
我不明白为什么有两种不同的方法可供使用.当然,ETags取代时间戳,因为服务器可以很容易地选择从时间戳生成ETag.
所以,我的问题是:
Chr*_*ian 12
我曾经思索过同样的事情,并意识到存在一个非常重要的区别:日期可以订购,ETag不能.
这意味着,如果某些资源在一年前被修改过,但从那时起就没有,我们就知道了.然后我们可以正确回答过去一年中任意日期的If-Unmodified-Since请求,并同意确定...自该日期以来它一直未经修改.
Etag只能与身份相媲美.它是相同的还是不相同的.如果您拥有与上述相同的资源,并且在一年中,docroot已移至新磁盘和文件系统,为所有文件提供新的inode但保留修改日期.有人将ETag基于文件的inode编号.然后我们不能说旧的ETag仍然没问题,没有过去仍然可以的ETag日志.
所以我不认为他们是另一个淘汰的人.它们适用于不同的情况.要么您可以轻松获得您要服务的页面中所有数据的最后修改日期,要么您可以轻松获得您将要服务的ETag.
如果您的动态网页包含来自大量数据库查找的数据,则可能很难判断上次修改日期是什么,而不会使您的数据库包含大量修改日期.但是,您始终可以对结果呈现页面进行md5校验和.
当支持这些缓存协议时,我肯定只针对其中一个,而不是两者.
| 归档时间: |
|
| 查看次数: |
3080 次 |
| 最近记录: |