ภาพรวม

เซิร์ฟเวอร์แคช AMP ของ Google จะเก็บสําเนาที่แคชของเนื้อหา AMP ที่ถูกต้องซึ่งเผยแพร่ไปยังเว็บ แสดงเนื้อหาจากเซิร์ฟเวอร์แคช AMP ของ Google โดยตรง เพื่อมอบประสบการณ์การใช้งานที่รวดเร็วให้แก่ผู้ใช้

หากต้องการใช้ประโยชน์จากเซิร์ฟเวอร์แคช AMP ของ Google คุณต้องเข้าถึง URL ของ AMP ได้โดยตรงจากแคชโดยใช้รูปแบบ URL แคชของ AMP ทุกครั้งที่ผู้ใช้เข้าถึงเนื้อหา AMP จากแคช ระบบจะอัปเดตเนื้อหาโดยอัตโนมัติ และจะแสดงเวอร์ชันที่อัปเดตแล้วต่อผู้ใช้รายถัดไปเมื่อแคชเนื้อหาแล้ว

รูปแบบ URL แคชของ AMP

รูปแบบ URL แคชของ AMP ประกอบด้วยคอมโพเนนต์ต่อไปนี้

คอมโพเนนต์ คำอธิบาย
ชื่อโดเมนย่อย

โดเมนย่อยที่สร้างโดยเซิร์ฟเวอร์แคช AMP ของ Google จะอ่านได้ของมนุษย์เมื่อมีจํานวนอักขระสูงสุดและข้อกําหนดทางเทคนิคที่อนุญาต และคล้ายกับโดเมนของผู้เผยแพร่โฆษณาเอง เมื่อเป็นไปได้ เซิร์ฟเวอร์แคช AMP ของ Google จะสร้างโดเมนย่อยแต่ละรายการโดยดําเนินการดังนี้

  1. การแปลงโดเมนเอกสาร AMP จาก IDN (Punycode) เป็น UTF-8
  2. แทนที่ทุก "-" (ขีด) ด้วย "--"(ขีด 2 ขีด)
  3. แทนที่ทุก "." (จุด) ด้วย "-" (ขีด)
  4. กําลังแปลงกลับไปเป็น IDN (Punycode)

ตัวอย่างเช่น pub.com จะจับคู่กับ pub-com.cdn.ampproject.org แต่หากมีข้อจํากัดทางเทคนิคทําให้โดเมนย่อยที่มนุษย์อ่านได้ ระบบจะใช้แฮชแบบทางเดียวแทน

ประเภทเนื้อหา ประเภทเนื้อหามีดังนี้ 'c' สําหรับเอกสาร AMP HTML, 'i' สําหรับรูปภาพ หรือ 'r' สําหรับทรัพยากร เช่น แบบอักษร เซิร์ฟเวอร์แคช AMP ของ Google แสดงข้อผิดพลาด 404 สําหรับทรัพยากรที่ไม่ตรงกับประเภทเนื้อหาเหล่านี้ (ดูข้อผิดพลาดหลัก)
ไม่บังคับ 's' หากมี Google จะต้องดึงเนื้อหาจากต้นทางโดยใช้ TLS (HTTPS ที่ปลอดภัย) หากไม่มี 's' ก็จะดึงเนื้อหามาจากต้นทางโดยใช้ HTTP ธรรมดา
URI URI ของเนื้อหาที่จะดึงข้อมูล URI ต้องไม่มีรูปแบบ นั่นคือ "http://" หรือ "https://" ไม่ใช่

การค้นหาชื่อโดเมนย่อย

โดยทั่วไปแล้ว ชื่อโดเมนย่อยสําหรับ URL เซิร์ฟเวอร์แคช AMP ของ Google จะเป็นการแปลง URL ต้นฉบับที่มนุษย์อ่านได้โดยใช้ขั้นตอนที่ระบุไว้ด้านบน อย่างไรก็ตาม เนื่องจากมีสถานการณ์ที่อาจไม่ใช่ข้อเท็จจริง วิธีที่ดีที่สุดในการดึงข้อมูล URL แคชของ Google สําหรับแอปพลิเคชันที่พร้อมใช้งานจริงคือการใช้ URL เซิร์ฟเวอร์แคช AMP ของ Google

