При высокой загрузке системы, какой код состояния можно вернуть - PullRequest
1 голос
/ 04 марта 2011

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

Устраняет ли эту проблему статус 304 и отсутствие отображения содержимого?

Ответы [ 3 ]

4 голосов
/ 04 марта 2011

Вам следует выдать 503 (услуга недоступна) с установленным параметром Retry-Later. Похоже, это точное решение.

См .: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html и http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

1 голос
/ 04 марта 2011

A 304 Статус HTTP код означает Not Modified.

Если ваш контент не был изменен с момента последнего посещения сканером своей страницы (это предполагаетсканер отправляет заголовок HTTP, чтобы указать, когда он пришел) , я полагаю, что можно отправлять HTTP-статус 304 - на самом деле, это будет правильно.


Новам, вероятно, не следует отправлять код состояния Not Modified, если:

  • Вы не можете определить, когда сканер пришел в последний раз, и, следовательно, вы не можете определить, какая версия вашего контента была последней.indexed
  • Ваш контент был изменен


Вместо этого , если ваш веб-сервер перегружен, правильный код состояния HTTP будет 503 Service Unavailable ( цитирование ) :

Сервер в данный момент недоступен (поскольку он перегружен или отключен для обслуживания).
Обычно это временное состояние.

0 голосов
/ 04 марта 2011

Что ж, если вы ответите 304 на безусловный запрос, клиент, скорее всего, просто отсортирует ваш ответ как «общую ошибку» (например, 500). Почему бы вам не отправить код состояния, предназначенный для такой ситуации, 503 Service Unavailable?.

...