2012-01-26 3 views
4

웹 서비스 (대개 예 : 보통 JSONs)는 큰 바이너리 입출력 데이터를 처리하고 반환 할 수 있습니까?REST 서비스 및 대용량 파일

즉, 큰 파일을 제공하는 HTTP POST로 REST 서비스를 호출 한 다음 큰 결과를 다시 읽으려는 것입니까? REST가 괜찮습니까? ("큰"= 수십 메가 바이트)

+0

단지 몇 메가 바이트입니다. – Cartesius00

+0

REST 아키텍처는 모든 미디어 유형에만 국한되지 않습니다. –

답변

3

JSON 및 XML과 같은 텍스트 직렬 변환기를 사용하면 이진 데이터가 Base64로 인코딩되어야하므로 와이어를 통해 파일 크기가 약 33 % 증가합니다. 이 시나리오를 처리하려면 MTOM과 같이 더욱 최적화 된 프로토콜이 있습니다. WCF supports MTOM을 그대로 사용하십시오.

+0

감사합니다. JSON은 바이너리 데이터를 지원합니까? – Cartesius00

+0

@James, JSON은 텍스트이므로 이진 데이터를 일반적으로 Base64 인 텍스트 표현으로 인코딩해야 메시지 크기가 크게 증가합니다. –

+0

그리고 JSON이 없으면 REST가 HTTP GET을 사용하여 "직접"바이너리 데이터를 반환 할 수 있습니까? – Cartesius00

3

REST 아키텍처는 HTTP를 사용하여 바이트 스트림 인 application/octet-stream을 처리 할 수 ​​있습니다. HTTP는 매우 큰 파일을 확실히 안정적으로 제공 할 수 있습니다.

2

REST는 주로 HTTP를 통한 서비스이므로 HTTP의 표준 장점과 제한 사항이 REST 서비스에도 적용됩니다. 하나의 큰 파일을 웹 앱에 업로드하는 것과 비슷한 방식으로 몇 MB의 대용량 파일을 POST로 REST API로 보낼 수 있습니다.