Вызвать ответ с кодом состояния 304

Я пытаюсь форсировать ответ с 304 неизмененным кодом состояния, используя telnet. Я не вижу проблем с моими командами, но у меня все еще статус 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

1 ответ

Расчет разницы дат довольно запутан, учитывая, что спецификация HTTP допускает три совершенно разных формата даты.

Какой самый простой способ для браузера создать заголовок IMS (If-Modified-Since)? Почему, вы отправляете обратно ту же самую строку, которую получили от сервера!

Имея это в виду, какой самый простой способ для сервера определить, как ответить на запрос IMS? Сделайте простое сравнение строк между IMS и заголовком Last-Modified! Если они совпадают, отправьте 304. Если нет, отправьте все 200.

Если вы составите свою собственную строку даты, вы, скорее всего, получите 200 ответов, независимо от того, какие даты являются действительными.

Другие вопросы по тегам