Есть ли разница в производительности между http 304 и 404? - PullRequest
4 голосов
/ 30 мая 2011

У нас есть веб-сайт, на котором нет любимой иконки favicon.

Поэтому мы получаем много ошибок http 404 для файла favicon.ico.

Для функциональности веб-сайта это не имеет значения.

Но мне было интересно, если система тратит больше времени на поиск файла, которого там нет, а не возвращает 304 без изменений?

При максимальной нагрузке имеем ок. 15 000 одновременных подключений через все внешние серверы.

Ответы [ 2 ]

8 голосов
/ 30 мая 2011

Нет, разница в производительности незначительна - если вы не хотите иметь иконку, я бы предложил создать 0-байтный /favicon.ico: журналы перестанут жаловаться, а браузеры будут вести себя так, как будто без значка.

Кроме того, вы можете установить заголовок Expires далекого будущего для вашего значка - таким образом, клиенты будут запрашивать его только один раз, еще больше уменьшая нагрузку.

3 голосов
/ 30 мая 2011

С точки зрения нагрузки, которую запрос вызывает на сервере, разницы нет. С точки зрения пропускной способности сети, действительный ответ 304 будет немного больше, так как вы также должны включить в ответ по крайней мере заголовки Date и Expires или ETag.

Если идея состоит в том, чтобы отправить ответ без контента, то я думаю, что 204 Нет контента более уместно.

Если вы абсолютно уверены, что на сайте никогда не будет значка, вы можете использовать ответ 410 Gone . Это говорит клиенту / браузеру не возвращаться и спрашивать снова. Это также более вероятно, будет кэшироваться прокси-сервером, чем 404.

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