HttpRequest не соблюдает коды заголовков с запрашиваемой страницы - PullRequest
1 голос
/ 01 апреля 2011

Я использую класс HttpRequest на прокси для вызова API. У меня есть модификации для кэширования в API, чтобы бросить 304, если содержимое не было изменено, чтобы пользователь, делающий запрос, мог использовать кэширование.

API выдает заголовок:

header('HTTP/1.1 304 Not Modified');

Я подтвердил, что это работает, проверяя заголовки; в Firefox ctrl + shift + r всегда будет возвращать 200, ctrl + r после 200 всегда будет приводить к 304. Однако на стороне прокси объект HttpRequest всегда возвращает 200. Я даже пытался изменить API так, он всегда выбрасывает 304 независимо от того, что, но прокси по-прежнему дает 200.

Как я могу заставить его уважать 304, генерируемый API, чтобы я также мог выбросить 304 из прокси?

1 Ответ

0 голосов
/ 01 апреля 2011

Если ваша логика кеширования на сервере API верна, то при отправке условного запроса вы должны получить только 304:

$last_request = time() - 60;
    // should be an actual timestamp of cached data!
$last_date = gmdate("D, d M Y H:i:s T", $last_request);

$request = new HttpRequest($url, $method_type);
$request->setHeaders(array('If-Unmodified-Since' => $last_date));
$request->send();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...