สารภาพ : เว็บไซต์ที่ฉันรักษามีกฎระเบียบที่แตกต่างกันสำหรับการควบคุมแคชขึ้นอยู่กับการกำหนดค่าเริ่มต้นของเซิร์ฟเวอร์ตามมาด้วยคำแนะนำจากPage Speed & Y-ช้า Firefox ปลั๊กอินและมุมมองเครือข่ายทรัพยากรใน Google ของความเร็ว Tracer Cache-Control ถูกตั้งค่าเป็นส่วนตัว / สาธารณะขึ้นอยู่กับสิ่งที่พวกเขาพูดส่วนหัวของ ETag / / Last-Modified จะถูกแก้ไขเมื่อ Y-Slow แนะนำว่ามีบางอย่างผิดปกติและดูเหมือนว่า Vary-Accept-Encoding จำเป็นเมื่อทำการ gziping ด้วยตนเองสำหรับ Amazon CloudFront
เมื่ออ่านเนื้อหาเกี่ยวกับตัวเลือกต่าง ๆ และสิ่งที่พวกเขาทำมีข้อมูลที่ขัดแย้งกันกฎสำหรับพร็อกซีที่เสียหายและการกำหนดค่าลัทธิสินค้า ข้อมูลอย่างเป็นทางการใด ๆ ที่ให้ไว้โดยเครื่องมือวิเคราะห์ที่กล่าวถึงข้างต้นนั้นไม่สามารถเข้าถึงได้เนื่องจากเกี่ยวข้องกับแต่ละหัวข้อแทนที่จะเป็นกลยุทธ์แบบครบวงจร (ดังนั้นจึงไม่มีการอ้างอิงข้ามเทคนิค)
ตัวอย่างเช่นดูเหมือนว่าไม่มีเหตุผลที่เครื่องมือการวิเคราะห์ความเร็วจัดอันดับไซต์ที่มี ETag เหมือนกับไซต์ที่ไม่มีไซต์หากพวกเขาตั้งใจจะช่วยแคช
อะไรคือกฎที่ยากและรวดเร็วสำหรับกลยุทธ์ Cache Control ที่ไม่เชื่อเรื่องพระเจ้า?
แก้ไข:
การเชื่อมโยงผ่านบทความเจฟฟ์แอดอธิบายแคชในเชิงลึกที่ยอดเยี่ยม
สำหรับบันทึกแม้ว่าที่นี่เป็นกฎที่ยากและรวดเร็ว:
หากไฟล์นั้นถูกบีบอัดโดยใช้ GZIP ฯลฯ ให้ใช้ "cache-control: private" เนื่องจากพร็อกซีอาจส่งคืนเวอร์ชันที่บีบอัดไปยังไคลเอนต์ที่ไม่รองรับ (แคชของเบราว์เซอร์จะเก็บไฟล์ที่ทำเครื่องหมายด้วยวิธีนี้) นอกจากนี้อย่าลืมใส่ "Vary: Accept-Encoding" เพื่อบอกว่าสามารถบีบอัดได้
ใช้ Last-Modified ร่วมกับ ETag - การใช้เข็มขัดและวงเล็บปีกกาให้ตัวตรวจสอบความถูกต้องทั้งสองขณะที่ ETag ใช้เนื้อหาไฟล์แทนเวลาแก้ไขเพียงอย่างเดียวโดยใช้ทั้งสองครอบคลุมฐานทั้งหมด หมายเหตุ: PageTest ของ AOLมีวิธีการตามสั่งกับ ETags ด้วยเหตุผลบางประการ หากคุณใช้ Apache บนเซิร์ฟเวอร์มากกว่าหนึ่งเครื่องเพื่อโฮสต์เนื้อหาเดียวกันให้ลบ inode ที่ประกาศโดยปริยายจาก ETags โดยแยกออกจากคำสั่ง FileETag (เช่น "FileETag MTime Size") เว้นแต่ว่าคุณใช้ระบบไฟล์สดแบบเดียวกัน
ใช้ "การควบคุมแคช: สาธารณะ" ทุกที่ที่คุณทำได้ - นี่หมายความว่าพร็อกซีเซิร์ฟเวอร์ (และแคชเบราว์เซอร์) จะส่งคืนเนื้อหาของคุณแม้ว่าส่วนที่เหลือของหน้านั้นต้องการการรับรองความถูกต้อง HTTP เป็นต้น