HTTP HEAD возвращает разные даты последнего изменения на разных серверах для одного и того же ресурса, почему? - PullRequest
0 голосов
/ 23 сентября 2011

У нас есть процесс Java, который выбирает ресурсы по HTTP.Я обнаружил, что один ресурс не тянет правильно, даже после того, как клиент изменил его.Покопавшись в этом, я обнаружил, что на сервере запущен процесс. Дата последнего изменения ресурса не совпадает с тем, что я вижу при просмотре информации из браузера.Затем я попытался извлечь его с другого сервера и моего ноутбука, и оба из них показали правильную дату.

С тех пор я пропатчил процесс, чтобы разрешить опцию Игнорировать дату заголовка для случаев, когда она существует (нобудет неверным), но мне бы очень хотелось узнать, почему это происходит.

Для справки приведем скручиваемый ответ с сервера, который возвращает неверную информацию.

HTTP/1.1 200 OK
Server: Sun-ONE-Web-Server/6.1
Date: Fri, 23 Sep 2011 14:16:57 GMT
Content-length: 132
Content-type: text/plain
Last-modified: Wed, 15 Sep 2010 21:58:20 GMT
Etag: "84-4c91417c" 
Accept-ranges: bytes

И то же самоезапросить на другом сервере (также получить те же результаты на моей машине)

HTTP/1.1 200 OK
Server: Sun-ONE-Web-Server/6.1
Date: Fri, 23 Sep 2011 14:18:47 GMT
Content-length: 132
Content-type: text/plain
Last-modified: Fri, 23 Sep 2011 01:20:43 GMT
Etag: "84-4e7bdeeb"
Accept-ranges: bytes

Оба сервера работают на Fedora 10.

Может кто-нибудь пролить свет на это для меня и как яможет быть в состоянии исправить это в долгосрочной перспективе?

1 Ответ

0 голосов
/ 24 сентября 2011

Таким образом, у вас есть 2 сервера, и оба возвращают разные результаты, то есть проблему несоответствия (я в основном вижу это из заголовка Etag)?

Моим первым предположением будет кэширование.Активны ли какие-либо кеши?Возможно, искажение кэша не работает должным образом или настройки ttl (time-to-live) слишком длинные.

В качестве теста попробуйте перезапустить машину с устаревшими данными и посмотреть, изменятся ли результаты (обычно во времяпри перезапуске системы большинство простых установок кэша сбрасываются).

Из какого бэкэнда изначально исходил ресурс (база данных, файловая система, сторонняя служба)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...