$content_length
变量 $content_length 包含客户端发送的 'Content-Length' HTTP 头的值,表示请求体的字节大小。 — NGINX Core (HTTP)
$content_length
NGINX Core (HTTP)
说明
NGINX 中的 $content_length 变量提供包含在 'Content-Length' HTTP 头中的请求体长度。只有在该头存在的请求(通常为 POST 和 PUT 方法)中才会设置该变量。如果客户端未发送 'Content-Length' 头,该变量将为空。该变量主要用于处理已知内容大小的请求,允许基于传入数据大小执行条件逻辑。 在处理请求时,NGINX 在解析入站请求头后设置 $content_length。如果指定了 'Content-Length' 头,它将保存该数值;但是如果该头缺失或格式不正确,$content_length 将不会反映有效的大小。实际上,该变量的有效值严格为非负整数,表示请求体的字节数。开发者通常使用该变量来施加大小限制、记录请求大小,或更高效地有条件地处理大载荷。
配置示例
http {
server {
listen 80;
location /upload {
if ($content_length > 10000) {
return 413; # Request entity too large
}
}
}
}子系统
http可缓存
是上下文
http, server, location, if⚠
确保 'Content-Length' 头部确实存在;否则,$content_length 将为空。
⚠
$content_length 仅对通常带有主体的方法(例如 POST 和 PUT)有用;对于 GET 请求,它将不会被设置。
⚠
并非所有客户端都正确使用 'Content-Length' 头部,这可能导致意外结果。缺失时,该变量不会返回大小。