Tôi nhận được trạng thái 411 trở lại từ nginx khi cố gắng thực hiện PUT mà không chỉ định độ dài nội dung. Có cách nào để vô hiệu hóa điều này xảy ra?
Tôi nhận được trạng thái 411 trở lại từ nginx khi cố gắng thực hiện PUT mà không chỉ định độ dài nội dung. Có cách nào để vô hiệu hóa điều này xảy ra?
Câu trả lời:
Bạn có thể thử thêm điều này vào truy vấn của mình:
curl -i -X PUT -H 'Độ dài nội dung: 0' ' http://www.example.com/test '
Hãy thử cài đặt HttpChunkinModule hoặc cập nhật Nginx lên 1.3.9+
Mô-đun này không còn cần thiết cho Nginx 1.3.9+ vì kể từ 1.3.9, lõi Nginx đã có hỗ trợ tích hợp cho các cơ quan yêu cầu chunk.
Yêu cầu PUT yêu cầu Độ dài nội dung. Không phải Nginx, đó là HTTP đang thực hiện yêu cầu này. Yêu cầu PUT, giống như các yêu cầu POST, nhất thiết phải có nội dung. Cơ thể đó có thể có độ dài bằng không, nhưng nếu có thì bạn phải nói rõ ràng như vậy. Rõ ràng bạn không thể cho rằng nội dung tiếp tục cho đến khi kết nối bị đóng (đó là điều mà tiêu đề độ dài nội dung vắng mặt), bởi vì máy chủ phải có thể đáp ứng yêu cầu trước khi kết nối bị đóng.
Câu hỏi cũ, nhưng vì tôi vấp vào câu hỏi này từ một tìm kiếm trên web:
NginX 1.3.9 trở lên hỗ trợ "Mã hóa chuyển: chunked" ra khỏi hộp cho POST và PUT.
Với chuyển khối, bạn có thể gửi tệp mà không cần đặt độ dài nội dung trước.