вторник, 5 сентября 2023 г.

Об обработке запроса If-Modified-Since

Наткнулся на интересный тред в Linkedin. Гуглоид Гэри Ийеш рассказал, в каком случае обработка запроса If-Modified-Since с отдачей кода состояния 304 Not Found может сослужить плохую службу:

1. Краулер запрашивает URL.

2. Сервер обнаруживает какую-то ошибку и отображает пустую страницу с кодом состояния 200 ОК.

3. Сканер считает это временной программной ошибкой и планирует повторное сканирование для проверки.

4. Поскольку сервер считает, что контент (который на самом деле не был предоставлен) не изменился, он возвращает код состояния 304 для данного URL (как того требует стандарт HTTP RFC 9110).

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

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

Получается, в идеале надо отслеживать случаи, когда размер ответа составляет 0 байт при коде состояния 200 OK, как предложил в комментариях другой гуглоид по имени Вивек Синха Анураг, и учитывать эту информацию при обработке запроса If-Modified-Since.

Share this


0 Comments

Blog Archive

Технологии Blogger.