웹페이지에서 PDF 파일을 볼 수 있지만, 정작 다운로드 버튼이 없어 저장하지 못했던 경험이 있으신가요? 이러한 불편함을 해소하기 위해 'PDF 리커버(PDF Recover)'라는 크롬 확장 프로그램이 개발되었습니다. 이 도구는 웹페이지가 PDF를 단일 파일이 아닌 바이트 범위 청크(byte-range chunk) 스트림으로 로드할 때, 전송되는 청크들을 포착하여 순서대로 재조립한 후 완전한 PDF 파일로 다운로드할 수 있게 해줍니다.
PDF 리커버는 크롬의 디버거(debugger) API를 활용합니다. 사용자가 선택한 탭에 연결하여 네트워크 트래픽을 감시하고, '.pdf' 확장자를 포함하거나 PDF MIME 타입을 가진 응답을 기록합니다. 각 응답 본문(base64 인코딩)을 가져와 'Content-Range' 헤더를 파싱하여 청크의 시작-끝 바이트 범위를 식별합니다. 이 청크들을 디코딩하여 올바른 바이트 오프셋에 버퍼로 작성하고, 모든 청크가 수신되면 완전한 PDF 파일로 저장합니다. 특히, PDF 뷰어가 문서를 게으르게 로드(lazy-load)하는 경우, 전체 문서를 스크롤하거나 '간격 채우기(Fill gaps)' 기능을 사용해 누락된 바이트 범위를 요청하여 100% 완전한 파일을 확보할 수 있습니다.
이 확장 프로그램은 CDN(콘텐츠 전송 네트워크) 등에서 직접 접근이 어렵고 웹 UI를 통해서만 볼 수 있는 중요한 문서를 백업하는 데 큰 가치를 제공합니다. 기존에는 이러한 PDF를 저장하려면 복잡한 개발자 도구 조작이 필요했지만, PDF 리커버는 이를 간편하게 자동화합니다. 다만, 캡처 시작 이전에 발생한 요청은 복구할 수 없고, 파이어폭스(Firefox)와 같은 크롬 기반이 아닌 브라우저에서는 작동하지 않으며, 서버에서 파일 자체가 사라진 경우에는 복구가 불가능하다는 한계가 있습니다. 그럼에도 불구하고, 웹에서 PDF 문서 관리에 어려움을 겪는 많은 사용자들에게 실질적인 도움을 줄 수 있는 유용한 도구로 평가됩니다.