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

HTTP POST에는 전송할 수있는 데이터 크기에 대한 사양 제한이 없다고 들었습니다. 그게 사실인가요, 아니면 정말 상한선인가요?



답변

편집 (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 메서드 자체에는 데이터 크기에 대한 제한이 없습니다.


답변

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

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

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


답변

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


답변

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

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


답변

이 기사 (현재 삭제됨)에 따르면 서로 다른 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 값을 늘릴 필요가 있습니다. 뿐만 아니라 인내심도!


답변

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


답변

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