HTTP-заголовки на самом деле не являются объектами. Лучше всего думать о них как о парах ключ-значение и ничего больше. Вполне возможно иметь дублирующиеся заголовки и значения заголовков.
Почему это происходит, просто основано на директивах c (сервере) или коде, которые вы используете для установки заголовков, и где при обработке запроса эти добавления заголовков принимают place.
Если вы добавите заголовок в ваше бэкэнд-приложение (Django, но на самом деле может быть что угодно, например, PHP), тогда используйте add_header
для того же заголовка в NGINX, вы будете иметь дубликаты заголовков.
Просто потому, что add_header
не просматривает заголовки, полученные от апстрима (вашего приложения), просто слепо добавляет тот, который вы указали в его конфигурации.
Если вы хотите чтобы иметь «установленное» поведение, затем вообще избегать повторяющихся заголовков, затем вы хотите использовать сторонний модуль, заголовки больше
Это даст вам некоторые дополнительные директивы для обеспечения поведения, которое вы ожидайте, например more_set_headers
. Однако при небольшом снижении производительности, поскольку set
behvaior подразумевает необходимость сначала искать существующие заголовки из серверной части, а затем перезаписывать их.