0

telnet を使用して 304 not modified ステータス コードで応答を強制しようとしています。コマンドに問題はありませんが、まだ 200 OK ステータスのままです。

telnet lemonde.fr 80

GET /index.html HTTP/1.1
User-Agent: Mozilla/5.0
From: yahoo.com 
Accept: text/html,text/plain,application/*
Host: www.lemonde.fr
If-Modified-Since: Wed, 19 Oct 2015 10:50:00 GMT
<linefeed>

HTTP/1.1 200 OK
Server: Apache
Last-Modified: Wed, 30 Oct 2013 00:32:31 GMT
Vary: Accept-Encoding
X-Server: noisy
Cache-Control: max-age=60
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 30 Oct 2013 00:36:11 GMT
X-Varnish: 391424540 391424396
Age: 13
Via: 1.1 varnish
X-Varnish-Cache: HIT
X-Varnish-Server: noisy.lemonde.fr
4

1 に答える 1

0

HTTP 仕様では大きく異なる 3 つの日付形式が許可されていることを考えると、日付の差の計算はかなり複雑です。

ブラウザーが IMS (If-Modified-Since) ヘッダーを作成する最も簡単な方法は何ですか? サーバーから受け取ったのとまったく同じ文字列を送り返します。

これを念頭に置いて、サーバーが IMS 要求への応答方法を決定する最も簡単な方法は何ですか? IMS と Last-Modified ヘッダーの単純な文字列比較を行います。一致する場合は、304 を送信します。一致しない場合は、完全な 200 を送信します。

独自の日付文字列を作成すると、実際の日付に関係なく、200 応答が返される可能性があります。

于 2014-03-31T06:17:57.677 に答える