$sent_http_content_length
变量 $sent_http_content_length 返回 HTTP 响应中发送的 Content-Length 头的值。 — NGINX Core (HTTP)
$sent_http_content_length
NGINX Core (HTTP)
说明
当 NGINX 处理请求时,它会收集将要返回给客户端的各类响应头。变量 $sent_http_content_length 专门捕获指示响应体大小(以字节为单位)的 Content-Length 头。该变量在请求处理阶段设置,通常包含表示由服务器生成的响应长度的数值;如果无法确定响应长度,或使用了 chunked transfer encoding 而不是具体的 Content-Length,变量可能为空。 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 将为空。
⚠
确保在响应头已被设置后再访问该变量,以避免出现意外结果。