Jump to content

API:Caching data

From mediawiki.org
This page is a translated version of the page API:Caching data and the translation is 94% complete.

Controlling caching จาก client

โปรโตคอล HTTP ช่วยให้สามารถควบคุมวิธีที่เบราว์เซอร์และเนื้อหาเว็บพร็อกซีแคชผ่านทางค่าต่างๆที่กำหนดไว้ในส่วนหัว Cache-Control (ใช้งานได้เฉพาะสำหรับคำขอ GET) API ช่วยให้ลูกค้าสามารถกำหนดค่าเหล่านี้ ได้แก่ max-age และ s-maxage, ผ่าน API parameters maxage และ smaxage

maxage บอกเบราว์เซอร์ว่าคำตอบควรถูกแคชไว้นานเท่าใด (เป็นวินาที) smaxage ทำเช่นเดียวกันสำหรับผู้รับมอบฉันทะที่ใช้ร่วมกัน ในทางปฏิบัติมักใช้เพื่อสั่งให้พร็อกซีย้อนกลับฝั่งเซิร์ฟเวอร์ (เช่น Wikimedia's Varnish )

ข้อผิดพลาดจะไม่แคช การตอบกลับที่เฉพาะเจาะจงของผู้ใช้จะถูกทำเครื่องหมายเป็น Cache-Control: private ดังนั้นเบราว์เซอร์จะแคช แต่พร็อกซีสาธารณะจะไม่ ปัจจุบัน API ใช้การตั้งค่าภาษาของผู้ใช้ที่เข้าสู่ระบบโดยค่าเริ่มต้นดังนั้นการตอบสนองต่อผู้ใช้ที่เข้าสู่ระบบอยู่เสมอ ซึ่งสามารถหลีกเลี่ยงโดยการเพิ่ม uselang=content พารามิเตอร์ API (T97096).

การเพิ่มอัตราส่วนการเข้าถึงแคช

คำขอจะได้รับจากแคชเท่านั้นหาก URL ที่เก็บถูกแคชไว้ (เช่น. ถ้าคุณทำคำขอเดียวกันด้วย maxage=1800 แล้วใช้ maxage=3600 ส่วนที่สองจะไม่สามารถใช้รายการแคชแรกเนื่องจากพารามิเตอร์ maxage ต่างกันทำให้ URL ต่างกัน) หากคุณส่งรายชื่อหน้าเป็นพารามิเตอร์คุณอาจเพิ่มอัตราส่วนการเข้าถึงแคชโดยการเรียงลำดับและการคัดลอกข้อมูลเหล่านั้น

การควบคุมแคชจากโมดูล API

วิธีการแคชถูกระบุโดย ApiMain::setCache* Typically caching is only going to be a concern in the query submodules, which should use getCacheMode method instead, which they inherit from ApiQueryBase.