2017-10-23 4 views
0

나는 반환하는 리소스의 온라인 처리를 허용하는 HTTP를 통해 API를 구현하는 방법을 살펴 보았습니다. 이 리소스는 예를 들어 프로그레시브 JPEG 일 수 있습니다. 프로그레시브 JPEG를 읽고 브라우저에서 렌더링하는 방법에 대해서는 청크 분할 전송 인코딩이 필요하다는 언급이 전혀 없습니다. 일을 올바르게 이해하고 있다면 청크 분할 전송 인코딩을 사용하지 않고 점진적 JPEG를 완전히 다운로드하기 전에 렌더링 할 수있는 방법을 알 수 없습니다. 이 올바른지?프로그레시브 JPEG에는 청크 분할 전송 인코딩이 필요합니까?

편집 : 청크 인코딩을 사용하여 청크 인코딩을 사용하지 않고 프로그레시브 JPEG를 얻지 못한다면 JPEG 또는 GET 요청을 보낸 다른 응용 프로그램이 JPEG 리소스를 전달하지 않을 것이라고 생각하는 이유를 명확히하기 위해 그것이 완전히 접수 될 때까지. 반면 청크 인코딩을 사용하면 JPEG의 각 청크가 들어올 때 애플리케이션 (브라우저 또는 기타)은 전체 JPEG가 처리 될 때까지 아무 것도 처리하지 않고 수신 된 JPEG 부분을 렌더링하거나 수행 할 수 있습니다 다운로드되었습니다.

+0

청크 인코딩이 필요한 이유가 표시되지 않습니다. 당신은 정교 할 수 있습니까? –

+0

@JulianReschke 나는 OP의 맨 아래에서 내 생각을 분명히하려고 노력했다. –

답변

2

가 완전히 사실이 아니다

를 수신 할 때까지 JPEG 리소스를 전달되지 것 JPEG에 대한 GET 요청을 보낸 브라우저 또는 기타 응용 프로그램. 브라우저는 다운로드가 완료되기 전에 다운로드중인 리소스에 액세스 할 수 있습니다.

결국 소켓을 통해 모든 정보가 수신되고 적절한 추상화 레이어를 통해 응용 프로그램 코드가 패킷으로 들어올 때 해당 소켓의 "stream"바이트를 허용합니다.

+0

원시 소켓을 사용하고 있지만 응용 프로그램 계층에서 HTTP처럼 보이지 않는 것으로 알고 있습니다. 그런 다음 청크 인코딩의 요점은 무엇입니까? –

+1

브라우저는 OSI 모델의 여러 레이어를 잘라냅니다. 아무도 그것을 금지하지 않습니다. 브라우저의 프로그래밍 모델이 완성 된 HTTP 응답 만 처리하는 경우 다운로드 진행률 막대는 어떻게 표시됩니까? 청크 분할을 사용하는 이유는 [청크 분할 인코딩을 사용하면 어떤 이점이 있습니까?] (https://stackoverflow.com/questions/5056227/what-is-the-advantage-to-use-chunked-encoding)를 참조하십시오. – CodeCaster

+1

그래, 방금 [this] (https://noxxi.de/research/http-evader-explained-3-chunked.html)을 읽었으며 잘못된 생각을하고 있다는 것을 깨달았다. 나는 HTTP가 "스트리밍"을 지원하지 않고 청크 인코딩과의 차이점/오해를 오해한다는 개념에 혼란 스러웠다. –

관련 문제