ETag tương tự như tiêu đề Sửa đổi lần cuối. Đó là một cơ chế để xác định sự thay đổi của khách hàng.
Có thể cho rằng, một ETAG JUST HAPPENS là ngày sửa đổi cuối cùng (tức là cùng một văn bản) đáp ứng tất cả các tiêu chí cần thiết cho một ETag. Nó đơn giản cần phải là một giá trị duy nhất thể hiện trạng thái của một tài nguyên. Không phải là duy nhất trên toàn bộ miền tài nguyên, chỉ đơn giản là trong tài nguyên.
Hiện tại, về mặt kỹ thuật, một ETag có độ phân giải "vô hạn" so với tiêu đề Sửa đổi lần cuối. Những thay đổi chỉ được sửa đổi lần cuối ở độ chi tiết 1 giây, trong khi một ETag có thể là phụ thứ hai.
Bạn có thể triển khai cả ETag và Last-Modified, hoặc đơn giản là một hoặc khác (hoặc không, tất nhiên). Nếu bạn sửa đổi lần cuối không đủ, hãy xem xét một ETag.
Tâm trí, tôi sẽ không đặt ETag cho tài nguyên "mọi". Về cơ bản, tôi sẽ không đặt nó cho bất cứ điều gì mà không có mong đợi được lưu trữ (nội dung động đáng chú ý). Không có vấn đề gì trong trường hợp đó, chỉ là công việc lãng phí.
Chỉnh sửa: Tôi thấy chỉnh sửa của bạn và làm rõ.
MD5 là tốt. Nhược điểm duy nhất là tính toán MD5 mọi lúc. Chạy MD5, ví dụ, một tệp PDF 200K, đắt tiền. Chạy MD5 trên tài nguyên không mong đợi được lưu vào bộ nhớ cache đơn giản là lãng phí (tức là nội dung động).
Bí quyết đơn giản là bất kỳ cơ chế nào bạn sử dụng, nó phải rẻ như thường được sửa đổi lần cuối. Lần sửa đổi lần cuối, một lần nữa, thường là tài sản của tài nguyên và thường rất rẻ để truy cập.
Thẻ ghi đè phải có giá rẻ tương tự. Nếu bạn đang sử dụng MD5 và bạn có thể lưu trữ/lưu trữ liên kết giữa tài nguyên và mã băm MD5, thì đó là giải pháp tốt. Tuy nhiên, tính toán lại MD5 mỗi khi ETAG là cần thiết, về cơ bản là phản đối ý tưởng sử dụng ETags để cải thiện hiệu suất tổng thể của máy chủ.
Không bao giờ an toàn để giả định rằng tác giả sẽ vượt qua bạn một chút. – spender
@spender: Đồng ý, nhưng thậm chí còn ít an toàn hơn để giả sử bạn vượt qua tác giả. – Oddthinking
và chúng tôi thậm chí sẽ không chạm vào biểu tượng của các nhà bình luận trên web, cách này hay cách khác ;-) –