尝试执行PUT而未指定content-length时,我从nginx返回411状态。有什么办法可以阻止这种情况的发生?
尝试执行PUT而未指定content-length时,我从nginx返回411状态。有什么办法可以阻止这种情况的发生?
Answers:
您可以尝试将其添加到查询中:
卷曲-i -X PUT -H '的Content-Length:0' ' http://www.example.com/test '
尝试安装HttpChunkinModule或将Nginx更新到1.3.9+
Nginx 1.3.9+不再需要该模块,因为自1.3.9起,Nginx核心已经内置了对分块请求正文的支持。
PUT请求需要Content-Length。不是Nginx,而是HTTP满足了这一要求。像POST请求一样,PUT请求必须具有内容主体。该主体可以为零长度,但如果为零,则必须明确说明。显然,您不能假设内容一直持续到关闭连接为止(这是缺少content-length标头的意思),因为服务器必须能够在关闭连接之前响应请求。
古老的问题,但由于我在网络搜索中偶然发现:
NginX 1.3.9及更高版本支持POST和PUT开箱即用的“传输编码:分块”。
使用分块传输,您可以发送文件而无需先设置内容长度。