Tổng quan

Bộ nhớ đệm AMP của Google phân phát các bản sao nội dung AMP hợp lệ được lưu vào bộ nhớ đệm đã xuất bản lên web. Phân phát nội dung trực tiếp từ Bộ nhớ đệm AMP của Google để cung cấp trải nghiệm nhanh cho người dùng.

Để tận dụng Bộ nhớ đệm AMP của Google, bạn phải truy cập trực tiếp một URL AMP từ bộ nhớ đệm bằng cách sử dụng định dạng URL của Bộ nhớ đệm AMP. Mỗi khi người dùng truy cập vào nội dung AMP từ bộ nhớ đệm, nội dung sẽ được tự động cập nhật và phiên bản cập nhật sẽ được phân phát cho người dùng tiếp theo sau khi nội dung được lưu vào bộ nhớ đệm.

Định dạng URL của bộ nhớ đệm AMP

Định dạng URL của bộ nhớ đệm AMP bao gồm các thành phần sau:

Thành phần Mô tả
Tên miền con

Những miền con do Bộ nhớ đệm AMP của Google tạo ra sẽ có thể đọc được khi giới hạn ký tự và thông số kỹ thuật cho phép, đồng thời giống với miền riêng của nhà xuất bản. Khi có thể, Bộ nhớ đệm AMP của Google sẽ tạo từng miền con theo:

  1. Chuyển đổi miền của tài liệu AMP từ IDN (Punycode) thành UTF-8.
  2. Thay thế mọi "-" (dấu gạch ngang) bằng "--"(2 dấu gạch ngang).
  3. Thay thế mọi "." (dấu chấm) bằng "-" (dấu gạch ngang).
  4. Đang chuyển đổi lại về IDN (Punycode).

Ví dụ: pub.com sẽ liên kết tới pub-com.cdn.ampproject.org. Trong trường hợp các giới hạn kỹ thuật ngăn miền con không thể đọc được, chúng tôi sẽ sử dụng hàm băm một chiều.

Loại nội dung Loại nội dung là một trong những loại sau: ' c ' đối với tài liệu HTML AMP, # 39; i ' đối với hình ảnh hoặc ' r ' đối với tài nguyên như phông chữ. Bộ nhớ đệm AMP của Google trả về lỗi 404 đối với các tài nguyên không khớp với các loại nội dung này (xem lỗi cốt lõi).
\39;s\39; Nếu có, hãy yêu cầu Google tìm nạp nội dung gốc bằng TLS (HTTPS bảo mật). Nếu không có #, thì nội dung sẽ được tìm nạp từ nguồn gốc bằng HTTP thuần túy.
URI URI của nội dung cần tìm nạp. URI không được chứa lược đồ; nghĩa là không có `http://` hoặc `https://`.

Tìm tên miền con

Thông thường, tên miền con của URL bộ nhớ đệm AMP của Google sẽ là một lượt chuyển đổi mà người dùng có thể đọc được của URL gốc bằng cách làm theo các bước nêu trên. Tuy nhiên, vì có những trường hợp mà điều này có thể không đúng, nên cách tốt nhất để truy xuất URL Bộ nhớ đệm AMP của Google cho các ứng dụng sẵn sàng sản xuất là dùng API Bộ nhớ đệm AMP của Google.

Đối với các tình huống không cần tạo, để xác định tên miền con mà Bộ nhớ đệm AMP của Google tạo ra, hãy dùng thử công cụ tương tác Sử dụng Bộ nhớ đệm AMP của Google trên amp.dev.

Ví dụ về yêu cầu tài liệu sử dụng TLS

Yêu cầu tài liệu HTML AMP (được chỉ định bằng tiền tố /c) được tìm nạp từ https://example.com/amp_document.html:

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

/s tuân theo tiền tố /c, nên tài liệu sẽ được tìm nạp từ example.com bằng cách sử dụng TLS.

Ví dụ về yêu cầu hình ảnh sử dụng HTTP thuần túy

Yêu cầu hình ảnh (được chỉ định bằng tiền tố /i) được tìm nạp từ http://example.com/logo.png:

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

Vì không có /s theo sau tiền tố /i, nên Google tìm nạp hình ảnh từ example.com bằng HTTP thuần tuý, không phải HTTP qua TLS.

Ví dụ về tham số truy vấn

Định dạng URL của bộ nhớ đệm AMP cũng có thể bao gồm các thông số trong chuỗi truy vấn. Sau đây là ví dụ về HTTPS có tham số: https://example-com.cdn.ampproject.org/c/s/example.com/g?value=Hello%20World

Thông tin cập nhật về Bộ nhớ đệm AMP của Google

