วิธีการปรับเปลี่ยนส่วนหัว HTTP แคควบคุมเมื่อคุณใช้ IIS


สรุป


ผู้ดูแลเว็บผู้ใช้ Internet Information Services (IIS) อาจต้องเป็นระยะ ๆ เพื่อปิดใช้งานแคชของเนื้อหาที่เปลี่ยนแปลงบ่อยครั้ง บทความนี้อธิบายวิธีการตั้งค่าของส่วนหัว HTTPแคควบคุมโดย Active Server Page (ASP), ตลอดจนคุณสมบัติ metabase CacheControlCustom

ข้อมูลเพิ่มเติม


เมื่อคุณทำงานกับเนื้อหาที่มักจะเปลี่ยนแปลง คุณอาจต้องการระบุว่า เนื้อหาใดที่ถูกแคชและไม่สามารถ และ ถ้าไคลเอนต์หรือพร็อกซีเซิร์ฟเวอร์ควรแคเนื้อหาได้ คุณสามารถระบุตัวเลือกเหล่านี้ใน IIS ผ่านCacheControlCustomคุณสมบัติ ซึ่งสามารถตั้งค่าสำหรับเซิร์ฟเวอร์ทั้งหมด เว็บไซต์เฉพาะ หรือเรกทอรีจริง หรือเสมือนเฉพาะเจาะจง การตั้งค่าคุณสมบัตินี้ส่งกลับส่วนหัว HTTP ที่คล้ายกับต่อไปนี้:
HTTP/1.1 200 OKServer: Microsoft-IIS/5.0Cache-Control: <CACHE SETTING>Content-Type: <type>/<subtype>Content-Length: <size of content>
ตั้งค่าแคชจะขึ้นอยู่กับข้อมูลจำเพาะ HTTP/1.1

ค่าหัวข้อการควบคุมแคใช้กันทั่วไป HTTP/1.1

ข้อมูลจำเพาะ HTTP/1.1 ใน RFC 2616 กำหนดค่าหลายค่าสำหรับหัวข้อการควบคุมแคช รายการต่อไปนี้ประกอบด้วยสองสามค่าทั่วไปที่จะใช้
  • สาธารณะ: ตอบสนองของ HTTP อาจถูกแค โดยแคใด ๆ ได้ ตัวอย่างเช่น ไคลเอนต์หรือพร็อกซีเซิร์ฟเวอร์สามารถแคตอบสนอง อนุญาตให้ใช้ร่วมกันของเนื้อหาข้ามผู้ใช้พร็อกซีเซิร์ฟเวอร์เดียวกัน
  • ส่วนตัว: ข้อความตอบสนองมีไว้สำหรับไคลเอนต์เดียว และต้องไม่ได้ถูกแค โดยแคที่ใช้ร่วมกัน ตัวอย่างเช่น พร็อกซีเซิร์ฟเวอร์ควรแคตอบสนองแม้ว่าไคลเอนต์สามารถ ซึ่งช่วยให้ไคลเอ็นต์เพื่อรักษาเวอร์ชันแคชไว้ ในขณะที่ไคลเอนต์อื่น ๆ ที่กำลังใช้พร็อกซีเซิร์ฟเวอร์เดียวกันรักษาเวอร์ชันต่าง ๆ ที่แคช
  • ไม่มีแค: ไม่มีแคชในเส้นทางทั้งหมดควรรักษาสำเนาที่แคชไว้ของการตอบสนอง นี้ช่วยให้คุณสามารถระบุว่า ทั้งไคลเอนต์หรือพร็อกซีเซิร์ฟเวอร์จะตอบสนองต่อการร้องขอเนื้อหาที่ตามมา โดยการใช้เวอร์ชันแคช

การตั้งค่าคุณสมบัติของตัวควบคุมแคช

ตัวอย่างต่อไปนี้กำหนดวิธีที่แตกต่างกันสำหรับการตั้งค่านี้:

สำหรับเพจ

ใช้ Active Server Page (ASP), รหัส ASP ต่อไปนี้ปิดใช้งานแคชของบางเพจ:
<% @Language="VBScript" %><% Response.CacheControl = "no-cache" %>
หมายเหตุ: รหัสนี้ต้องถูกแทรกที่จุดเริ่มต้นของหน้า เว้นแต่มีการกำหนดบัฟเฟอร์จะเปิดใช้งาน เนื่องจากได้มีการปรับเปลี่ยนส่วนหัว HTTP

สำหรับโฟลเดอร์

ตัวอย่างต่อไปนี้ตั้งค่าแคควบคุมการตั้งค่าของโฟลเดอร์หรือไดเรกทอรีเสมือนที่มีชื่อว่า "รูปภาพ" ในเว็บไซต์เริ่มต้น:
  • ใช้ Adsutil.vbs:
    1. เปิดพร้อมท์คำสั่ง และเปลี่ยนไปยังโฟลเดอร์ C:\InetPub\AdminScripts ของคุณ
    2. เรียกใช้คำสั่งต่อไปนี้:
      ADSUTIL CSCRIPT จะ การตั้งค่า VBS W3SVC/1/ราก/รูป/CacheControlCustom "ไม่มีแคช"
  • ใช้ ADSI สคริปต์:
    1. ใน Notepad ป้อนรหัส ADSI ดังต่อไปนี้:
      Option ExplicitDim objCacheSet objCache = GetObject("IIS://localhost/w3svc/1/root/images")objCache.CacheControlCustom = "no-cache"objCache.SetInfo
    2. บันทึกแฟ้มเป็น Disablefolder.vbs ในโฟลเดอร์ C:\InetPub\AdminScripts ของคุณ และจากนั้น ปิดแผ่นจดบันทึก
    3. ที่พรอมต์คำสั่ง เปลี่ยนแปลงไปยังโฟลเดอร์ C:\InetPub\AdminScripts ของคุณ
    4. เรียกใช้คำสั่งต่อไปนี้:
      DISABLEFOLDER CSCRIPT จะ VBS

การอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้ โปรดดูบทความฐานความรู้ของ Microsoft ต่อไปนี้:
247389 IIS: วิธีการปิดใช้งานการแคชของชนิด MIME ที่ระบุ
นอกจากนี้ ดูส่วน 14.9 ของข้อมูลจำเพาะ HTTP/1.1 ใน RFC 2616 ที่ URL ต่อไปนี้:
RFC 2616 ข้อความหลายมิติถ่ายโอนโพรโทคอล - HTTP/1.1