ETags เป็นทางเลือกในการ (แต่สามารถใช้ร่วมกับ) "Last-Modified-Time" เพื่อตรวจสอบความถูกต้องของแคช
ลูกค้าสามารถส่งเงื่อนไขล่วงหน้าเช่น if-match หรือ if-none-match ตาม ETag สิ่งนี้ไม่ได้มีไว้สำหรับคำขอ GET เท่านั้น (ซึ่งเป็นสิ่งที่ webpagetest.org ทำ) คุณสามารถใช้ "การปรับปรุงแบบฉวยโอกาส" เพื่อให้คำขอ PUT มีเงื่อนไขล่วงหน้าและจะไม่ทำการดำเนินการอัปเดตหากทรัพยากรได้รับการอัปเดตตั้งแต่ ETag เดิม ที่ได้มาครั้งสุดท้าย
กล่าวง่ายๆ: คุณกดแก้ไขบนหน้าใน CMS ของคุณเพื่อนของคุณจะแก้ไขบนหน้าใน CMS ของคุณเพื่อนของคุณทำการแก้ไขและกดบันทึกและในที่สุดคุณก็กดบันทึก - โดยไม่ต้องใช้ ETag หรือ Content-MD5 HTTP header ที่คุณต้องการ เพื่อสร้างวงล้อใหม่เพื่อป้องกันปัญหาที่จะเกิดขึ้น (เช่นคุณเช็ดเพื่อน ๆ ของคุณเปลี่ยนแปลง) การแก้ปัญหาเป็นส่วนหนึ่งของโพรโทคอล HTTP แล้วดังนั้นจึงเหมาะสมที่จะใช้งาน
โดยทั่วไปฉันเห็นด้วยกับ AOL (ที่เรียกใช้ webpagetest.org) ในคำแนะนำ "หนึ่งขนาดเหมาะกับทุกคน" ของพวกเขา - มันจะดีกว่าที่จะไม่อุดตันส่วนหัว HTTP ที่มีสตริงที่เข้ารหัสลับ (ETags โดยทั่วไปจะไม่สวยหรือมนุษย์อ่านได้) ซึ่ง Last-Modified-Time สามารถตรวจพบ) จะทำเพื่องานในมือ
หากหน้ากำลังได้รับการอัปเดตหลายครั้งต่อวินาทีและคุณต้องการรุ่นที่ถูกต้องที่สุดที่จะแสดงคุณอาจต้องการทดสอบกับโซลูชันอื่นที่ไม่ใช่ HTTP GETs หรือเพียงแค่ใช้ ETags
ระวังว่า ETags ของคุณจะไม่รวมต่อระบบไฟล์, ต่อการเปลี่ยนแปลงการกำหนดค่าเซิร์ฟเวอร์, ข้อมูลอื่น ๆ (เช่น inodes ซึ่งเป็นค่าเริ่มต้นบน Apache) มิฉะนั้นคุณจะมีปัญหาเมื่อมีเซิร์ฟเวอร์สองเครื่อง (ETags จากแต่ละเซิร์ฟเวอร์จะไม่ตรงกัน)