Escolar Documentos
Profissional Documentos
Cultura Documentos
A depuração do comportamento das regras da CDN é feita através dos DEBUG HEADERS, que são headers
adicionados pela CDN no RESPONSE de uma requisição. Para que CDN inclua esses headers, precisamos
solicitar através do envio de um header específico no REQUEST.
Note que você pode utilizar a ferramenta para adicionar o header que desejar, como por exemplo, o
header “Host” para acessar um servidor de origem pelo seu endereço IP.
A extensão permite a adição de diversos perfis. No caso acima, esse perfil está nomeado como “Debug
Headers”. Novos headers podem ser adicionados ao clicar no “+” e novos perfis, acessando o menu no
canto superior esquerdo.
Algumas extensões similares não funcionam com o navegador em modo anônimo. O ModHeader
funciona no Firefox, mas ao acessar a extensão nesse modo, ele não traz nenhuma configuração. Nesse
caso, basta acessar o menu e selecionar Cloud Backup para restaurar a última configuração.
O Cloud Backup também útil para recuperar a última configuração após uma limpeza completa dos dados
do navegador.
(Ver: 10/03/20) 1
Usando os headers no curl
Outra opção para visualizar os headers é com o uso do curl com o parâmetro “-H” para adicionar
headers:
~$ curl -I -H "x-ec-debug: x-ec-cache, x-ec-check-cacheable, x-ec-cache-key, x-ec-cache-state"
https://www.cdnverizon.com.br
HTTP/2 200
content-encoding: gzip
accept-ranges: bytes
access-control-allow-origin: *
age: 484889
alt-svc: quic=":443"; ma=2592000; v="49,48,46,43"
cache-control: max-age=604800
content-type: text/html; charset=UTF-8
date: Tue, 10 Mar 2020 14:08:10 GMT
expires: Tue, 17 Mar 2020 14:08:10 GMT
last-modified: Wed, 04 Mar 2020 23:26:42 GMT
server: ECAcc (spb/E50F)
x-cache: HIT
x-ec-cache: TCP_HIT from ECAcc (spb/E50F)
x-ec-cache-key: //https/8072276/www.cdnverizon.com.br/:/hs-3742166924979624929
x-ec-cache-state: max-age=604800 (7d); cache-ts=1583364401 (Wed, 04 Mar 2020 23:26:41 GMT); cache-
age=484889 (5d 14h 41m 29s); remaining-ttl=119911 (1d 9h 18m 31s); expires-delta=none
x-ec-check-cacheable: YES
x-policy: 191210-01
x-powered-by: PHP/5.6.31
x-rule: Policy for /
content-length: 10763
Se você usa Linux, pode adicionar a função abaixo no arquivo .bashrc para servir como um atalho.
crl() {
curl $* -H "x-ec-debug: x-ec-cache, x-ec-check-cacheable, x-ec-cache-key, x-ec-cache-state" -
skvo /dev/null -A "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0" -
L 2>&1 | grep "<"
}
(Ver: 10/03/20) 2
INSPECIONANDO OS CABEÇALHOS
Para inspecionar os headers no navegador, precisamos ver as requisições através do Developer Tools. O
print abaixo foi feito no Firefox, mas no Chrome é bem parecido.
Para abrir o Developer Tools, pressione F12 (tanto no Chrome como no Firefox) e acesse o site desejado.
(Ver: 10/03/20) 3
INTERPRETANDO OS HEADERS
O header x-ec-cache nos informa o comportamento da CDN para esse objeto analisado e pode retornar
os valores abaixo:
TCP_HIT: O objeto estava em cache, não teve o max-age excedido e foi servido pela cache.
NONE: A requisição foi simplesmente repassada para o servidor de origem por não ser passível de
cacheamento. Por exemplo, uma requisição do tipo PUT.
CONFIG_NOCACHE: O objeto não estava em cache por restrição de regras de configuração e a
resposta foi fornecida pelo servidor de origem.
UNCACHEABLE: Algumas características na resposta do servidor de origem previnem o
cacheamento, como por exemplo, o uso da diretiva "Cache-Control: no-cache", enviada no
header pelo servidor de origem.
TCP_MISS: O objeto não estava em cache e a resposta foi fornecida pelo servidor de origem.
Dependendo da resposta do servidor, um novo objeto pode ser criado em cache.
TCP_EXPIRED_HIT: O objeto estava em cache, mas com seu max-age excedido e uma revalidação
no servidor de origem resultou no objeto em cache inalterado.
TCP_EXPIRED_MISS: O objeto estava em cache, mas com seu max-age excedido e uma
revalidação no servidor de origem resultou no objeto em cache substituído por uma nova
resposta do servidor.
Exemplo:
x-ec-cache-state: max-age=604800 (7d); cache-ts=1571358042 (Fri, 18 Oct 2019 00:20:42
GMT); cache-age=480500 (5d 13h 28m 20s); remaining-ttl=124300 (1d 10h 31m 40s);
expires-delta=none
max-age: exibe o tempo de cacheamento configurado para o objeto: 7 dias ou 604800 segundos.
catche-ts: time stamp de quando o objeto foi cacheado: 1571358042 (Fri, 18 Oct 2019 00:20:42
GMT)
cache-age: tempo decorrido desde o cacheamento do objeto: 480500 segundos ou 5d 13h 28m
20s.
remaining-ttl: tempo de vida restante em cache até a próxima revalidação.
(Ver: 10/03/20) 4