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 วัน

  • อย่าให้วันหมดอายุสูงเกินไป

  • เนื้อหาแบบไดนามิกควรถูกแคชเพียงไม่กี่ชั่วโมงเท่านั้น