ในสถานการณ์ที่ไม่ใช่การใช้งานจริง หากต้องการระบุชื่อโดเมนย่อยที่เซิร์ฟเวอร์แคช AMP ของ Google สร้างขึ้น ให้ลองใช้เครื่องมือแบบอินเทอร์แอกทีฟการใช้เซิร์ฟเวอร์แคช AMP ของ Google ใน amp.dev

ตัวอย่างการขอเอกสารโดยใช้ TLS

คําขอเอกสาร AMP HTML (ระบุด้วยคํานําหน้า /c) ที่ดึงมาจาก https://example.com/amp_document.html:

https://example-com.cdn.ampproject.org/c/s/example.com/amp_document.html

เนื่องจาก /s ติดตามคํานําหน้า /c ระบบจะดึงเอกสารจาก example.com โดยใช้ TLS

ตัวอย่างการขอรูปภาพโดยใช้ HTTP แบบธรรมดา

คําขอรูปภาพ (ระบุด้วยคํานําหน้า /i) ที่ดึงมาจาก http://example.com/logo.png:

https://example-com.cdn.ampproject.org/i/example.com/logo.png

และเนื่องจากไม่มี /s ตามหลังคํานําหน้า /i ทาง Google จะดึงรูปภาพจาก example.com โดยใช้ HTTP ธรรมดาแทน HTTP บน TLS

ตัวอย่างพารามิเตอร์การค้นหา

รูปแบบ URL แคชของ AMP อาจมีพารามิเตอร์ในสตริงการค้นหาได้เช่นกัน ตัวอย่าง HTTPS ที่มีพารามิเตอร์มีดังนี้ https://example-com.cdn.ampproject.org/c/s/example.com/g?value=Hello%20World

การอัปเดตเซิร์ฟเวอร์แคช AMP ของ Google

เมื่อผู้ใช้ขอเอกสาร AMP จากแคช AMP ของ Google แคชจะขอการอัปเดตโดยอัตโนมัติเพื่อให้แสดงเนื้อหาใหม่สําหรับผู้ใช้คนถัดไปได้เมื่อแคชเนื้อหาแล้ว เมื่อใช้โมเดลนี้ การอัปเดตเอกสาร AMP จะเผยแพร่โดยอัตโนมัติอย่างรวดเร็ว ส่วนผู้ใช้จํานวนน้อยจะเห็นเวอร์ชันที่ไม่อัปเดตหลังจากการอัปเดต

แคชจะสอดคล้องกับโมเดล "stale-as-reverify" โดยจะใช้ส่วนหัวการแคชของต้นทาง เช่น Max-Age เป็นคําแนะนําในการตัดสินใจว่าเอกสารหรือทรัพยากรนั้นๆ ไม่มีการอัปเดตหรือไม่ เมื่อผู้ใช้ส่งคําขอที่ไม่มีการอัปเดต คําขอนั้นจะทําให้ระบบมีการคัดลอกรายการใหม่ เพื่อให้ผู้ใช้รายต่อไปได้รับเนื้อหาใหม่ๆ

หากต้องการจํากัดปริมาณโหลดที่สร้างขึ้นสําหรับเว็บไซต์ของผู้เผยแพร่โฆษณา เซิร์ฟเวอร์แคช AMP ของ Google จะพิจารณาเอกสารใหม่เป็นเวลาอย่างน้อย 15 วินาที รวมถึงทรัพยากรใดก็ตามที่มีการอัปเดตอย่างน้อย 1 นาที โปรดทราบว่าตัวเลขเหล่านี้อาจมีการเปลี่ยนแปลงในอนาคต เนื่องจากเราได้ปรับแต่งแคชเพื่อหาสมดุลระหว่างความใหม่กับการโหลดในเว็บไซต์ของผู้เผยแพร่โฆษณา

การเพิ่มประสิทธิภาพแคชและการแก้ไข

