html5/offline-web-application (rev. 1.4)
1. 오프라인 웹 어플리케이션 ¶
- 네트워크에 연결되어 있지 않아도 동작하는 어플리케이션.
- 스마트폰이나 넷북 등의 모바일 웹 단말기에서 네트워크 상태와 관계없이 계속 사용할 수 있다.
- 클라이언트에 캐시된 리소스를 사용하여 동작한다.
- 어플리케이션의 응답성이 좋다.
- 네트워크 접속이 줄어든다.
- 전원 관리에도 유리하다.
2. 어플리케이션 캐시 ¶
- 웹 어플리케이션을 오프라인에서도 사용할 수 있도록 리소스를 클라이언트 쪽에 캐시하기 위한 기능.
- 리소스
- 웹 어플리케이션을 구성하는 HTML 파일이나 CSS, JavaScript, 이미지 파일 등 URL을 지정하여 브라우조로 액세스하는 파일.
- 어플리케이션 캐시를 이용하면 웹 어플리케이션에 있어 필수적인 리소스는 캐시 매니페스트에 기록하여 브라우저에 의해 자동으로 캐시되게 한다.
- 캐시 매니페스트
- 캐시해야 할 리소스를 브라우저에 전달하는 텍스트 파일.
- 확장자는 '.manifest'로 지정하는 것이 관례이다.
- 브라우저에 의해 다운로드되는 파일이므로 웹 서버에서 공개할 필요가 있다.
- 'text/cache-manifest'라는 MIME 타입으로 배포되도록 설정해야 한다.
- Ex) Apache HTTP Server에서 설정할 때는 mime.types 파일을 수정하면 된다.
- 캐시 매니페스트의 URL을 html 요소의 manifest 속성에 지정해야 한다.
3. 캐시 업데이트 ¶
- 업데이트 체크 시 많은 양의 네트워크 리소스를 소비하므로 어플리케이션 캐시는 모든 리소스에 대해 업데이트를 체크하는 것이 아니라 캐시 매니페스트만을 체크한다.
- 업데이트 체크는 캐시된 웹 어플리케이션에 사용자가 액세스할 때 이루어진다. 혹은
- JavaScript API를 이용하여 명시적으로 체크할 수 있다.
- (p247 11.2 그림 삽입)
- text/cache-manifest 타입으로 배포해야 한다.
- 문자 인코딩은 UTF-8이어야 한다.
- 줄 바꿈 코드는 '\r\n', '\n', '\r' 모두 사용할 수 있다.
- 첫 줄은 'CACHE MANIFEST'라는 문자열로 시작해야 한다.
- '#'로 시작하는 행은 주석이다.
- 각 항목은 줄 바꿈으로 구분된다.
- 상대 경로를 이용할 때는 매니페스트를 기준으로 하여 URL를 표시한다.
- 모든 URL은 메인 페이지와 같은 도메인에 소속되어야 한다.
- 'CACHE', 'FALLBACK', 'NETWORK' 섹션이 있다.
- 섹션을 시작하려면 섹션 이름에 콜론(:)을 붙인 다음 줄을 바꾼다.
- 섹션 범위는 다른 섹션을 시작할 때 까지이다.
- 하나의 파일 안에 같은 섹션을 여러번 등록할 수 있다.
- 섹션을 명시적으로 지정하지 않으면 기본값으로 'CACHE' 섹션이 된다.