HTTP POST는 무한 할 수 있습니까?


답변:


80

편집 (2019) 이 답변은 이제 상당히 중복되지만 더 관련성있는 정보 가있는 또 다른 답변 이 있습니다.

오히려 웹 서버와 웹 브라우저에 따라 다릅니다.

Internet explorer 모든 버전 2GB-1
Mozilla Firefox 모든 버전 2GB-1
IIS 1-5 2GB-1
IIS 6 4GB-1

IIS는 기본적으로 200KB 만 지원하지만이를 늘리려면 메타베이스를 수정해야합니다.

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

POST 메서드 자체에는 데이터 크기에 대한 제한이 없습니다.


Metabase.XML에 대한 언급에 찬성 투표하고 유용 할 수 있으므로 파일 업로드 크기 제한을 변경하는 다양한 방법을 나열했습니다.
Durai Amuthan.H 2012

명령 프롬프트에 다음 명령을 입력하면 파일 업로드 크기 제한을 늘리는 데 도움이됩니다. "cscript C : \ inetpub \ adminscripts \ adsutil.vbs set w3svc / ASPMaxRequestEntityAllowed 10484880"(바이트) 참조 : serverintellect.com/support/iis/uploaddownload-size-limits -iis6
Durai Amuthan.H

또는 C : \ windows \ sytem32 \ inetserv \ 경로에서 metabase.xml을 찾아 편집하되 직접 메타베이스 편집 활성화가 활성화되어 있는지 확인합니다. 참조 : banmanpro.com/support2/file_upload_limits.asp
Durai Amuthan.H

또는 web.config에서 system.web <httpRuntime executionTimeout = "54000"maxRequestLength = "512000"/> weblogs.asp.net/mhawley/archive/2004/05/11/129824.aspx
Durai

현재 (2019) 웹 서버에 대해서는 이 답변을 참조하십시오 .
Dan Dascalescu

87

마치 그것이 중요한 유일한 웹 서버 인 것처럼 모든 답변이 IIS에 대해 말하는 방식은 놀랍습니다. 심지어 다시 2010 년에 질문을 질문 할 때, 아파치는 사이 한 60 %시장 점유율의 70 % . 어쨌든,

  • HTTP 프로토콜은 제한을 지정하지 않습니다.
  • POST 메서드는 URL 길이 ( 약 2KB )로 제한되는 GET 메서드보다 훨씬 더 많은 데이터를 보낼 수 있습니다 .
  • 최대 POST 요청 본문 크기는 HTTP 서버에서 구성되며 일반적으로
    1MB에서 2GB까지입니다.
  • HTTP 클라이언트 (브라우저 또는 기타 사용자 에이전트)에는 자체 제한이있을 수 있습니다. 따라서 최대 POST 본문 요청 크기는 min(serverMaximumSize, clientMaximumSize)입니다.

다음은 더 많이 사용되는 일부 HTTP 서버의 POST 본문 크기입니다.


4
웹 서버를 언급하는 답변 중 두 가지는 IIS를 언급하고 하나는 Apache를 언급합니다. 어쨌든, 더 완전하고 최신의 표지판에 대한 내 대답을 편집했습니다.
David Neale

3
@DavidNeale 감사합니다! 그것에 대한 배지 가 있어야합니다 :) 나는이 답변을 업데이트하도록 노력할 것입니다. nginx의 최대 값을 추가했습니다.
Dan Dascalescu

정보 : "URL 길이에 의해 제한되는 GET 메소드보다 많은 데이터-약 2KB." 헤더는 어떻습니까? 당 이 게시물 은 헤더 8~16킬로바이트에 대한 허용 것으로 보인다.
Hans Vonn

27

HTTP 프로토콜 자체에 따른 제한은 없지만 구현에는 실질적인 상한이 있습니다. POST를 사용하여 4GB를 초과하는 데이터를 Apache에 보냈지 만 일부 서버는 당시 4GB로 제한되었습니다.


Apache의 경우 여전히 4GB가 최대입니까? 나는 한 그것을 문서화 발견 2기가바이트합니다.
Dan Dascalescu

@DanDascalescu : 몰라요, 오랜만에이 일을하지 않았습니다. 아마도 그들은 LimitRequestBody지시문에 상한선을 부과하기 시작했을 것 입니다.
Greg Hewgill

6

POST를 사용하면 임의 길이의 데이터를 서버로 보낼 수 있지만 시간 제한 / 대역폭 등에 따라 제한이 있습니다.

기본적으로 많은 양의 데이터를 보내는 것이 좋지 않다고 가정하는 것이 더 안전하다고 생각합니다 .


3
시간 초과 등으로 인해 얼마나 위험 해지는 지에 대한 경험 규칙이 있습니까?
vextorspace 2014

3

이 기사 (현재 삭제됨)에 따르면 서로 다른 IIS 웹 서버가 '헤더'에서 서로 다른 양의 데이터를 처리 할 수 ​​있습니다. http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html ;

POST를 통해 전달할 수있는 FORM 요소의 수에는 제한이 없으며 모든 이름 / 값 쌍의 집계 크기에만 제한이 있습니다. GET은 1024 자로 제한되지만 POST 데이터는 IIS 4.0에서 2MB, IIS 5.0에서 128KB로 제한됩니다. 각 이름 / 값은 SGML 사양에 따라 1024 자로 제한됩니다. 물론 이것은 enctype = 'multipart / form-data'를 사용하여 업로드 된 파일에는 적용되지 않습니다. ... IIS 5.0을 사용하여 90-100MB 범위의 파일을 업로드하는 데 문제가 없었습니다. server.scriptTimeout 값을 늘릴 필요가 있습니다. 뿐만 아니라 인내심도!


1
좋은 편집 @Matt-맹목적으로 연결하는 것보다 두드러진 사실을 포착하는 것의 중요성을 보여줍니다
amelvin

1

개발중인 애플리케이션에서 POST 제한이 약 2KB 인 것처럼 보였습니다. 매개 변수를 본문에 전달하는 대신 URL에 실수로 인코딩 한 것으로 밝혀졌습니다. 따라서 문제가 발생하는 경우 URL로 인코딩하여 보낼 수있는 POST 데이터의 크기에는 확실히 매우 작은 제한이 있습니다.


0

HTTP에는 상한이 없을 수 있지만 웹 서버에는 상한이있을 수 있습니다. ASP.NET에는 4MB의 기본 허용 제한이 있지만 개발자 / 웹 마스터는이를 더 높거나 낮게 변경할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.