Nginx 411 Content-Length gerekli hatalarından kaçınmanın bir yolu var mı?


11

İçerik uzunluğunu belirtmeden PUT yapmaya çalışırken nginx'ten 411 durumu alıyorum. Bunun olmasını engellemenin bir yolu var mı?

nginx 

Yanıtlar:



5

PUT istekleri İçerik Uzunluğu gerektirir. Nginx değil, bu gereksinimi karşılayan HTTP. POST istekleri gibi PUT isteği de mutlaka bir içerik gövdesine sahiptir. Bu beden sıfır uzunlukta olabilir, ancak eğer öyleyse açıkça söylemelisiniz. Açıkçası içeriğin, bağlantı kapatılana kadar devam ettiğini varsayamazsınız (bu, içerik uzunluğu üstbilgisinin bulunmadığı anlamına gelir), çünkü sunucunun bağlantı kapatılmadan önce isteğe yanıt verebilmesi gerekir.


3
bu yanlış. w3.org/Protocols/rfc2616/rfc2616-sec4.html "Bir istekte bir ileti gövdesinin varlığı, isteğin ileti başlıklarına İçerik Uzunluğu veya Aktarım Kodlaması başlık alanının eklenmesi ile bildirilir." Bu, nginx'te daha yeni sürümlerde düzeltilen bir hatadır. Bu hatanın PUT'tan çok önce POST için düzeltildiğini unutmayın.
Nick Palmer

2

Old-ish sorusu, ancak bir web aramasıyla karşılaştığımdan beri:

NginX 1.3.9 ve üstü, POST ve PUT için kutunun dışında "Transfer-Encoding: chunked" özelliğini destekler.

Yığın aktarım ile, önce içerik uzunluğunu ayarlamadan dosya gönderebilirsiniz.


Evet, düzeltti, teşekkürler!
rogerdpack
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.