httpサーバのcache動作を目視確認する
webサーバのキャッシュ動作を確認する。apache,nginxは同じ動作となった。
httpヘッダの技術解説。最近よくアクセスする。
If-Modidied-Since
If-None-Match
キャッシュ動作の基本
初回アクセスで、コンテンツの最終更新日やハッシュ値がレスポンスヘッダで応答される
- Last-Modified:
- ETag:
2回目のアクセスで、リクエストヘッダにこの値を設定して自分が持っているキャッシュが最新かどうかを確認する。
- If-Modified-Since: Last-Modifiedの値
- If-None-Match: "ETag値"
最新であれば(リクエストヘッダの設定値が妥当であれば)、 304 Not Modified
が応答されるので、自分が持っているキャッシュを使う。
動作の目視
curlを使い、リクエストヘッダを指定してレスポンスヘッダを確認する。
結果サマリ
No | If-None-Match ETag |
If-Modified-Since Last-Modified |
サーバ応答 |
---|---|---|---|
1 | 一致 | 一致 | 304 Not Modified |
2 | 一致 | 指定なし | 304 Not Modified |
3 | 指定なし | 一致 | 304 Not Modified |
4-1 | 一致 | 古い | 200 OK |
4-2 | 一致 | 新しい | 304 Not Modified |
5 | 不一致 | 一致 | 200 OK |
コマンド例
ETag値は"
で囲む必要があるので引数自体は'
で囲む。
--header 'If-None-Match: "****"'
curl -L $URL -v -o $URL.html 2> $URL.log
(0)初回
URL=(your-url)
curl -L $URL -v -o $URL.html
> GET / HTTP/1.1
> Host: (your-url)
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx
< Date: Sun, 13 Oct 2019 04:56:03 GMT
< Content-Type: text/html
< Content-Length: nnnn
< Connection: keep-alive
< Last-Modified: aaa, DD MMM YYYY hh:mm:ss GMT
< ETag: "****"
< Accept-Ranges: bytes
(1) Etag, If
curl -L $URL -v -o $URL.html --header 'If-None-Match: "****"' --header "If-Modified-Since: aaa, DD MMM YYYY hh:mm:ss GMT"
(2) Etag
curl -L $URL -v -o $URL.html --header 'If-None-Match: "****"'
(3) Etag, If
curl -L $URL -v -o $URL.html --header "If-Modified-Since: aaa, DD MMM YYYY hh:mm:ss GMT"
(4-1) ETag, OLD-DATE
curl -L $URL -v -o $URL.html --header 'If-None-Match: "****"' --header "If-Modified-Since: aaa, DD MMM YYYY hh-:mm:ss GMT"
(4-2) ETag, NEW-DATE
curl -L $URL -v -o $URL.html --header 'If-None-Match: "****"' --header "If-Modified-Since: aaa, DD MMM YYYY hh+:mm:ss GMT"
(5) ETag, If
curl -L $URL -v -o $URL.html --header 'If-None-Match: "++++"' --header "If-Modified-Since: aaa, DD MMM YYYY hh:mm:ss GMT"
Author And Source
この問題について(httpサーバのcache動作を目視確認する), 我々は、より多くの情報をここで見つけました https://qiita.com/harasakih/items/15d1a434c70c6bed5fc3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .