$sent_http_content_type

Переменная $sent_http_content_type содержит заголовок Content-Type, отправляемый в HTTP-ответе от NGINX. — NGINX Core (HTTP)

$sent_http_content_type NGINX Core (HTTP)

Описание

Переменная $sent_http_content_type — это встроенная переменная NGINX, которая захватывает значение заголовка Content-Type в HTTP-ответе, отправляемом сервером. Эта переменная часто используется после формирования ответа и позволяет получить Content-Type, определённый или заданный в конфигурации сервера или во время обработки запроса. При обработке запроса NGINX определяет подходящий Content-Type на основе различных факторов, таких как расширение файла запрашиваемого ресурса, согласование содержимого или явные настройки в файлах конфигурации. После создания ответа и непосредственно перед его отправкой клиенту переменная $sent_http_content_type может быть использована для оценки или логирования исходного Content-Type. Она не определена до тех пор, пока заголовок ответа не будет сформирован, и поэтому может быть недоступна для некоторых запросов, если ответ не является действительным или не был задан. Типичные значения этой переменной могут включать стандартные MIME-типы, такие как "text/html", "application/json", "image/png" и т.д., в зависимости от содержимого, которое обслуживает NGINX. Если ответ не отправлен или Content-Type не указан, эта переменная будет пустой. Поэтому рекомендуется проверять, задана ли она, прежде чем использовать в логировании или при принятии решений.

Пример конфига

location / {
    add_header Custom-Header "$sent_http_content_type";
    proxy_pass http://backend;
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location, if

Переменная не устанавливается до тех пор, пока не будут созданы заголовки ответа, поэтому её нельзя использовать на этапах предварительной обработки запроса.

Если заголовки ответа не содержат Content-Type, эта переменная будет пустой. Убедитесь, что ваше приложение или бэкенд-сервис устанавливает его правильно.