$sent_http_content_length
Переменная $sent_http_content_length возвращает значение заголовка Content-Length, отправленного в HTTP-ответе. — NGINX Core (HTTP)
Описание
Когда NGINX обрабатывает запрос, он собирает различные заголовки ответа, которые будут отправлены клиенту. Переменная $sent_http_content_length специально фиксирует заголовок Content-Length, который указывает размер тела ответа в байтах. Эта переменная устанавливается во время фазы обработки запроса и обычно содержит числовое значение, представляющее длину ответа, сформированного сервером, либо может быть пустой, если длина ответа неизвестна или вместо конкретного значения Content-Length используется chunked transfer encoding. Заголовок Content-Length важен для коммуникаций по HTTP/1.1, поскольку он позволяет клиенту точно знать, сколько байт ожидать в теле ответа. В сценариях, где генерируется динамический контент, NGINX может не определить длину содержимого до тех пор, пока тело полностью не будет обработано. Поэтому использование этой переменной может помочь в ситуациях, требующих специальной обработки длины ответа, например для условного логирования или изменения ответа на основе размера содержимого.
Пример конфига
server {
listen 80;
location / {
add_header X-Content-Length $sent_http_content_length;
proxy_pass http://backend;
}
}Подсистема
httpКэшируется
ДаКонтексты
http, server, location, ifЕсли ответ использует кодирование чанками, $sent_http_content_length будет пустым.
Убедитесь, что к переменной обращаются после того, как заголовки ответа были установлены, чтобы избежать неожиданных результатов.