Я использую тонкий каркас 2 etag()
чтобы получить данные кэша, все работает нормально, я получаю данные кэша с почтальоном или любым другим клиентом, но я получаю HTTP 200 OK
Ответ все время в клиенте отдыха, но так и должно быть HTTP 304
когда данные приходят из кеша
ниже мой тонкий API:
$app->get('/getNew', function () use ($app){
$app->etag('uniqueEtag12');
echo "I am updated one";
});
Я понятия не имею, почему каждый раз, когда я получаю 200 OK
Код ответа в клиенте отдыха, так как я получаю данные кеша в ответе, ниже приведена моя привязка ответа клиента отдыха
почему этот код статуса всегда 200 OK
почему я не получаю код статуса 304
Помогите мне, пожалуйста
etag()
Метод делает две вещи:
ETag
заголовок к ответуIf-None-Match
заголовок со значением uniqueEtag12
Поэтому я думаю, что ваш запрос не включает If-None-Match
заголовок.
Пример кода:
index.php:
<?php
require 'vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/hello', function () use ($app) {
$app->etag('1234');
echo "Hello world on " . date("Y-m-d H:i:s");
});$app->run();
Тест с использованием скручивания.
нет If-None-Match
заголовок:
$ curl -i HTTP: // локальный: 8888 / привет
HTTP/1.1 200 OK
Host: localhost:8888
Connection: close
X-Powered-By: PHP/7.0.15
Content-type: text/html;charset=UTF-8
Etag: "1234"
Hello world on 2017-05-04 07:12:40
С If-None-Match
заголовок:
$ curl -i http://localhost:8888/hello -H 'If-None-Match: "1234"'
HTTP/1.1 304 Not Modified
Host: localhost:8888
Connection: close
X-Powered-By: PHP/7.0.15
Etag: "1234"
Других решений пока нет …