Working with a CDN can be a whole world of pain sometimes, especially when you’re trying to figure out what the heck is going on. Firstly, CDN’s quite often will have a pair of POP’s. Someone like LLNW will return you this:
$ host media.limelight.com media.limelight.com is an alias for llnw.vo.llnwd.net. llnw.vo.llnwd.net has address 220.127.116.11 llnw.vo.llnwd.net has address 18.104.22.168 llnw.vo.llnwd.net has IPv6 address 2a02:3d0:600:15:230:48ff:feda:d0c0 llnw.vo.llnwd.net has IPv6 address 2a02:3d0:600:212:225:90ff:fe4a:ef16
Each POP could return you different content. Whilst not recommended you could target a POP directly like this:
curl -H 'Host: media.limelight.com' -H 'X-LDebug:2' \ -I http://22.214.171.124/designimages/limelight-content-delivery.jpg
LimeLight Networks offer some debugging via a header which is shown in the command above, “X-LDebug:2”. If you make a call with it in you’ll see some extra X-Cache information:
$ curl -H 'Host: media.limelight.com' -H 'X-LDebug:2' \ -I http://126.96.36.199/designimages/limelight-content-delivery.jpg HTTP/1.1 200 OK Server: Apache Cache-Control: max-age=3600 X-Server-Name: la-c1-r3-u30-b1 Content-Type: image/jpeg Via: 1.1 la-c1-r2-u20-b2:3128 (squid) X-Cache: MISS from cds1020.iad.llnw.net X-Cache: MISS from cds822.lga.llnw.net Age: 308 Date: Mon, 20 May 2013 11:15:05 GMT Last-Modified: Thu, 08 Mar 2012 22:18:12 GMT Expires: Mon, 20 May 2013 12:09:57 GMT X-Cache: HIT from cds163.lon.llnw.net Content-Length: 5486 X-Cache: MISS from cds761.lon.llnw.net Connection: keep-alive
Akamai are a much larger network and as such can be a bit more complex to find POPs, but, they also offer a lot more in terms of debugging. Most of this is lifted from Mesmor. Akamai provide an extension for both Internet Explore and Firefox which can be found in the [control panel](https://control.akamai.com/portal/content/akaServiceSupport/edgesuite/edgesuite_booster.jsp. You can also quickly see the information from an Akamai asset using curl is:
curl -I -H "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" http://www.website.com/style.css
Some explanation of the results:
X-Cache : Cache State
**X-Cache TCP_MEM_HIT from a118-214-191-15 (AkamaiGHost/188.8.131.52-9183648)** a118-214-191-15 : Akamai IP Identifier (The Akamai server that serves this request) TCP_HIT : The object was fresh in cache and object from disk cache. TCP_MISS : The object was not in cache, server fetched object from origin. TCP_REFRESH_HIT : The object was stale in cache and we successfully refreshed with the origin on an If-modified-Since request. TCP_REFRESH_MISS : Object was stale in cache and refresh obtained a new object from origin in response to our IF-Modified-Since request. TCP_REFRESH_FAIL_HIT : Object was stale in cache and we failed on refresh (couldn't reach origin) so we served the stale object. TCP_IMS_HIT : IF-Modified-Since request from client and object was fresh in cache and served. TCP_NEGATIVE_HIT : Object previously returned a "not found" (or any other negatively cacheable response) and that cached response was a hit for this new request. TCP_MEM_HIT : Object was on disk and in the memory cache. Server served it without hitting the disk. TCP_DENIED : Denied access to the client for whatever reason. TCP_COOKIE_DENY : Denied access on cookie authentication (if centralized or decentralized authorization feature is being used in config).
X-Cache-Key : Internal Cache Key
**X-Cache-Key /L/1745/15811/3h/www.website.com/common/css/style.css** 15811 : Akamai CP Code 3h : Cache TTL www.website.com : Origin Server Name
X-Check-Cacheable : Cacheability
This determines if the request object is cache-able as set in your Akamai configuration. You can read more about CDN testing pre-live and also accessing some other providers headers.