curlコマンドでアカマイのレスポンスヘッダを取得する

普通に実行すると、アカマイのヘッダは返ってこない。

```bash
$ curl -I https://www.buyma.us/
```

```
HTTP/1.1 200 OK
Cache-Control: max-age=0, private, must-revalidate
Content-Length: 100224
Content-Type: text/html; charset=utf-8
ETag: W/"bc855dac72793ad6604823ccda3d8226"
Server: nginx
Status: 200 OK
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
```

### アカマイのレスポンスヘッダを取得したい場合

```bash
$ curl -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" \
 -IXGET https://www.buyma.us/
```

```
HTTP/1.1 200 OK
Cache-Control: max-age=0, private, must-revalidate
Content-Type: text/html; charset=utf-8
ETag: W/"73571fe6da3e8f52838c5e64c3a25b47"
Server: nginx
Status: 200 OK
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Cache: TCP_MISS from a72-246-190-192.deploy.akamaitechnologies.com (AkamaiGHost/7.4.0-16212965) (-)
X-Cache-Key: S/D/1146/397919/000/www-origin.buyma.us/
X-True-Cache-Key: /D/000/www-origin.buyma.us/
X-Akamai-Session-Info: name=AKA_PM_BASEDIR; value=
X-Akamai-Session-Info: name=AKA_PM_CACHEABLE_OBJECT; value=false
X-Akamai-Session-Info: name=AKA_PM_FWD_URL; value=/
X-Akamai-Session-Info: name=AKA_PM_NETSTORAGE_ROOT; value=
X-Akamai-Session-Info: name=AKA_PM_PREFETCH_ON; value=true
X-Akamai-Session-Info: name=AKA_PM_RUM_ENABLED; value=on
X-Akamai-Session-Info: name=AKA_PM_SR_ENABLED; value=true
X-Akamai-Session-Info: name=AKA_PM_SR_NODE_ID; value=0
X-Akamai-Session-Info: name=AKA_PM_TD_ENABLED; value=true
X-Akamai-Session-Info: name=AKA_PM_TD_MAP_PREFIX; value=ch
X-Akamai-Session-Info: name=FASTTCP_RENO_FALLBACK_DISABLE_OPTOUT; value=on
X-Akamai-Session-Info: name=OVERRIDE_HTTPS_IE_CACHE_BUST; value=all
X-Akamai-Session-Info: name=RANDOM_SAMPLE; value=false
X-Akamai-Session-Info: name=STRICT_BASELINE_V1ARL_CHECKS; value=<<ENCRYPTED>>
X-Akamai-Session-Info: name=TCP_OPT_APPLIED; value=low
X-Serial: 1146
X-Check-Cacheable: NO
```

### キャッシュ設定の動作を最低限確認したい場合

```bash
$ curl -s -H "Pragma: akamai-x-cache-on, akamai-x-check-cacheable, akamai-x-get-true-cache-key" -IXGET https://www.buyma.us/
```
```
HTTP/1.1 200 OK
Cache-Control: max-age=0, private, must-revalidate
Content-Type: text/html; charset=utf-8
ETag: W/"ab44b734d78a8c6cc368d0fd7961817c"
Server: nginx
Status: 200 OK
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Check-Cacheable: NO
X-Cache: TCP_MISS from a72-246-190-192.deploy.akamaitechnologies.com (AkamaiGHost/7.4.0-16212965) (-)
X-True-Cache-Key: /D/000/www-origin.buyma.us/
```

|||
|---|---|
|X-Check-Cacheable|YESならアカマイでキャッシュされ、NOならキャッシュされない|
|X-True-Cache-Key|アカマイのCache ID|
|X-Cache|下記参照|

https://community.akamai.com/community/web-performance/blog/2015/03/31/using-akamai-pragma-headers-to-investigate-or-troubleshoot-akamai-content-delivery

|||
|---|---|
|TCP_HIT|Object was fresh in cache and object from disk cache.|
|TCP_MISS|Object was not in cache, server fetched object from origin.|
|TCP_REFRESH_HIT|Object was stale in cache and was 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 failed on refresh (couldn't reach origin) so the stale object was served .|
|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. |

### レスポンスボディも含めて確認したい場合

以下の場合はレスポンスヘッダは標準エラー出力で返されるので、grepしたい場合は`2>&1`のようにする必要がある。

```bash
$ curl -s -v -H "Pragma: akamai-x-cache-on, akamai-x-check-cacheable, akamai-x-get-true-cache-key" https://www.buyma.us/ 2>&1 |
egrep '(X-Check-Cacheable:|X-Cache:|X-True-Cache-Key:|meta charset)'
```

```
< X-Cache: TCP_MISS from a96-7-251-113.deploy.akamaitechnologies.com (AkamaiGHost/7.3.4.1-16162558) (-)
< X-True-Cache-Key: /D/000/www-origin.buyma.us/
< X-Check-Cacheable: NO
<!DOCTYPE html><html><head><meta charset="UTF-8" />
```

### ブラウザから取得したい場合

* Chrome
    * `Akamai debug headers`
        * https://chrome.google.com/webstore/detail/akamai-debug-headers/lcfphdldglgaodelggpckakfficpeefj?hl=ja

* Firefox（アカマイの管理画面へのログインが必要&最新版をDLすること）
    * `Akamai Headers`
        * https://control.akamai.com/dl/customers/other/ESTOOLS/akamaiheaders-1.0.11.xpi
        * ↓の`Akamai Headers`というリンクから最新版がDL出来るはず
            * https://control.akamai.com/resolve/diagnostic_tools?tab=RESOLVE