Допустимо ли смешивать версии http на сайте Drupal? - PullRequest
2 голосов
/ 15 ноября 2010

Мне недавно пришлось внести изменения в основной модуль, что означает, что мои страницы ошибок отправляются с использованием HTTP 1.0, а остальная часть моего сайта - HTTP 1.1.Фон здесь и здесь .Я видел совет, который указывает, что заставить один сайт говорить на разных версиях HTTP для разных страниц - плохая идея, например, здесь , но они не говорят, что может пойти не так.Похоже, что http 1.1 предлагает некоторые улучшения производительности в виде , позволяющие постоянные соединения и улучшенное кэширование , что я бы не хотел потерять, если бы мог избежать этого на некоторых своих страницах ... отсюдасмешивание версий http.

Я направляюсь к катастрофе?Или, наоборот, является ли улучшение производительности http 1.1 на самом деле настолько маленьким, что я должен подумать об отказе от него ради лучшей практики?

1 Ответ

0 голосов
/ 25 января 2011

Мне недавно пришлось внести изменения в основной модуль

Не делай этого! Если это возможно, сверните модуль. Если есть проблема с ядром, пожалуйста, отправьте патч (он поможет другим разработчикам, а также облегчит вам обновление).

Проблема с HTTP сложная. Как вы сказали, HTTP 1.1 добавляет постоянные соединения и тому подобное, которые ваш браузер может решить использовать на вашем веб-сайте. Как ведет себя браузер, если веб-сайт неожиданно отправляет HTTP 1.0, я не знаю, и что происходит, если ответ HTTP 1.0 отправляется через постоянное соединение.

Однако фоновые вопросы, на которые вы ссылаетесь, относятся к очень специфической ситуации - когда обратный прокси-сервер (nginx) находится перед вашим сайтом. Если это так, читайте дальше:

Единственный агент, обращающийся к вашему сайту напрямую - это nginx. Пока работает nginx, у вас нет проблем. Нет смысла обслуживать ваш сайт для nginx как HTTP 1.1, потому что он поддерживает только 1.0 для прокси. Однако nginx будет прозрачно обрабатывать соединения с вашими пользователями как HTTP 1.1 - то есть они могут использовать постоянные соединения и т. Д., В то время как nginx устанавливает и разрывает соединения с серверной частью в фоновом режиме.

Поэтому мой совет: опустите весь ваш сайт до HTTP 1.0 и убедитесь, что nginx все еще использует его как HTTP 1.1. Возможно, вы обнаружите, что заголовок 404 по-прежнему экранируется, но я думаю, nginx также будет правильно захватывать и обрабатывать это. Протестируйте и узнайте!

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