RESTful Web Services - การแคช
การแคชหมายถึงการจัดเก็บการตอบสนองของเซิร์ฟเวอร์ในไคลเอนต์เองดังนั้นไคลเอนต์จึงไม่จำเป็นต้องร้องขอเซิร์ฟเวอร์สำหรับทรัพยากรเดียวกันซ้ำแล้วซ้ำเล่า การตอบกลับของเซิร์ฟเวอร์ควรมีข้อมูลเกี่ยวกับวิธีการแคชเพื่อให้ไคลเอ็นต์แคชการตอบสนองในช่วงเวลาหนึ่งหรือไม่เคยแคชการตอบกลับของเซิร์ฟเวอร์
ต่อไปนี้เป็นส่วนหัวที่สามารถตอบสนองของเซิร์ฟเวอร์เพื่อกำหนดค่าการแคชของไคลเอ็นต์ -
ซีเนียร์ | ส่วนหัวและคำอธิบาย |
---|---|
1 |
Date วันที่และเวลาของทรัพยากรเมื่อสร้างขึ้น |
2 |
Last Modified วันที่และเวลาของทรัพยากรเมื่อแก้ไขล่าสุด |
3 |
Cache-Control ส่วนหัวหลักเพื่อควบคุมการแคช |
4 |
Expires วันหมดอายุและเวลาของการแคช |
5 |
Age ระยะเวลาเป็นวินาทีนับจากเวลาที่ดึงทรัพยากรจากเซิร์ฟเวอร์ |
ส่วนหัวควบคุมแคช
ต่อไปนี้เป็นรายละเอียดของส่วนหัว Cache-Control -
ซีเนียร์ | คำสั่งและคำอธิบาย |
---|---|
1 |
Public ระบุว่ารีซอร์สสามารถแคชได้โดยคอมโพเนนต์ใด ๆ |
2 |
Private ระบุว่ารีซอร์สสามารถแคชได้โดยไคลเอนต์และเซิร์ฟเวอร์เท่านั้นไม่มีตัวกลางใดที่สามารถแคชทรัพยากรได้ |
3 |
no-cache/no-store ระบุว่ารีซอร์สไม่สามารถแคชได้ |
4 |
max-age ระบุว่าการแคชสามารถใช้ได้ถึงอายุสูงสุดเป็นวินาที หลังจากนี้ลูกค้าจะต้องทำการร้องขออีกครั้ง |
5 |
must-revalidate บ่งชี้ไปยังเซิร์ฟเวอร์เพื่อตรวจสอบทรัพยากรอีกครั้งหากอายุสูงสุดผ่านไปแล้ว |
ปฏิบัติที่ดีที่สุด
เก็บเนื้อหาแบบคงที่ไว้เสมอเช่นรูปภาพ CSS JavaScript ที่แคชได้โดยมีวันหมดอายุ 2 ถึง 3 วัน
อย่าให้วันหมดอายุสูงเกินไป
เนื้อหาแบบไดนามิกควรถูกแคชเพียงไม่กี่ชั่วโมงเท่านั้น