İçerik uzunluğunu belirtmeden PUT yapmaya çalışırken nginx'ten 411 durumu alıyorum. Bunun olmasını engellemenin bir yolu var mı?
İçerik uzunluğunu belirtmeden PUT yapmaya çalışırken nginx'ten 411 durumu alıyorum. Bunun olmasını engellemenin bir yolu var mı?
Yanıtlar:
Bunu sorgunuza eklemeyi deneyebilirsiniz:
curl -i -X PUT -H 'İçerik-Uzunluk: 0' ' http://www.example.com/test '
HttpChunkinModule'ü yüklemeye veya Nginx'i 1.3.9+ sürümüne güncellemeye çalışın
Bu modüle artık Nginx 1.3.9+ için gerek yoktur, çünkü 1.3gin'den beri Nginx çekirdeği zaten yığınlanmış istek gövdeleri için yerleşik desteğe sahiptir.
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.
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.