2016-12-06 106 views
1

在用于更改数据的OData世界中,有一个乐观的并发控制将标记在http标头etag上。什么是强etag

etag值有两种可用选项,强模式和弱模式。

我的问题,这两个选项有什么区别?

回答

2

弱实体标签由一个带有弱点指标前缀的不透明引用字符串组成。

entity-tag = [ weak ] opaque-tag 
    weak  = "W/" 
    opaque-tag = quoted-string 

实体标签用于比较来自同一请求资源的两个或多个实体。

只有在相同的情况下,“强实体标签”才可以被资源的两个实体共享。

只有当实体在语义上等价并且可以相互替换而没有语义上的显着变化时,由“W /”前缀指示的“弱实体标签”可以由资源的两个实体共享。弱实体标签只能用于弱比较。

下面的例子示出了用于一组实体标签对和两个弱和强的比较函数结果的结果:

ETag 1 ETag 2 Strong Comparison Weak Comparison 
--------------------------------------------------- 
W/"1" W/"1" no match   match 
W/"1" W/"2" no match   no match 
W/"1" "1"  no match   match 
"1"  "1"  match    match