Chúng hơi khác nhau - ETag không có bất kỳ thông tin nào mà khách hàng có thể sử dụng để xác định xem có nên yêu cầu lại tệp đó trong tương lai hay không. Nếu ETag là tất cả những gì nó có, nó sẽ luôn phải đưa ra yêu cầu. Tuy nhiên, khi máy chủ đọc ETag từ yêu cầu máy khách, máy chủ có thể xác định xem có nên gửi tệp (HTTP 200) hay yêu cầu khách hàng chỉ sử dụng bản sao cục bộ của họ (HTTP 304). Một ETag về cơ bản chỉ là một tổng kiểm tra cho một tệp thay đổi về mặt ngữ nghĩa khi nội dung của tệp thay đổi.
Tiêu đề hết hạn được sử dụng bởi máy khách (và proxy / bộ nhớ cache) để xác định xem thậm chí có cần phải thực hiện một yêu cầu đến máy chủ hay không. Bạn càng đến gần ngày hết hạn, máy khách (hoặc proxy) càng có nhiều khả năng sẽ thực hiện yêu cầu HTTP cho tệp đó từ máy chủ.
Vì vậy, thực sự những gì bạn muốn làm là sử dụng các tiêu đề BÓNG - đặt tiêu đề Hết hạn thành giá trị hợp lý dựa trên tần suất thay đổi nội dung. Sau đó định cấu hình ETags được gửi để khi khách hàng gửi yêu cầu đến máy chủ, nó có thể dễ dàng xác định hơn có nên gửi lại tệp hay không.
Một lưu ý cuối cùng về ETag - nếu bạn đang sử dụng thiết lập máy chủ cân bằng tải với nhiều máy chạy Apache, có lẽ bạn sẽ muốn tắt thế hệ ETag. Điều này là do các nút được sử dụng như một phần của thuật toán băm ETag sẽ khác nhau giữa các máy chủ. Bạn có thể định cấu hình Apache để không sử dụng inodes như một phần của phép tính nhưng sau đó bạn muốn đảm bảo dấu thời gian trên các tệp giống hệt nhau, để đảm bảo cùng một ETag được tạo cho tất cả các máy chủ.