ฉันได้ยินมาว่า HTTP POST ไม่มีขีด จำกัด ข้อมูลจำเพาะเกี่ยวกับขนาดข้อมูลที่สามารถส่งได้ นั่นเป็นความจริงหรือมีขีด จำกัด ที่สูงจริงๆ?
ฉันได้ยินมาว่า HTTP POST ไม่มีขีด จำกัด ข้อมูลจำเพาะเกี่ยวกับขนาดข้อมูลที่สามารถส่งได้ นั่นเป็นความจริงหรือมีขีด จำกัด ที่สูงจริงๆ?
คำตอบ:
แก้ไข (2019)คำตอบนี้ค่อนข้างซ้ำซ้อน แต่มีคำตอบอื่นที่มีข้อมูลที่เกี่ยวข้องมากกว่านี้
ค่อนข้างขึ้นอยู่กับเว็บเซิร์ฟเวอร์และเว็บเบราว์เซอร์:
Internet explorer ทุกเวอร์ชัน 2GB-1
Mozilla Firefox ทุกเวอร์ชัน 2GB-1
IIS 1-5 2GB-1
IIS 6 4GB-1
แม้ว่า IIS จะรองรับเพียง 200KB ตามค่าเริ่มต้น แต่ metabase จำเป็นต้องแก้ไขเพื่อเพิ่มสิ่งนี้
http://www.motobit.com/help/scptutl/pa98.htm
วิธีการ POST เองไม่มีข้อ จำกัด เกี่ยวกับขนาดของข้อมูล
น่าทึ่งมากที่คำตอบทั้งหมดพูดถึง IIS ราวกับว่านั่นเป็นเว็บเซิร์ฟเวอร์เดียวที่มีความสำคัญ เมื่อย้อนกลับไปในปี 2010 เมื่อคำถามที่ถูกถามอาปาเช่ได้ระหว่าง60%และ70% ของส่วนแบ่งการตลาด อย่างไรก็ตาม,
min(serverMaximumSize, clientMaximumSize)
ขนาดคำขอร่างกายเป็นนี่คือขนาดตัว POST สำหรับเซิร์ฟเวอร์ HTTP ที่เป็นที่นิยมมากขึ้น:
ไม่มีขีด จำกัด ตามโปรโตคอล HTTP แต่การนำไปใช้งานจะมีขีด จำกัด สูงสุดในทางปฏิบัติ ฉันส่งข้อมูลเกิน 4 GB โดยใช้ POST ไปยัง Apache แต่เซิร์ฟเวอร์บางเครื่องมีขีด จำกัด 4 GB ในเวลานั้น
LimitRequestBody
คำสั่ง
POST อนุญาตให้ส่งข้อมูลไปยังเซิร์ฟเวอร์ได้ตามความยาว แต่มีข้อ จำกัด ตามระยะหมดเวลา / แบนด์วิดท์เป็นต้น
ฉันคิดว่าโดยพื้นฐานแล้วมันปลอดภัยกว่าที่จะคิดว่าการส่งข้อมูลจำนวนมากไม่ถูกต้อง
เว็บเซิร์ฟเวอร์ IIS ที่แตกต่างกันสามารถประมวลผลข้อมูลจำนวนต่างกันใน 'ส่วนหัว' ตามบทความนี้ (ลบไปแล้ว) http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html ;
โปรดทราบว่าไม่มีการ จำกัด จำนวนขององค์ประกอบ FORM ที่คุณสามารถส่งผ่าน POST ได้ แต่เฉพาะขนาดรวมของคู่ชื่อ / ค่าทั้งหมดเท่านั้น แม้ว่า GET จะ จำกัด ไว้ที่ 1024 อักขระ แต่ข้อมูล POST จะถูก จำกัด ไว้ที่ 2 MB บน IIS 4.0 และ 128 KB บน IIS 5.0 แต่ละชื่อ / ค่า จำกัด ไว้ที่ 1024 อักขระตามที่กำหนดโดยข้อมูลจำเพาะ SGML แน่นอนว่าสิ่งนี้ใช้ไม่ได้กับไฟล์ที่อัพโหลดโดยใช้ enctype = 'multipart / form-data' ... ฉันไม่มีปัญหาในการอัพโหลดไฟล์ในช่วง 90-100 MB โดยใช้ IIS 5.0 นอกจากจะต้องเพิ่มค่า server.scriptTimeout เช่นเดียวกับความอดทนของฉัน!
ในแอปพลิเคชันที่ฉันกำลังพัฒนาฉันพบสิ่งที่ดูเหมือนจะเป็นขีด จำกัด POST ที่ประมาณ 2KB กลายเป็นว่าฉันตั้งใจเข้ารหัสพารามิเตอร์ลงใน URL แทนที่จะส่งผ่านไปในเนื้อความ ดังนั้นหากคุณประสบปัญหาที่นั่นแน่นอนว่ามีข้อ จำกัด เล็กน้อยเกี่ยวกับขนาดของข้อมูล POST ที่คุณสามารถส่งที่เข้ารหัสไปยัง URL ได้
HTTP อาจไม่มีขีด จำกัด สูงสุด แต่เว็บเซิร์ฟเวอร์อาจมีได้ ใน ASP.NET มีขีด จำกัด การยอมรับเริ่มต้นที่ 4 MB แต่คุณ (ผู้พัฒนา / ผู้ดูแลเว็บ) สามารถเปลี่ยนให้สูงขึ้นหรือต่ำลงได้