EtagHTTP1.1нܣҪþ(css file, image, javascript file)ļһΨһĲ൱ڲѯַEtagзɣļĸıı䣬˾ͻֻȡEtag仯ļݵӿķӦٶȣҪǼ˵ѹԷEtagʵ־ͱȽҪˡ

иΪʲôҪʹEtagأ

EtagҪΪ˽Last-Modified޷һЩ.ܱLast_ModifiedӾȷ֪ļǷ޸Ĺ.иļ޸ķǳƵµʱڽ޸ģ1޸10ΣIf-Modified-Sinceֻܼ뼶޸ģ޸޷ж.ԭUNIX¼MTIMEֻܾȷ.ѡEtagΪEtagۺInodeMTimeSizeԱ.

EtagĹԭ
Etagڷɺ󣬿ͻͨIf-Match˵If-None-Matchж֤ԴǷ޸ġǳʹIf-None-Match.һļ̿£
µ
ͻ˷HTTP GETһļ(css ,image,js)󣬷ļݺһHeader(Etag,"2e681a-6-5d044840"),httpͷ״̬ΪΪ200.

ͬһûڶļ
ͻһηHTTP GETһļעʱͻͬʱһIf-None-MatchͷͷлϴļEtag("2e681a-6-5d044840"),ʱжϷ͹EtagԼEtagIf-None-MatchΪFalse200304ͻ˼ʹñػ棻

ע.Cache-Control:max-ageExpiresʱ,ͬʱʹãҲ˵ȫƥIf-Modified-SinceIf-None-Match޸ʱEtag֮󣬷ܷ304.

ApacheеEtag

ApacheEtagֱ֧Ƚϼ򵥣ֻҪapacheмݾͿˣ

FileETag MTime Size

ע:FileETagָ˵ĵǻһļʱԴETag(ʵǩ)Ӧͷļ(ETagֵڽлԽԼ)ETagֵļinode(ڵ)С޸ʱFileETagָѡ(ѡ)ЩҪؽʹáҪؼ£

INode
    ļڵ(inode)
MTime
    ļ޸ڼʱ
Size
    ļֽ
All
    дڵ򣬵ȼڣFileETag INode MTime Size
None
    һĵǻļģӦаκETagͷ

ڴͶWEBȺʱ,ʹETagʱ,˽ʹWEBȺʱҪʹETag,ʵܺý,Ϊʱ,INodeһ,ԲͬķɵETagһ,ûпظ(ʱETagͻ᲻׼),ԭú,Ҳ,ETag,MTimeSizeͺ.ֻҪETagļûINodeڼ,ͻ׼.

