Подтвердить что ты не робот

HTTP-заголовки Cneonction и nnCoection

У нас часто возникают проблемы с точки зрения взаимодействия в Интернете. Одной из этих проблем для поставщиков браузеров является неправильно написанный Connection HTTP-заголовок. Наиболее распространенные ошибки даются этими двумя формами.

nnCoection:
Cneonction:

Об этом было несколько статей, в том числе Fun с заголовками HTTP. Часто это происходит по периоду, а затем исчезает. Похоже, что некоторые из них создаются балансирами нагрузки, такими как этот пример: NetScaler Appliance.

Знаете ли вы какие-либо другие аппаратные или программные средства, которые создают эти проблемы?

Обновить. Здесь приведен пример среди других сайтов, которые не отправляют хороший HTTP-заголовок Connection.

curl -sI ehg-nokiafin.hitbox.com
HTTP/1.1 200 OK
Date: Tue, 25 Jan 2011 20:35:45 GMT
Server: Hitbox Gateway 9.3.6-rc1
P3P: policyref="/w3c/p3p.xml", CP="NOI DSP LAW NID PSA ADM OUR IND NAV COM"
Cneonction: close
Pragma: no-cache
Cache-Control: max-age=0, private, proxy-revalidate
Expires: Tue, 25 Jan 2011 20:35:46 GMT
Content-Type: text/plain
Content-Length: 23

обновление 2011-01-26

На форуме Amazon о AWS есть thread около nnCoection. В комментарии говорится:

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

с

sum(ord(c) for c in "Connection")

и

sum(ord(c) for c in "nnCoection")

оба дают 1040

4b9b3361

Ответ 1

Вы уверены, что это действительно проблема? Связанная статья предполагает, что эти типы заголовков "неправильно написаны", так что балансировщик нагрузки, обратный прокси-сервер или другой промежуточный блок могут победить сервер, желая, чтобы соединение поддерживалось в сети, без необходимости отслеживать дельта в позиции потока TCP по жизнь связи. Возможно, что-то подобное может потребоваться, чтобы вернуть сбитый и восстановленный сервер в активную работу, заставив поддерживаемые живые подключения к другим серверам перейти на тот, который был выведен в онлайн.

Если у вас есть протокол, который зависит от HTTP Connection: keep-alive для функции (cough), вы, вероятно, ошибаетесь.