Khi người dùng yêu cầu tài liệu AMP từ Bộ nhớ đệm AMP của Google, bộ nhớ đệm sẽ tự động yêu cầu cập nhật để có thể phân phát nội dung mới cho người dùng tiếp theo sau khi nội dung được lưu vào bộ nhớ đệm. Với mô hình này, các bản cập nhật cho tài liệu AMP sẽ tự động được phân phát tự động và nhanh chóng; ít người dùng sẽ thấy phiên bản chưa cập nhật sau khi bạn cập nhật.

Bộ nhớ đệm tuân theo mô hình "stale-while-revalidate". Phương thức này sử dụng các tiêu đề bộ nhớ đệm của nguồn gốc, chẳng hạn như Max-Age, làm gợi ý để quyết định xem một tài liệu hoặc tài nguyên cụ thể có bị lỗi thời hay không. Khi người dùng yêu cầu điều gì đó đã lỗi thời, thì yêu cầu đó sẽ khiến một bản sao mới được tìm nạp để người dùng tiếp theo nhận được nội dung mới.

Để giới hạn mức tải của trang web của nhà xuất bản, Bộ nhớ đệm AMP của Google sẽ xem xét bất kỳ tài liệu nào mới trong ít nhất 15 giây và mọi tài nguyên mới làm mới trong ít nhất 1 phút. Xin lưu ý rằng những con số đó có thể thay đổi trong tương lai, vì chúng tôi điều chỉnh bộ nhớ đệm để cân bằng tối ưu giữa độ mới và tải trên các trang web của nhà xuất bản.

Tối ưu hoá và sửa đổi bộ nhớ đệm

Bộ nhớ đệm AMP của Google thực hiện các thao tác tối ưu hoá và sửa đổi, chẳng hạn như sau:

  • Xác thực nội dung thực sự có định dạng AMP, đáp ứng tất cả các mục tiêu về hiệu suất của AMP.
  • Lưu hình ảnh và phông chữ vào bộ nhớ đệm ngoài các tài liệu AMP.
  • Giới hạn kích thước hình ảnh tối đa để ngăn chặn sự cố về bộ nhớ của trình duyệt và phản hồi kém.
  • Nhiều phép biến đổi để cải thiện hiệu quả phân phối hình ảnh thông qua thẻ amp-img, chẳng hạn như:
    • Xóa dữ liệu mà người dùng không thể nhìn thấy hoặc khó nhìn thấy, chẳng hạn như một số siêu dữ liệu.
    • Chuyển đổi hình ảnh sang định dạng hình ảnh nhỏ hơn và thân thiện với thiết bị di động hơn, chẳng hạn như chuyển đổi hình ảnh GIF, PNG và JPEG sang WebP trong các trình duyệt hỗ trợ WebP.
    • Chuyển đổi hình ảnh sang chất lượng thấp hơn nếu yêu cầu có tiêu đề Lưu dữ liệu.
    • Tạo phiên bản có kích thước thay thế và thêm thuộc tính srcset để hỗ trợ phân phối hình ảnh có kích thước thích ứng.
  • Phân phát qua một kênh bảo mật (HTTPS) và sử dụng các giao thức web mới nhất (SPDY, HTTP/2).
  • Dọn dẹp các tài liệu AMP để ngăn chặn các cuộc tấn công XSS dựa trên thẻ HTML, nhận xét và các thông tin đóng khác.

Khi thực hiện các phép biến đổi trên, Bộ nhớ đệm AMP của Google sẽ bỏ qua tiêu đề “Kiểm soát bộ nhớ đệm: không biến đổi”.

Dọn dẹp HTML

Bộ nhớ đệm AMP của Google sẽ ghi đè mọi tài liệu để phân tích cú pháp một cách bình thường. Ví dụ:

  • Tất cả nhận xét HTML đều bị xóa.
  • Tên và thẻ thuộc tính được viết thường.
  • Các giá trị thuộc tính được trích dẫn và thoát liên tục.
  • Tất cả các thẻ đều đã đóng, ngoại trừ các phần tử khoảng trống HTML5.
  • Khoảng trắng bên trong thẻ bị xóa.
  • Văn bản có ký tự thoát.
  • Các ký tự văn bản được mã hóa được đơn giản hóa bằng cách sử dụng các ký tự tương đương UTF-8.
  • Các phần tử chỉ có thể nằm trong body sẽ được di chuyển vào body.
  • Các đường liên kết ngoài được làm tuyệt đối để chúng tiếp tục hoạt động khi tài liệu được phân phát từ nguồn gốc Bộ nhớ đệm AMP của Google thay vì nguồn gốc của nhà xuất bản.

Chèn thẻ tìm nạp trước

Bộ nhớ đệm AMP của Google bổ sung nhiều thẻ gợi ý tìm nạp trước cho trình duyệt để hỗ trợ việc tải tài nguyên sớm hơn. Ví dụ: <link href='https://fonts.googleapis.com/css?family=Lato' rel='stylesheet’> thay đổi thành:

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