2010-05-21 10 views
25

Tôi nghe nói rằng POST không có giới hạn về kích thước dữ liệu mà nó có thể gửi đi, đó là sự thật hay có giới hạn thực sự cao?Http POST có vô hạn không?

Trả lời

30

Nó khá phụ thuộc vào máy chủ web và trình duyệt web:

Internet explorer Tất cả các phiên bản 2GB-1
Mozilla Firefox Tất cả các phiên bản 2GB-1
IIS 1-5 2GB-1
IIS 6 4GB-1

Mặc dù IIS chỉ hỗ trợ 200KB theo mặc định, metabase cần ame tăng lên.

http://www.motobit.com/help/scptutl/pa98.htm

Các phương thức POST tự nó không có bất kỳ giới hạn về kích thước của dữ liệu.

+0

upvote để đề cập đến Metabase.XML và tôi đã liệt kê nhiều cách khác nhau để thay đổi giới hạn kích thước tải lên tệp vì nó có thể hữu ích. –

+0

Nhập lệnh sau vào dấu nhắc lệnh giúp tăng giới hạn kích thước tải lên tệp. "Cscript C: \ inetpub \ adminscripts \ adsutil.vbs đặt w3svc/ASPMaxRequestEntityAllowed 10484880" (tính theo byte) tham chiếu: https: //www.serverintellect.com/support/ iis/uploaddownload-size-limits-iis6/ –

+0

hoặc tìm metabase.xml trong C: \ windows \ sytem32 \ inetserv \ path và chỉnh sửa nhưng hãy chắc chắn rằng Enable Direct metabase edit được bật.reference: http: //www.banmanpro.com /support2/file_upload_limits.asp –

17

Không có giới hạn theo chính giao thức HTTP, nhưng việc triển khai sẽ có giới hạn trên thực tế. Tôi đã gửi dữ liệu vượt quá 4 GB bằng cách sử dụng POST cho Apache, nhưng một số máy chủ đã có giới hạn 4 GB tại thời điểm đó.

3

POST cho phép chiều dài tùy ý các dữ liệu được gửi đến một máy chủ, nhưng có những hạn chế dựa trên timeouts/băng thông, vv

Tôi nghĩ rằng về cơ bản, nó là an toàn hơn khi cho rằng đó là không okay để gửi nhiều dữ liệu.

+0

Có bất kỳ quy tắc nào về mức độ nguy hiểm cho thời gian chờ và như vậy không? – vextorspace

3

Máy chủ web IIS khác nhau có thể xử lý lượng dữ liệu khác nhau trong 'tiêu đề', theo bài viết này (hiện đã bị xóa); http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html;

Lưu ý rằng không có giới hạn về số của các yếu tố MẪU bạn có thể vượt qua qua POST, nhưng chỉ trên kích thước tổng hợp của tất cả các cặp tên/giá trị. Trong khi NHẬN được giới hạn ở mức 1024 ký tự, dữ liệu POST bị giới hạn ở 2 MB trên IIS 4.0 và 128 KB trên IIS 5.0. Mỗi tên/giá trị được giới hạn ở 1024 ký tự, theo quy định của thông số SGML . Tất nhiên điều này không áp dụng cho các tệp được tải lên bằng cách sử dụng enctype = 'multipart/form-data' ... I không gặp sự cố khi tải lên tệp trong phạm vi 90 - 100 MB sử dụng IIS 5.0, ngoài việc tăng giá trị server.scriptTimeout cũng như sự kiên nhẫn của tôi!

+1

Chỉnh sửa tốt @Matt - cho thấy tầm quan trọng của việc tách ra các sự kiện nổi bật hơn là liên kết mù quáng – amelvin

0

Http có thể không có giới hạn trên nhưng máy chủ web có thể có giới hạn trên. Trong asp.net có giới hạn chấp nhận mặc định là 4MB, nhưng bạn (nhà phát triển/quản trị viên web) có thể thay đổi điều đó thành cao hơn hoặc thấp hơn.

0

Trong một ứng dụng tôi đã phát triển tôi chạy vào những gì dường như là một giới hạn POST khoảng 2KB. Hóa ra là tôi vô tình mã hóa các tham số vào URL thay vì truyền chúng vào trong cơ thể. Vì vậy, nếu bạn đang gặp sự cố ở đó, chắc chắn có một giới hạn rất nhỏ về kích thước dữ liệu POST bạn có thể gửi được mã hóa vào URL.