update-cache
요청을 사용하여 Google AMP Cache에서 콘텐츠를 업데이트하고 삭제합니다.
현재 update-cache
는 콘텐츠가 max-age 내에서 업데이트되도록 합니다. 즉, 리소스가 새로운 것으로 간주되는 최대 시간입니다.
update-cache
요청을 사용하려면 도메인 소유자가 RSA 키로 요청에 서명하고 원본 도메인의 표준 URL에서 일치하는 공개 키를 제공해야 합니다.
AMP Cache에 서명된 요청을 발급하여 현재 캐시된 모든 문서 버전을 플러시할 수 있습니다. update-cache
요청이
https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&_ts=<ts_val>&_url_signature=<sig_val>주소로 호출됩니다.
매개변수
update-cache
요청에는 다음 매개변수와 값이 필요합니다.
매개변수 | |
---|---|
example-com 및 example.com
|
필수 AMP 캐시 URL 형식에 사용된 형식에 따라 지정된 도메인 이름입니다. |
<cache.updateCacheApiDomainSuffix>
|
필수 AMP Cache의 도메인 이름입니다. 자세한 내용은update-cache 요청 호출을 참조하세요.
|
amp_ts=<ts_val>
|
필수 이 매개변수는 UNIX 에포크 타임스탬프를 나타내며 재생 공격을 방지하는 데 사용됩니다. 값은 현재 시간(초) 형식으로, 현재 시간 전 또는 후의 1분 이내여야 합니다. |
amp_url_signature=<sig_val>
|
필수 이 매개변수는amp_action 및 amp_ts 를 비롯하여 전체 요청 경로의 RSA 서명을 나타냅니다 (RSA 키 생성 참고). 서명 자체는 제외됩니다.
|
가이드라인
update-cache
가이드라인을 따라야 합니다.
- 여러 AMP 캐시 연산자에 동일한 서명된 요청을 제출할 수 있도록 AMP 캐시 호스트 이름 (cdn.ampproject.org)이 서명에서 제외됩니다.
- 서명 확인의 경우 AMP 문서의 고정된 위치에 공개 RSA 키를 제공해야 합니다 (키를 생성하려면 RSA 키 생성 참고). 예를 들면 다음과 같습니다.
https://example.com/.well-known/amphtml/apikey.pub
- 공개 키를 로봇하면 안 됩니다.
- URL은 HTTPS여야 합니다.
- 하위 도메인 또는 슈퍼 도메인이 아닌 도메인을 업데이트하려는 정확한 도메인이어야 합니다.
- 키를 PEM 형식으로 게시하고 콘텐츠 유형 "text/plain"으로 키를 제공해야 합니다.
- AMP Cache는 모든 rel=canonical 태그를 통해 문서에 지정된 도메인에 관계없이 항상 요청의 동일한 도메인에서 공개 키를 가져옵니다. 원본 도메인이 플러시될 위치에서 HTTP 리디렉션을 제공하는 경우 요청된 경로만 캐시에서 플러시되고 리디렉션 대상이 삭제되지 않습니다.
콘텐츠 업데이트 또는 삭제
update-cache
를 사용하면 콘텐츠가 원본에서 삭제된 후 Google AMP Cache에서 콘텐츠를 업데이트하거나 영구적으로 삭제할 수 있습니다. 콘텐츠를 업데이트하거나 삭제하려면 다음 단계를 따르세요.
- 다음 파일을 가져옵니다.
https://cdn.ampproject.org/caches.json
- JSON 파일의
caches
항목에 있는 항목을 반복합니다. - 지원하고자 하는
caches
를 선택합니다. - 각
cache
항목의updateCacheApiDomainSuffix
를 사용하여update-cache
요청을 호출합니다. -
https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&_ts=<ts_val>&_url_signature=<sig_val>
형식을 사용하여 URL을 구성합니다.
RSA 키 생성하기
OpenSSL 프로젝트는 비대칭 RSA 키를 생성하고 관리하기 위한 명령줄 도구를 제공합니다. OpenSSL 라이브러리 또는 동등한 암호화 API (노드 암호화, NSS 또는 GnuTLS)를 통해 프로그래매틱 방식으로 RSA 키를 생성할 수도 있습니다.
- 텍스트 PEM 형식으로 다음과 같은 RSA 키 쌍을 생성합니다.
openssl genrsa 2048 > private-key.pem openssl rsa -in private-key.pem -pubout >public-key.pem
- 다음 위치에 새로고침할 도메인의 공개 키를 게시합니다.
https://example.com/.well-known/amphtml/apikey.pub
URL은 HTTPS여야 합니다. 익명 사용자가 키에 공개적으로 액세스할 수 있어야 합니다.
- 비공개 키를 사용하여
update-cache
요청에 서명합니다. 예를 들면 다음과 같습니다.echo -n > url.txt "/update-cache/c/s/example.com/article?amp_action=flush&_ts=$(date +%s)" && cat url.txt | openssl dgst -sha256 -sign private-key.pem > signature.bin
signing.bin의 출력은 바이너리 RSA 서명입니다.
- 공개 키를 사용하여 서명을 확인합니다.
openssl dgst -sha256 -signature signature.bin -verify public-key.pem url.txt
- base64의 웹 안전 변형을 사용하여 바이너리 RSA 서명을 인코딩합니다.
cat signature.bin | base64 -w0 | tr '/+' '_-' | tr -d '=' > base64.txt
amp_url_signature
쿼리 매개변수를 사용하여 base64로 인코딩된 RSA 서명을 URL에 추가합니다.echo "$(cat url.txt)&_url_signature=$(cat base64.txt)"
RSA 키 업데이트
RSA 키를 업데이트하려는 경우 AMP 캐시 링크를 통해 RSA 키에 액세스하면 Google에서 몇 시간 내에 새 RSA 키를 크롤링할 수 있습니다. AMP Cache 링크:
https://example-com.<cache.updateCacheApiDomainSuffix>/r/s/example.com/.well-known/amphtml/apikey.pub