2009-09-30 3 views
30

내부 앱 간의 통신을 위해 REST 인터페이스를 사용하려고합니다. 앱 A는 금융 포트폴리오를 나타내는 상당한 양의 데이터를 앱 B에 전달해야합니다. REST가 HTTP를 사용하여 구현 된 경우 REST API를 사용하여 전달할 수있는 데이터의 양에는 제한이 있습니까? 다른 프로토콜 (예 : RMI)을 큰 데이터 세트와 함께 사용해야하는지는 확실하지 않았습니다.REST 페이로드 최대 크기?

답변

26

아니요, 이러한 제한이있는 경우 서버 구현에 거의 영향을 미치지 않습니다.

URL 크기에 제한이 있습니다 (GET과 같이 URL에 많은 양의 데이터를 넣으려는 경우). POST 또는 PUT에 대해 정의 된 제한은 없습니다.

+4

큰 게시물과 상당한 대기 시간에 대해 TCP/IP의 한계 때문에 성능이 문제가 될 수 있다는 점을 추가하고 싶습니다. 일반적인 해결 방법은 여러 부분을 동시에 업로드하는 것입니다. –

19

Hartung이 말했듯이 표준에는 아무런 제한이 없습니다 (RFC 2616). 그러나 모든 구현에는 자체 한계가 있습니다. 몇 가지 예 : 톰캣에 대한

  • 두 메가 바이트 (당신이 maxPostSize로 변경할 수 있습니다) PHP에 대한
  • 두 메가 바이트 (당신이 post_max_size로 변경할 수 있습니다) 아파치 자체에 대한
  • 두 메가 바이트 (당신은 그것을 변경할 수 있습니다 LimitRequestBody)

이러한 구현 제한은 일반적으로 기본 구성 값이며 필요한 경우 더 큰 값으로 변경할 수 있습니다.

+1

Tomcat의 경우 이것이 맞다고 생각하지 않습니다. maxPostSize는 content type이 application/x-www-form-urlencoded 인 페이로드에만 영향을줍니다. Apache의 LimitRequestBody가 요청되는 것을 수행하는 것처럼 보일지라도 PHP 응답에는 동일한 제한이 있다고 생각됩니다. – fool4jesus

+0

그리고 GET 응답 크기의 제한은 무엇입니까? POST와 동일합니까? –