Saya mendengar bahwa HTTP POST tidak memiliki batasan spesifikasi dalam ukuran data yang dapat dikirim olehnya. Apakah itu benar atau hanya ada batas yang sangat tinggi?
upvote untuk menyebutkan Metabase.XML dan saya telah mencantumkan berbagai cara untuk mengubah batas ukuran unggahan file karena mungkin berguna.
Durai Amuthan. H
Memasukkan perintah berikut di prompt perintah membantu meningkatkan batas ukuran unggahan file. "Cscript C: \ inetpub \ adminscripts \ adsutil.vbs set w3svc / ASPMaxRequestEntityAllowed 10484880" (dalam byte) referensi: serverintellect.com/support/iis/uploaddownload-size-limits -iis6
Durai Amuthan. H
atau temukan metabase.xml di C: \ windows \ sytem32 \ inetserv \ path dan edit tetapi pastikan Enable Direct metabase edit diaktifkan.reference: banmanpro.com/support2/file_upload_limits.asp
Untuk server web saat ini (2019), lihat jawaban ini .
Dan Dascalescu
76
Sungguh menakjubkan bagaimana semua jawaban berbicara tentang IIS, seolah-olah itu adalah satu-satunya server web yang penting. Bahkan di tahun 2010 ketika pertanyaan itu diajukan, Apache memiliki antara 60% dan 70% pangsa pasar . Bagaimanapun,
Protokol HTTP tidak menetapkan batas.
Metode POST memungkinkan pengiriman lebih banyak data daripada metode GET, yang dibatasi oleh panjang URL - sekitar 2KB.
Ukuran badan permintaan POST maksimum dikonfigurasikan di server HTTP dan biasanya berkisar dari 1MB hingga 2GB
Klien HTTP (browser atau agen pengguna lain) dapat memiliki batasannya sendiri. Oleh karena itu, ukuran permintaan badan POST maksimum adalah min(serverMaximumSize, clientMaximumSize).
Berikut adalah ukuran badan POST untuk beberapa server HTTP yang lebih populer:
Dari jawaban tersebut yang menyebutkan satu webserver dua menyebutkan IIS dan satu menyebutkan Apache. Pokoknya sudah edit jawaban saya untuk plang menuju milik Anda yang lebih lengkap dan up to date.
David Neale
3
Terima kasih @DavidNeale! Harus ada lencana untuk itu :) Saya akan mencoba untuk terus memperbarui jawaban ini. Baru saja menambahkan maksimum untuk nginx.
Dan Dascalescu
Tentang ini: "lebih banyak data daripada metode GET, yang dibatasi oleh panjang URL - sekitar 2KB." Bagaimana dengan header? Per posting ini tampaknya header memungkinkan sekitar 8-16KB.
Hans Vonn
27
Tidak ada batasan menurut protokol HTTP itu sendiri, tetapi penerapannya akan memiliki batas atas praktis. Saya telah mengirim data melebihi 4 GB menggunakan POST ke Apache, tetapi beberapa server memang memiliki batas 4 GB pada saat itu.
Perhatikan bahwa tidak ada batasan jumlah elemen FORM yang dapat Anda berikan melalui POST, tetapi hanya pada ukuran agregat dari semua pasangan nama / nilai. Sementara GET dibatasi hingga serendah 1024 karakter, data POST dibatasi hingga 2 MB pada IIS 4.0, dan 128 KB pada IIS 5.0. Setiap nama / nilai dibatasi hingga 1024 karakter, seperti yang diberlakukan oleh spesifikasi SGML. Tentu saja ini tidak berlaku untuk file yang diunggah menggunakan enctype = 'multipart / form-data' ... Saya tidak mengalami masalah saat mengunggah file dalam rentang 90 - 100 MB menggunakan IIS 5.0, selain harus meningkatkan nilai server.scriptTimeout serta kesabaran saya!
Hasil edit yang bagus @Matt - menunjukkan pentingnya memotong fakta yang menonjol daripada menghubungkannya secara membabi buta
amelvin
1
Dalam sebuah aplikasi yang saya kembangkan, saya menemukan apa yang tampaknya menjadi batas POST sekitar 2KB. Ternyata saya tidak sengaja menyandikan parameter ke dalam URL alih-alih meneruskannya di badan. Jadi jika Anda mengalami masalah di sana, pasti ada batasan yang sangat kecil pada ukuran data POST yang dapat Anda kirim yang dikodekan ke dalam URL.
HTTP mungkin tidak memiliki batas atas, tetapi server web mungkin memilikinya. Di ASP.NET ada batas penerimaan default sebesar 4 MB, tetapi Anda (pengembang / webmaster) dapat mengubahnya menjadi lebih tinggi atau lebih rendah.
Jawaban:
EDIT (2019) Jawaban ini sekarang cukup berlebihan tetapi ada jawaban lain dengan informasi yang lebih relevan.
Ini lebih tergantung pada server web dan browser web:
Internet explorer Semua versi 2GB-1
Mozilla Firefox Semua versi 2GB-1
IIS 1-5 2GB-1
IIS 6 4GB-1
Meskipun IIS hanya mendukung 200 KB secara default, metabase perlu diubah untuk meningkatkannya.
http://www.motobit.com/help/scptutl/pa98.htm
Metode POST itu sendiri tidak memiliki batasan ukuran data.
sumber
Sungguh menakjubkan bagaimana semua jawaban berbicara tentang IIS, seolah-olah itu adalah satu-satunya server web yang penting. Bahkan di tahun 2010 ketika pertanyaan itu diajukan, Apache memiliki antara 60% dan 70% pangsa pasar . Bagaimanapun,
1MB hingga 2GB
min(serverMaximumSize, clientMaximumSize)
.Berikut adalah ukuran badan POST untuk beberapa server HTTP yang lebih populer:
sumber
Tidak ada batasan menurut protokol HTTP itu sendiri, tetapi penerapannya akan memiliki batas atas praktis. Saya telah mengirim data melebihi 4 GB menggunakan POST ke Apache, tetapi beberapa server memang memiliki batas 4 GB pada saat itu.
sumber
LimitRequestBody
perintah tersebut.POST memungkinkan panjang data yang berubah-ubah untuk dikirim ke server, tetapi ada batasan berdasarkan batas waktu / bandwidth, dll.
Saya pikir pada dasarnya, lebih aman untuk berasumsi bahwa mengirim banyak data tidak boleh.
sumber
Server web IIS yang berbeda dapat memproses jumlah data yang berbeda di 'header', menurut artikel ini (sekarang dihapus);
http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html;sumber
Dalam sebuah aplikasi yang saya kembangkan, saya menemukan apa yang tampaknya menjadi batas POST sekitar 2KB. Ternyata saya tidak sengaja menyandikan parameter ke dalam URL alih-alih meneruskannya di badan. Jadi jika Anda mengalami masalah di sana, pasti ada batasan yang sangat kecil pada ukuran data POST yang dapat Anda kirim yang dikodekan ke dalam URL.
sumber
HTTP mungkin tidak memiliki batas atas, tetapi server web mungkin memilikinya. Di ASP.NET ada batas penerimaan default sebesar 4 MB, tetapi Anda (pengembang / webmaster) dapat mengubahnya menjadi lebih tinggi atau lebih rendah.
sumber