8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

httpサーバのcache動作を目視確認する

Last updated at Posted at 2019-10-13

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" 
8
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?