HTTP - การแคช
โดยทั่วไปแล้ว HTTP จะใช้สำหรับระบบข้อมูลแบบกระจายซึ่งสามารถปรับปรุงประสิทธิภาพได้โดยใช้แคชตอบกลับ โปรโตคอล HTTP / 1.1 ประกอบด้วยองค์ประกอบจำนวนหนึ่งที่มีไว้เพื่อให้การแคชทำงานได้
เป้าหมายของการแคชใน HTTP / 1.1 คือการขจัดความจำเป็นในการส่งคำขอในหลาย ๆ กรณีและเพื่อขจัดความจำเป็นในการส่งคำตอบแบบเต็มในกรณีอื่น ๆ อีกมากมาย
กลไกแคชพื้นฐานใน HTTP / 1.1 เป็นคำสั่งโดยปริยายสำหรับแคชที่เซิร์ฟเวอร์ระบุเวลาหมดอายุและตัวตรวจสอบความถูกต้อง เราใช้ไฟล์Cache-Control ส่วนหัวสำหรับวัตถุประสงค์นี้
Cache-Controlส่วนหัวช่วยให้ไคลเอนต์หรือเซิร์ฟเวอร์ส่งคำสั่งที่หลากหลายในคำขอหรือการตอบกลับ โดยทั่วไปคำสั่งเหล่านี้จะแทนที่อัลกอริทึมการแคชเริ่มต้น คำสั่งการแคชถูกระบุไว้ในรายการที่คั่นด้วยเครื่องหมายจุลภาค ตัวอย่างเช่น:
Cache-control: no-cache
ไคลเอนต์สามารถใช้คำสั่งการร้องขอแคชต่อไปนี้ในคำขอ HTTP:
SN | คำสั่งและคำอธิบายคำขอแคช |
---|---|
1 | no-cache แคชต้องไม่ใช้การตอบสนองเพื่อตอบสนองการร้องขอที่ตามมาหากไม่มีการตรวจสอบซ้ำกับเซิร์ฟเวอร์ต้นทาง |
2 | no-store แคชไม่ควรเก็บข้อมูลใด ๆ เกี่ยวกับคำขอของไคลเอ็นต์หรือการตอบสนองของเซิร์ฟเวอร์ |
3 | max-age = seconds บ่งชี้ว่าไคลเอนต์ยินดีที่จะยอมรับการตอบกลับที่อายุไม่เกินเวลาที่ระบุเป็นวินาที |
4 | max-stale [ = seconds ] บ่งชี้ว่าไคลเอ็นต์ยินดีที่จะยอมรับการตอบกลับที่เกินเวลาหมดอายุ ถ้าให้เป็นวินาทีจะต้องไม่หมดอายุเกินเวลานั้น |
5 | min-fresh = seconds บ่งชี้ว่าไคลเอนต์ยินดีที่จะยอมรับคำตอบที่มีอายุการใช้งานใหม่ไม่น้อยกว่าอายุปัจจุบันบวกกับเวลาที่ระบุเป็นวินาที |
6 | no-transform ไม่แปลงเอนทิตี - ร่างกาย |
7 | only-if-cached ไม่ดึงข้อมูลใหม่ แคชสามารถส่งเอกสารได้ก็ต่อเมื่ออยู่ในแคชและไม่ควรติดต่อเซิร์ฟเวอร์ต้นทางเพื่อดูว่ามีสำเนาที่ใหม่กว่าหรือไม่ |
เซิร์ฟเวอร์สามารถใช้คำสั่งการตอบกลับแคชต่อไปนี้ในการตอบสนอง HTTP:
SN | คำสั่งและคำอธิบายการตอบสนองแคช |
---|---|
1 | public ระบุว่าการตอบกลับอาจถูกแคชโดยแคชใด ๆ |
2 | private ระบุว่าข้อความตอบกลับทั้งหมดหรือบางส่วนมีไว้สำหรับผู้ใช้คนเดียวและต้องไม่ถูกแคชโดยแคชที่แบ่งใช้ |
3 | no-cache แคชต้องไม่ใช้การตอบสนองเพื่อตอบสนองการร้องขอที่ตามมาหากไม่มีการตรวจสอบซ้ำกับเซิร์ฟเวอร์ต้นทาง |
4 | no-store แคชไม่ควรเก็บข้อมูลใด ๆ เกี่ยวกับคำขอของไคลเอ็นต์หรือการตอบสนองของเซิร์ฟเวอร์ |
5 | no-transform ไม่แปลงเอนทิตี - ร่างกาย |
6 | must-revalidate แคชต้องตรวจสอบสถานะของเอกสารเก่าก่อนใช้งานและไม่ควรใช้เอกสารที่หมดอายุ |
7 | proxy-revalidate คำสั่ง proxy-revalidate มีความหมายเหมือนกับคำสั่ง must- revalidate ยกเว้นว่าจะไม่ใช้กับแคชตัวแทนผู้ใช้ที่ไม่แบ่งใช้ |
8 | max-age = seconds บ่งชี้ว่าไคลเอนต์ยินดีที่จะยอมรับการตอบกลับที่อายุไม่เกินเวลาที่ระบุเป็นวินาที |
9 | s-maxage = seconds อายุสูงสุดที่ระบุโดยคำสั่งนี้จะแทนที่อายุสูงสุดที่ระบุโดยคำสั่งอายุสูงสุดหรือส่วนหัวหมดอายุ คำสั่ง s-maxage จะถูกละเว้นโดยแคชส่วนตัวเสมอ |