Cập nhật nội dung AMP

Sử dụng yêu cầu update-cache để cập nhật và xóa nội dung khỏi Bộ nhớ đệm AMP của Google. Hiện tại, update-cache chỉ đảm bảo rằng nội dung được cập nhật trong độ tuổi tối đa, nghĩa là thời gian tối đa mà một tài nguyên sẽ được coi là mới.

Yêu cầu update-cache yêu cầu chủ sở hữu miền phải ký các yêu cầu bằng khoá RSA và phân phát khoá công khai trùng khớp từ một URL tiêu chuẩn trên miền gốc.

Bạn có thể xoá mọi phiên bản hiện đang được lưu vào bộ nhớ đệm của một tài liệu bằng cách gửi một yêu cầu đã ký đến Bộ nhớ đệm AMP. Yêu cầu update-cache được gọi tại địa chỉ này:

https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=<ts_val>&amp_url_signature=<sig_val>

Các tham số

Yêu cầu update-cache yêu cầu các thông số và giá trị sau:

Các tham số
example-comexample.com

Bắt buộc

Tên miền được chỉ định theo các định dạng dùng trong định dạng URL của bộ nhớ đệm AMP.
<cache.updateCacheApiDomainSuffix>

Bắt buộc

Tên miền của Bộ nhớ đệm AMP. Hãy xem phần Gọi cho yêu cầu update-cache để biết thêm thông tin.
amp_ts=<ts_val>

Bắt buộc

Tham số này thể hiện dấu thời gian UNIX-epoch, được dùng để ngăn chặn các cuộc tấn công phát lại. Giá trị này phải là thời gian hiện tại tính bằng giây. Giá trị này phải trong khoảng 1 phút trước hoặc sau thời gian hiện tại.
amp_url_signature=<sig_val>

Bắt buộc

Thông số này đại diện cho chữ ký RSA của toàn bộ đường dẫn yêu cầu (xem phần Tạo khoá RSA), bao gồm amp_actionamp_ts, nhưng không bao gồm chính chữ ký.

Nguyên tắc

Bạn phải tuân thủ các nguyên tắc của update-cache:

  • Tên máy chủ của Bộ nhớ đệm AMP (Sandbox.ampproject.org) bị loại trừ khỏi chữ ký để cho phép bạn gửi cùng một yêu cầu đã ký cho nhiều toán tử Bộ nhớ đệm AMP.
  • Để xác minh chữ ký, bạn phải phân phát khoá RSA công khai tại một vị trí cố định trên miền của tài liệu AMP (để tạo khoá, hãy xem phần Tạo khoá RSA). Ví dụ:
    https://example.com/.well-known/amphtml/apikey.pub
  • Khoá công khai không được có tệp robots.txt.
  • URL phải là HTTPS.
  • Miền này phải là miền chính xác mà bạn muốn cập nhật, không phải là miền con hay miền cấp cao.
  • Bạn phải xuất bản khóa ở định dạng PEM và phân phát khóa với loại nội dung "text/plain"
  • Bộ nhớ đệm AMP luôn tìm nạp khoá công khai từ cùng một miền của yêu cầu, bất kể miền mà tài liệu chỉ định thông qua bất kỳ thẻ rel=canonical nào. Nếu miền gốc phân phát lệnh chuyển hướng HTTP tại vị trí cần xóa, thì chỉ đường dẫn đã yêu cầu mới bị xóa khỏi bộ nhớ đệm, chứ không phải mục tiêu của lệnh chuyển hướng.

Cập nhật hoặc xoá nội dung

Bạn có thể sử dụng update-cache để cập nhật hoặc xoá vĩnh viễn nội dung khỏi Bộ nhớ đệm AMP của Google sau khi nội dung đã bị xoá khỏi nguồn gốc. Để cập nhật hoặc xoá nội dung, hãy làm theo các bước dưới đây:

  1. Tìm nạp tệp sau:
    https://cdn.ampproject.org/caches.json
  2. Lặp lại các mục trong caches mục nhập trong tệp JSON.
  3. Chọn caches mà bạn muốn hỗ trợ.
  4. Gọi cho yêu cầu update-cache bằng updateCacheApiDomainSuffix trong mỗi mục cache.
  5. Tạo URL bằng cách sử dụng định dạng sau:
    https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=<ts_val>&amp_url_signature=<sig_val>

Tạo khoá RSA

Dự án OpenSSL cung cấp các công cụ dòng lệnh để tạo và quản lý khoá RSA không đối xứng. Bạn cũng có thể tạo các khoá RSA và quản lý các khoá đó theo phương thức lập trình thông qua thư viện OpenSSL hoặc một API mã hoá tương đương (node-crypto, NSS hoặc WorkManager).

  1. Tạo một cặp khoá RSA ở định dạng PEM văn bản như sau:
    openssl genrsa 2048 > private-key.pem
    openssl rsa -in private-key.pem -pubout >public-key.pem
  2. Đăng khóa công khai trên miền để làm mới tại vị trí sau:
    https://example.com/.well-known/amphtml/apikey.pub

    URL phải là HTTPS. Người dùng ẩn danh phải có thể truy cập công khai khoá này.

  3. Dùng khoá riêng tư để ký yêu cầu update-cache. Ví dụ:
    echo -n > url.txt "/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=$(date +%s)" && cat url.txt | openssl dgst -sha256 -sign private-key.pem > signature.bin

    Đầu ra cho Chữ ký.bin là chữ ký RSA nhị phân.

  4. Sử dụng khóa công khai để xác minh chữ ký:
    openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt
  5. Mã hoá chữ ký RSA nhị phân bằng cách sử dụng biến thể an toàn trên web của base64:
    cat signature.bin | base64 -w0 | tr '/+' '_-' | tr -d '=' > base64.txt
  6. Thêm chữ ký RSA được mã hoá base64 vào URL bằng cách sử dụng tham số truy vấn amp_url_signature.
    echo "$(cat url.txt)&amp_url_signature=$(cat base64.txt)"

Cập nhật khoá RSA

Nếu muốn cập nhật khoá RSA, bạn có thể truy cập khoá RSA thông qua liên kết với Bộ nhớ đệm AMP và Google có thể thu thập dữ liệu khoá RSA mới của bạn trong vòng vài giờ. Sau đây là đường liên kết đến bộ nhớ đệm AMP:

https://example-com.<cache.updateCacheApiDomainSuffix>/r/s/example.com/.well-known/amphtml/apikey.pub