서버 측 문서 렌더링
정의
문서를 서버에서 페이지 이미지로 변환하여 브라우저가 원본 파일 자체를 파싱하는 대신 렌더링된 페이지를 표시합니다.
대안인 클라이언트 측 렌더링은 파싱 엔진을 브라우저에 전달하고 파일을 넘깁니다. 이는 PDF에는 어느 정도 작동하지만 다른 모든 경우에는 부실합니다. 왜냐하면 DOCX, XLSX, DWG 및 MSG에 대한 브라우저 기반 렌더러를 작성하는 데는 10년 정도의 작업이 필요하고, 이를 두 번이나 자금 지원하고 싶어 하는 사람은 없기 때문입니다.
서버 측 렌더링은 속성을 역전시킵니다. 포맷 지원은 JavaScript 번들 문제 대신 서버 측 라이브러리 문제로 전환됩니다. 클라이언트는 문서가 얼마나 복잡하든 얇게 유지됩니다. 또한 원본 바이트가 브라우저에 도달하지 않으므로 문서를 보는 행위와 소유하는 행위가 동일하지 않게 됩니다.
비용은 실제이며 언급할 가치가 있습니다: 렌더링은 서버의 CPU와 메모리를 소비하고, 페이지는 이미지 형태로 네트워크를 통해 전송되어야 합니다. 실제로 부하는 페이지 복잡도에 의해 좌우되며, 문서 길이보다는 페이지가 한 번에 모두가 아니라 필요에 따라 렌더링되기 때문입니다.
Doconut에서
모든 포맷은 동일한 경로를 거칩니다. Viewer.OpenDocumentAsync()는 페이지를 서버 측에서 래스터화하고 불투명 토큰을 반환합니다; JavaScript 위젯은 토큰을 사용해 페이지를 요청합니다. 브라우저는 원본 문서를 전혀 받지 않습니다.
관련 용어
문서 뷰어 SDK
자신의 애플리케이션에 삽입하여 문서를 표시할 수 있는 라이브러리이며, 파일을 업로드하는 호스팅 서비스와는 구별됩니다. SDK는 여러분의 프로세스 내에서 실행되고, 서비스는 다른 사람의 프로세스에서 실행됩니다.
텍스트 레이어
문서 내부에 시각적 모습과 함께 저장된 기계가 읽을 수 있는 텍스트입니다. 이것이 검색 및 텍스트 선택을 가능하게 하며, 스캔된 페이지에 정확히 없는 것입니다.
불투명 세션 토큰
보유자에게는 의미가 없는 식별자이며, 서버 측 상태를 설명하기보다는 참조합니다. 따라서 클라이언트는 이를 읽거나, 수정하거나, 인접한 값을 추측할 수 없습니다.