เซิร์ฟเวอร์แคช AMP ของ Google จะทําการเพิ่มประสิทธิภาพและแก้ไขต่างๆ เช่น

  • ตรวจสอบความถูกต้องของเนื้อหาในรูปแบบ AMP โดยตรงตามเป้าหมายด้านประสิทธิภาพทั้งหมดของ AMP
  • แคชรูปภาพและแบบอักษรเพิ่มเติมจากเอกสาร AMP
  • จํากัดขนาดรูปภาพสูงสุดเพื่อป้องกันปัญหาหน่วยความจําของเบราว์เซอร์และการตอบสนองไม่ดี
  • การแปลงแบบอื่นๆ เพื่อปรับปรุงประสิทธิภาพในการแสดงรูปภาพผ่านแท็ก amp-img เช่น
    • การนําข้อมูลที่มองไม่เห็นหรือมองเห็นได้ยากออก เช่น ข้อมูลเมตาบางอย่าง
    • การแปลงรูปภาพเป็นรูปแบบเล็กๆ ที่เหมาะกับอุปกรณ์เคลื่อนที่ เช่น การแปลงรูปภาพ GIF, PNG และ JPEG เป็น WebP ในเบราว์เซอร์ที่รองรับ WebP
    • การเปลี่ยนรูปภาพให้มีคุณภาพต่ํากว่าหากคําขอมีส่วนหัว "บันทึกข้อมูล"
    • การสร้างเวอร์ชันขนาดทางเลือกและการเพิ่มแอตทริบิวต์ srcset เพื่อรองรับการนําส่งรูปภาพที่ปรับขนาดตามอุปกรณ์
  • แสดงผลผ่านช่องทางที่ปลอดภัย (HTTPS) และใช้โปรโตคอลเว็บล่าสุด (SPDY, HTTP/2)
  • ทําความสะอาดเอกสาร AMP เพื่อป้องกันการโจมตี XSS ตามแท็ก HTML ความคิดเห็น และอื่นๆ ที่ปิดอย่างไม่ถูกต้อง

ในการเปลี่ยนรูปแบบด้านบน เซิร์ฟเวอร์แคช AMP ของ Google จะไม่สนใจส่วนหัว "Cache-Control: no-Transform"

การทําความสะอาดข้อมูล HTML

เซิร์ฟเวอร์แคช AMP ของ Google จะเขียนเอกสารทั้งหมดใหม่เพื่อทําให้การแยกวิเคราะห์เป็นปกติ ตัวอย่าง

  • ความคิดเห็น HTML ทั้งหมดถูกตัดออก
  • ชื่อแท็กและแอตทริบิวต์เป็นตัวพิมพ์เล็ก
  • ค่าแอตทริบิวต์มีการอ้างอิงและ Escape อย่างสอดคล้องกัน
  • แท็กทั้งหมดปิดอยู่ ยกเว้นองค์ประกอบที่ใช้เป็น HTML5
  • ช่องว่างภายในแท็กถูกตัดออก
  • ข้อความใช้ Escape
  • อักขระที่ถูกเข้ารหัสจะทําให้มีความเรียบง่ายขึ้น โดยใช้อักขระเทียบเท่า UTF-8
  • องค์ประกอบที่มีได้เฉพาะใน body จะย้ายไปยัง body
  • ลิงก์ขาออกจะเป็นค่าสัมบูรณ์เพื่อให้ทํางานต่อไปได้เมื่อเอกสารแสดงจากต้นทางแคช AMP ของ Google แทนที่จะเป็นต้นทางของผู้เผยแพร่โฆษณา

แทรกแท็กดึงข้อมูลล่วงหน้า

เซิร์ฟเวอร์แคช AMP ของ Google เพิ่มแท็กคําแนะนําการดึงข้อมูลล่วงหน้าสําหรับเบราว์เซอร์ต่างๆ เพื่อช่วยในการโหลดทรัพยากรได้เร็วขึ้น เช่น <link href='https://fonts.googleapis.com/css?family=Lato' rel='stylesheet’> เปลี่ยนเป็น

<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
<link href="https://fonts.gstatic.com" rel="dns-prefetch preconnect">