Skip to content

Instantly share code, notes, and snippets.

@fabrizioc1
Last active May 24, 2023 08:23
Show Gist options
  • Save fabrizioc1/1424982 to your computer and use it in GitHub Desktop.
Save fabrizioc1/1424982 to your computer and use it in GitHub Desktop.
Akamai debug headers
Pragma: akamai-x-cache-on, akamai-x-cache-remote-on, akamai-x-check-cacheable, akamai-x-get-cache-key, akamai-x-get-extracted-values, akamai-x-get-nonces, akamai-x-get-ssl-client-session-id, akamai-x-get-true-cache-key, akamai-x-serial-no
#
# Check if something is cached in Akamai
#
curl -H "Pragma: akamai-x-cache-on" -H "Pragma: akamai-x-check-cacheable" -I "http://store.sony.com/webapp/wcs/stores/servlet/StoreCatalogDisplay?langId=-1&storeId=10151&catalogId=10551"
#
# The response header "X-Cache" shows that Akamai served the response from its cache
# The response header "X-Check-Cacheable" shows if Akamai is configured to cache that response
#
# If a request does not return any X response header then it is not cached by Akamai
# Once you use Akamai all your traffic is routed through their network whether cached or not
#
HTTP/1.1 200 OK
Content-Type: text/html; charset=ISO-8859-1
Content-Language: en-US
Date: Sat, 19 Jan 2013 04:52:19 GMT
X-Cache: TCP_MEM_HIT from a69-31-113-172.deploy.akamaitechnologies.com (AkamaiGHost/6.10.4-10176585) (-)
Connection: keep-alive
X-Check-Cacheable: YES
#
# Something not going through the Akamai network will not return any "X-*" response headers
#
curl -k -H "Pragma: akamai-x-cache-on" -H "Pragma: akamai-x-check-cacheable" -I "https://images.gimbal.com"
HTTP/1.1 200 OK
Date: Sat, 19 Jan 2013 05:09:22 GMT
Server: Apache/2.2.3 (Red Hat)
X-Powered-By: PHP/5.3.10
X-Pingback: https://www.gimbal.com/xmlrpc.php
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=UTF-8
#
# Any domain which is served by Akamai must have a DNS CNAME to the "edgesuite.net" or "edgekey.net domains"
#
#
# store.sony.com is Akamaized
#
dig store.sony.com
; <<>> DiG 9.8.1-P1 <<>> store.sony.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12568
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;store.sony.com. IN A
;; ANSWER SECTION:
store.sony.com. 90 IN CNAME san.sony.com.edgekey.net.
san.sony.com.edgekey.net. 14164 IN CNAME e6699.g.akamaiedge.net.
e6699.g.akamaiedge.net. 20 IN A 23.6.181.17
;; Query time: 74 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jan 18 21:14:34 2013
;; MSG SIZE rcvd: 119
#
# images.gimbal.com is not Akamaized
#
dig images.gimbal.com
; <<>> DiG 9.8.1-P1 <<>> images.gimbal.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33546
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;images.gimbal.com. IN A
;; ANSWER SECTION:
images.gimbal.com. 7200 IN A 199.106.109.221
;; Query time: 38 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jan 18 21:13:55 2013
;; MSG SIZE rcvd: 51
@xiangzhuyuan
Copy link

nice! thanks!

@danishsatkut
Copy link

👍

@ruanltbg
Copy link

ruanltbg commented Jan 8, 2016

👍

@sGambolati
Copy link

Awesome!

@alexjs
Copy link

alexjs commented Jul 9, 2018

If a request does not return any X response header then it is not cached by Akamai

Small correction: these headers can be administratively disabled for traffic which still flows through (and is cached by) the Akamai network -- so it is (no longer) an absolute confirmation.

@fr-yunho
Copy link

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment