จะเกิดอะไรขึ้นถ้าคุณไม่ตั้งค่าส่วนหัวควบคุมแคช?


14

จะเกิดอะไรขึ้นถ้าคุณไม่ตั้งcache-controlส่วนหัว HTTP ระบุพฤติกรรมเริ่มต้นที่ลูกค้าควรทำตามหรือไม่ขึ้นอยู่กับการตัดสินใจของลูกค้าหรือไม่

ใน Chrome ผมได้เห็นบางส่วนคำขอจาวาสคริปต์ที่ไม่มีส่วนหัวแสดงขึ้นเป็นcache-control 200 (from disk cache)Chrome กำลังปรับปรุงสิ่งนี้หรือไม่

ใน IE 304 (not modified)ฉันได้เห็นมันแสดงเป็น

ฉันจะเข้าใจสิ่งนี้ดีขึ้นได้อย่างไร


1
"ไม่มีส่วนหัวของแคช" หมายถึงไม่มีส่วนหัวควบคุมแคชหรือไม่มีส่วนหัวของแคชจริงหรือ การควบคุมแคชไม่ใช่ส่วนหัวเดียวที่มีผลต่อการแคช เว็บเซิร์ฟเวอร์ส่วนใหญ่จะส่งส่วนหัว Last Modified สำหรับเนื้อหาแบบคงที่เช่นไฟล์ Javascript
Tim Fountain

คำตอบ:


18

หากไม่มีCache-Controlส่วนหัวและไม่มีExpiresส่วนหัว แต่มีLast-Modifiedส่วนหัว (ซึ่งเว็บเซิร์ฟเวอร์ส่วนใหญ่ส่งโดยค่าเริ่มต้นสำหรับสินทรัพย์คงที่) เบราว์เซอร์ส่วนใหญ่จะใช้ความนิยมแบบใหม่เพื่อกำหนดระยะเวลาในการแคชสินทรัพย์นั้น

การคำนวณทั่วไปสำหรับสิ่งนี้ (ซึ่งเป็นสิ่งที่RFC 7234 แนะนำ ) คือ:

(current time - last modified time) / 10

ตัวอย่างเช่นหากเวลาที่ปรับเปลี่ยนครั้งล่าสุดสำหรับรูปภาพระบุว่ามันถูกเปลี่ยนแปลงครั้งล่าสุดเมื่อ 60 วันที่ผ่านมาเบราว์เซอร์อาจตัดสินใจว่าควรใช้เวอร์ชันแคชในท้องถิ่นของรูปภาพนั้นเป็นเวลา 6 วันก่อนที่จะตรวจสอบเวอร์ชันใหม่

โปรดทราบว่าในกรณีส่วนใหญ่หากคุณกดรีเฟรชคุณกำลังบอกให้เบราว์เซอร์ดึงเวอร์ชันใหม่ดังนั้นในสถานการณ์เช่นนี้ตรรกะนี้จะไม่นำมาใช้


2
และถ้าไม่มีLast-Modifiedส่วนหัว?
bertonc96
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.