{"id":221,"date":"2013-03-26T17:20:48","date_gmt":"2013-03-26T09:20:48","guid":{"rendered":"http:\/\/www.ipcpu.com\/?p=221"},"modified":"2013-03-26T17:20:48","modified_gmt":"2013-03-26T09:20:48","slug":"etag-or-not","status":"publish","type":"post","link":"https:\/\/c.ipcpu.com\/2013\/03\/etag-or-not\/","title":{"rendered":"\u7f51\u7ad9\u524d\u7aef\u4f18\u5316Etag or not"},"content":{"rendered":"

\"etag1\"<\/a><\/p>\n

\u5173\u952e\u5b57\uff1a \u7f51\u7ad9\u4f18\u5316 \u4f18\u5316 \u524d\u7aef\u4f18\u5316 Apache ETag<\/p>\n

Google\u7684PageSpeed\u7f51\u7ad9\u4f18\u5316\u7406\u8bba\u4e2d\u63d0\u5230\u4f7f\u7528Etag\u53ef\u4ee5\u51cf\u5c11\u670d\u52a1\u5668\u8d1f\u62c5\u3002
\n
https:\/\/developers.google.com\/speed\/docs\/pss\/AddEtags<\/a><\/p>\n

\u800cyahoo\u7684Yslow\u6cd5\u5219\u4e2d\u5219\u63d0\u793a\u8c28\u614e\u8bbe\u7f6eEtag\u3002
\n
http:\/\/developer.yahoo.com\/performance\/rules.html#etags<\/a><\/p>\n

\u4ec0\u4e48\u662fEtag \uff1f<\/strong><\/p>\n

Etag \u662fURL\u7684Entity Tag\uff0c\u7528\u4e8e\u6807\u793aURL\u5bf9\u8c61\u662f\u5426\u6539\u53d8\u3002<\/p>\n

\u4e3a\u4ec0\u4e48\u8981\u4f7f\u7528Etag\uff1f<\/strong><\/p>\n

Etag\u4e3b\u8981\u4e3a\u4e86\u89e3\u51b3Last-Modified\u65e0\u6cd5\u89e3\u51b3\u7684\u4e00\u4e9b\u95ee\u9898.\u4ed6\u80fd\u6bd4Last_Modified\u66f4\u52a0\u7cbe\u786e\u7684\u77e5\u9053\u6587\u4ef6\u662f\u5426\u88ab\u4fee\u6539\u8fc7.\u5982\u679c\u6709\u4e2a \u6587\u4ef6\u4fee\u6539\u975e\u5e38\u9891\u7e41,\u6bd4\u5982\u5728\u79d2\u4ee5\u4e0b\u7684\u65f6\u95f4\u5185\u8fdb\u884c\u4fee\u6539,\u6bd4\u59821\u79d2\u5185\u4fee\u6539\u4e8610\u6b21,If-Modified-Since\u80fd\u68c0\u67e5\u53ea\u80fd\u79d2\u7ea7\u7684\u4fee\u6539,\u6240\u4ee5\u8fd9\u79cd\u4fee\u6539\u65e0\u6cd5 \u5224\u65ad.\u539f\u56e0\u662fUNIX\u8bb0\u5f55MTIME\u53ea\u80fd\u7cbe\u786e\u5230\u79d2.\u6240\u4ee5\u6211\u4eec\u9009\u62e9\u751f\u6210Etag,\u56e0\u4e3aEtag\u53ef\u4ee5\u7efc\u5408Inode,MTime\u548cSize,\u53ef\u4ee5\u907f\u514d\u8fd9\u4e2a\u95ee \u9898.<\/p>\n

Etag\u7684\u5de5\u4f5c\u539f\u7406<\/strong><\/p>\n

Etag\u5728\u670d\u52a1\u5668\u4e0a\u751f\u6210\u540e,\u5ba2\u6237\u7aef\u901a\u8fc7If-Match\u6216\u8005\u8bf4If-None-Match\u8fd9\u4e2a\u6761\u4ef6\u5224\u65ad\u8bf7\u6c42\u6765\u9a8c\u8bc1\u8d44\u6e90\u662f\u5426\u4fee\u6539.\u6211\u4eec\u5e38\u89c1\u7684\u662f\u4f7f\u7528If-None-Match.\u8bf7\u6c42\u4e00\u4e2a\u6587\u4ef6\u7684\u6d41\u7a0b\u53ef\u80fd\u5982\u4e0b\uff1a<\/p>\n

\u65b0\u7684\u8bf7\u6c42<\/span>
\n\u5ba2\u6237\u7aef\u53d1\u8d77HTTP GET\u8bf7\u6c42\u4e00\u4e2a\u6587\u4ef6(css ,image,js)\uff1b\u670d\u52a1\u5668\u5904\u7406\u8bf7\u6c42,\u8fd4\u56de\u6587\u4ef6\u5185\u5bb9\u548c\u4e00\u5806Header(\u5305\u62ecEtag,\u4f8b\u5982\u201d2e681a-6-5d044840\u2033),http\u5934\u72b6\u6001\u7801\u4e3a\u4e3a200.<\/p>\n

\u540c\u4e00\u4e2a\u7528\u6237\u7b2c\u4e8c\u6b21\u8fd9\u4e2a\u6587\u4ef6\u7684\u8bf7\u6c42<\/span>
\n\u5ba2\u6237\u7aef\u5728\u4e00\u6b21\u53d1\u8d77HTTP GET\u8bf7\u6c42\u4e00\u4e2a\u6587\u4ef6,\u6ce8\u610f\u8fd9\u4e2a\u65f6\u5019\u5ba2\u6237\u7aef\u540c\u65f6\u53d1\u9001\u4e00\u4e2aIf-None-Match\u5934,\u8fd9\u4e2a\u5934\u4e2d\u4f1a\u5305\u62ec\u4e0a\u6b21\u8fd9\u4e2a\u6587\u4ef6\u7684Etag(\u4f8b\u5982\u201d2e681a- 6-5d044840\u2033),\u8fd9\u65f6\u670d\u52a1\u5668\u5224\u65ad\u53d1\u9001\u8fc7\u6765\u7684Etag\u548c\u81ea\u5df1\u8ba1\u7b97\u51fa\u6765\u7684Etag,\u56e0\u6b64If-None-Match\u4e3aFalse,\u4e0d\u8fd4\u56de200,\u8fd4 \u56de304,\u5ba2\u6237\u7aef\u7ee7\u7eed\u4f7f\u7528\u672c\u5730\u7f13\u5b58\uff1b<\/p>\n

\u6ce8\u610f.<\/strong>\u670d\u52a1\u5668\u53c8\u8bbe\u7f6e\u4e86Cache-Control:max-age\u548cExpires\u65f6,\u4f1a\u540c\u65f6\u4f7f\u7528,\u4e5f\u5c31\u662f\u8bf4\u5728\u5b8c\u5168\u5339\u914dIf-Modified-Since\u548cIf-None-Match\u5373\u68c0\u67e5\u5b8c\u4fee\u6539\u65f6\u95f4\u548cEtag\u4e4b\u540e,\u670d\u52a1\u5668\u624d\u80fd\u8fd4\u56de304.<\/span><\/span><\/p>\n

\u90a3\u4e48\u8fd9\u662f\u4e2a\u597d\u4e1c\u897f,\u4e3a\u4ec0\u4e48\u5f88\u591a\u4eba\u5efa\u8bae\u5173\u95ed\u5b83\u5462\uff1f<\/p>\n

\u4e3b\u8981\u597d\u662f\u56e0\u4e3a\u4ed6\u7684\u9ed8\u8ba4\u914d\u7f6e\u3002<\/p>\n

\u5728Apache\u7684\u9ed8\u8ba4\u914d\u7f6e\u4e2dETag\u662f\u8fd9\u6837\u5b9a\u4e49\u7684\uff1a<\/p>\n

FileETag INode MTime Size<\/p>\n

\u8fd9\u51e0\u4e2a\u503c\u5206\u522b\u8868\u793a \u6587\u4ef6\u7684\u7d22\u5f15\u8282\u70b9(inode)\u6570 \uff0c\u6587\u4ef6\u7684\u6700\u540e\u4fee\u6539\u65e5\u671f\u53ca\u65f6\u95f4\u548c \u6587\u4ef6\u7684\u5b57\u8282\u6570<\/p>\n

\u91cc\u9762\u6709\u4e2ainode\uff0c\u8fd9\u5c31\u4e0d\u96be\u7406\u89e3\u4e86\uff0c\u5f53\u540e\u7aef\u6709\u591a\u53f0\u670d\u52a1\u5668\u65f6\uff08\u96c6\u7fa4\u65b9\u5f0f\uff09\u6839\u672c\u65e0\u6cd5\u4fdd\u8bc1inode\u662f\u4e00\u81f4\u7684\u3002<\/p>\n

\u90a3\u600e\u4e48\u529e\u5462\uff1f
\n1. \u53bb\u6389ETag FileETag None
\n2. \u4fee\u6539ETag\u53c2\u6570 \u4f8b\u5982 FileETag MTime Size<\/p>\n

\u8fd9\u662fApache\u548cLinux\uff0c\u5728windows\u548cIIS\u4e2d\u540c\u6837\u5b58\u5728\u8fd9\u4e2a\u95ee\u9898<\/p>\n

IIS\u662f\u8fd9\u6837\u6765\u914d\u7f6eEtag\u7684 Filetimestamp:ChangeNumber
\n\u8fd9\u91cc\u9762\u7684ChangeNumber\uff0c\u540c\u6837\u4e5f\u65e0\u6cd5\u4fdd\u8bc1\u4e00\u81f4\u3002<\/p>\n

\u5fae\u8f6f\u7684\u8fd9\u7bc7\u6587\u7ae0\u8868\u8ff0\u4e86\u5982\u4f55\u5173\u95edIIS\u7684ETag\u3002http:\/\/support.microsoft.com\/?id=922733<\/a><\/p>\n

\u5982\u4f55\u8bc6\u522b\u548c\u9a8c\u8bc1\uff1f<\/strong><\/p>\n

\u6211\u4eec\u6765\u505a\u4e2a\u5c0f\u5b9e\u9a8c\uff0c\u5728apache\u4e0b\u653e\u4e00\u4e2aflash\u6587\u4ef6\u3002<\/p>\n

\u5f53FileETag ALL\u65f6\uff0cETag\u7684\u503c\u662fETag: \u201c1f03c1-15c6c-4a87bae351200\u2033<\/p>\n

\u5f53FileETag INode\u65f6\uff0cETag\u7684\u503c\u662fETag: \u201c1f03c1\u2033<\/p>\n

\u5f53FileETag size\u65f6\uff0cETag\u503c\u662fETag: \u201c15c6c\u201d<\/p>\n

\u5f53FileETag MTime\u65f6\uff0cETag\u7684\u503c\u662fETag: \u201c4a87bae351200\u2033<\/p>\n

\u7ed3\u679c\u975e\u5e38\u660e\u663e\uff0c\u7531\u6b64\u5f97\u77e5\u53ef\u4ee5\u4eceETag\u7684\u503c\u6765\u5224\u65adETag\u7684\u53c2\u6570\u3002<\/p>\n

\u8f6c\u8f7d\u8bf7\u6ce8\u660e\uff1aIPCPU-\u7f51\u7edc\u4e4b\u8def<\/a> » \u7f51\u7ad9\u524d\u7aef\u4f18\u5316Etag or not<\/a><\/p>","protected":false},"excerpt":{"rendered":"

\u5173\u952e\u5b57\uff1a \u7f51\u7ad9\u4f18\u5316 \u4f18\u5316 \u524d\u7aef\u4f18\u5316 Apache ETag Google\u7684PageSpeed\u7f51\u7ad9\u4f18\u5316\u7406\u8bba\u4e2d\u63d0\u5230\u4f7f\u7528Etag\u53ef\u4ee5\u51cf\u5c11\u670d\u52a1\u5668\u8d1f\u62c5\u3002 https:\/\/developers.google.com\/speed\/docs\/pss\/AddEtags \u800cyahoo\u7684Yslow\u6cd5\u5219\u4e2d\u5219\u63d0\u793a\u8c28\u614e\u8bbe\u7f6eEtag\u3002 http:\/\/developer.yahoo.com\/performance\/rules.html#etags \u4ec0\u4e48\u662fEtag \uff1f Etag \u662fURL\u7684Entity Tag\uff0c\u7528\u4e8e\u6807\u793aURL\u5bf9\u8c61\u662f\u5426\u6539\u53d8\u3002 \u4e3a\u4ec0\u4e48\u8981\u4f7f\u7528Etag\uff1f Etag\u4e3b\u8981\u4e3a\u4e86\u89e3\u51b3Last-Modified\u65e0\u6cd5\u89e3\u51b3\u7684\u4e00\u4e9b\u95ee\u9898.\u4ed6\u80fd\u6bd4Last_Modified\u66f4\u52a0\u7cbe\u786e\u7684\u77e5\u9053\u6587\u4ef6\u662f\u5426\u88ab\u4fee\u6539\u8fc7.\u5982\u679c\u6709\u4e2a \u6587\u4ef6\u4fee\u6539\u975e\u5e38\u9891\u7e41,\u6bd4\u5982\u5728\u79d2\u4ee5\u4e0b\u7684\u65f6\u95f4\u5185\u8fdb\u884c\u4fee\u6539,\u6bd4\u59821\u79d2\u5185\u4fee\u6539\u4e8610\u6b21,If-Modified-Since\u80fd\u68c0\u67e5\u53ea\u80fd\u79d2\u7ea7\u7684\u4fee\u6539,\u6240\u4ee5\u8fd9\u79cd\u4fee\u6539\u65e0\u6cd5 \u5224\u65ad.\u539f\u56e0\u662fUNIX\u8bb0\u5f55MTIME\u53ea\u80fd\u7cbe\u786e\u5230\u79d2.\u6240\u4ee5\u6211\u4eec\u9009\u62e9\u751f\u6210Etag,\u56e0\u4e3aEtag\u53ef\u4ee5\u7efc\u5408Inode,MTime\u548cSize,\u53ef\u4ee5\u907f\u514d\u8fd9\u4e2a\u95ee \u9898. Etag\u7684\u5de5\u4f5c\u539f\u7406 Etag\u5728\u670d\u52a1\u5668\u4e0a\u751f\u6210\u540e,\u5ba2\u6237\u7aef\u901a\u8fc7If-Match\u6216\u8005\u8bf4If-None-Match\u8fd9\u4e2a\u6761\u4ef6\u5224\u65ad\u8bf7\u6c42\u6765\u9a8c\u8bc1\u8d44\u6e90\u662f\u5426\u4fee\u6539.\u6211\u4eec\u5e38\u89c1\u7684\u662f\u4f7f\u7528If-None-Match.\u8bf7\u6c42\u4e00\u4e2a\u6587\u4ef6\u7684\u6d41\u7a0b\u53ef\u80fd\u5982\u4e0b\uff1a \u65b0\u7684\u8bf7\u6c42 \u5ba2\u6237\u7aef\u53d1\u8d77HTTP GET\u8bf7\u6c42\u4e00\u4e2a\u6587\u4ef6(css ,image,js)\uff1b\u670d\u52a1\u5668\u5904\u7406\u8bf7\u6c42,\u8fd4\u56de\u6587\u4ef6\u5185\u5bb9\u548c\u4e00\u5806Header(\u5305\u62ecEtag,\u4f8b\u5982\u201d2e681a-6-5d044840\u2033),http\u5934\u72b6\u6001\u7801\u4e3a\u4e3a200. \u540c\u4e00\u4e2a\u7528\u6237\u7b2c\u4e8c\u6b21\u8fd9\u4e2a\u6587\u4ef6\u7684\u8bf7\u6c42 \u5ba2\u6237\u7aef\u5728\u4e00\u6b21\u53d1\u8d77HTTP GET\u8bf7\u6c42\u4e00\u4e2a\u6587\u4ef6,\u6ce8\u610f\u8fd9\u4e2a\u65f6\u5019\u5ba2\u6237\u7aef\u540c\u65f6\u53d1\u9001\u4e00\u4e2aIf-None-Match\u5934,\u8fd9\u4e2a\u5934\u4e2d\u4f1a\u5305\u62ec\u4e0a\u6b21\u8fd9\u4e2a\u6587\u4ef6\u7684Etag(\u4f8b\u5982\u201d2e681a- 6-5d044840\u2033),\u8fd9\u65f6\u670d\u52a1\u5668\u5224\u65ad\u53d1\u9001\u8fc7\u6765\u7684Etag\u548c\u81ea\u5df1\u8ba1\u7b97\u51fa\u6765\u7684Etag,\u56e0\u6b64If-None-Match\u4e3aFalse,\u4e0d\u8fd4\u56de200,\u8fd4 \u56de304,\u5ba2\u6237\u7aef\u7ee7\u7eed\u4f7f\u7528\u672c\u5730\u7f13\u5b58\uff1b \u6ce8\u610f.\u670d\u52a1\u5668\u53c8\u8bbe\u7f6e\u4e86Cache-Control:max-age\u548cExpires\u65f6,\u4f1a\u540c\u65f6\u4f7f\u7528,\u4e5f\u5c31\u662f\u8bf4\u5728\u5b8c\u5168\u5339\u914dIf-Modified-Since\u548cIf-None-Match\u5373\u68c0\u67e5\u5b8c\u4fee\u6539\u65f6\u95f4\u548cEtag\u4e4b\u540e,\u670d\u52a1\u5668\u624d\u80fd\u8fd4\u56de304. \u90a3\u4e48\u8fd9\u662f\u4e2a\u597d\u4e1c\u897f,\u4e3a\u4ec0\u4e48\u5f88\u591a\u4eba\u5efa\u8bae\u5173\u95ed\u5b83\u5462\uff1f \u4e3b\u8981\u597d\u662f\u56e0\u4e3a\u4ed6\u7684\u9ed8\u8ba4\u914d\u7f6e\u3002 \u5728Apache\u7684\u9ed8\u8ba4\u914d\u7f6e\u4e2dETag\u662f\u8fd9\u6837\u5b9a\u4e49\u7684\uff1a FileETag INode MTime Size \u8fd9\u51e0\u4e2a\u503c\u5206\u522b\u8868\u793a \u6587\u4ef6\u7684\u7d22\u5f15\u8282\u70b9(inode)\u6570 \uff0c\u6587\u4ef6\u7684\u6700\u540e\u4fee\u6539\u65e5\u671f\u53ca\u65f6\u95f4\u548c \u6587\u4ef6\u7684\u5b57\u8282\u6570 \u91cc\u9762\u6709\u4e2ainode\uff0c\u8fd9\u5c31\u4e0d\u96be\u7406\u89e3\u4e86\uff0c\u5f53\u540e\u7aef\u6709\u591a\u53f0\u670d\u52a1\u5668\u65f6\uff08\u96c6\u7fa4\u65b9\u5f0f\uff09\u6839\u672c\u65e0\u6cd5\u4fdd\u8bc1inode\u662f\u4e00\u81f4\u7684\u3002 \u90a3\u600e\u4e48\u529e\u5462\uff1f 1. \u53bb\u6389ETag FileETag None 2. \u4fee\u6539ETag\u53c2\u6570 \u4f8b\u5982 FileETag MTime Size […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[],"_links":{"self":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts\/221"}],"collection":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/comments?post=221"}],"version-history":[{"count":0,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts\/221\/revisions"}],"wp:attachment":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/media?parent=221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/categories?post=221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/tags?post=221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}