U E D R , A S I H C RSS

html5/offline-web-application (rev. 1.4)

html5/offline-web-application


1. 오프라인 웹 어플리케이션

  • 네트워크에 연결되어 있지 않아도 동작하는 어플리케이션.
  • 스마트폰이나 넷북 등의 모바일 웹 단말기에서 네트워크 상태와 관계없이 계속 사용할 수 있다.
  • 클라이언트에 캐시된 리소스를 사용하여 동작한다.
    • 어플리케이션의 응답성이 좋다.
    • 네트워크 접속이 줄어든다.
    • 전원 관리에도 유리하다.

2. 어플리케이션 캐시

  • 웹 어플리케이션을 오프라인에서도 사용할 수 있도록 리소스를 클라이언트 쪽에 캐시하기 위한 기능.
  • 리소스
    • 웹 어플리케이션을 구성하는 HTML 파일이나 CSS, JavaScript, 이미지 파일 등 URL을 지정하여 브라우조로 액세스하는 파일.
  • 어플리케이션 캐시를 이용하면 웹 어플리케이션에 있어 필수적인 리소스는 캐시 매니페스트에 기록하여 브라우저에 의해 자동으로 캐시되게 한다.
  • 캐시 매니페스트
    • 캐시해야 할 리소스를 브라우저에 전달하는 텍스트 파일.
    • 확장자는 '.manifest'로 지정하는 것이 관례이다.
    • 브라우저에 의해 다운로드되는 파일이므로 웹 서버에서 공개할 필요가 있다.
    • 'text/cache-manifest'라는 MIME 타입으로 배포되도록 설정해야 한다.
      • Ex) Apache HTTP Server에서 설정할 때는 mime.types 파일을 수정하면 된다.
    • 캐시 매니페스트의 URL을 html 요소의 manifest 속성에 지정해야 한다.

      • <!DOCTYPE html>
        <html manifest="hello.manifest">
        ...
        </html>
        

3. 캐시 업데이트

  • 업데이트 체크 시 많은 양의 네트워크 리소스를 소비하므로 어플리케이션 캐시는 모든 리소스에 대해 업데이트를 체크하는 것이 아니라 캐시 매니페스트만을 체크한다.
  • 업데이트 체크는 캐시된 웹 어플리케이션에 사용자가 액세스할 때 이루어진다. 혹은
  • JavaScript API를 이용하여 명시적으로 체크할 수 있다.
  • (p247 11.2 그림 삽입)

4. 캐시 매니페스트

4.1. 규칙

  • text/cache-manifest 타입으로 배포해야 한다.
  • 문자 인코딩은 UTF-8이어야 한다.
  • 줄 바꿈 코드는 '\r\n', '\n', '\r' 모두 사용할 수 있다.
  • 첫 줄은 'CACHE MANIFEST'라는 문자열로 시작해야 한다.
  • '#'로 시작하는 행은 주석이다.
  • 각 항목은 줄 바꿈으로 구분된다.
  • 상대 경로를 이용할 때는 매니페스트를 기준으로 하여 URL를 표시한다.
  • 모든 URL은 메인 페이지와 같은 도메인에 소속되어야 한다.

4.2. 섹션

  • 'CACHE', 'FALLBACK', 'NETWORK' 섹션이 있다.
  • 섹션을 시작하려면 섹션 이름에 콜론(:)을 붙인 다음 줄을 바꾼다.
  • 섹션 범위는 다른 섹션을 시작할 때 까지이다.
  • 하나의 파일 안에 같은 섹션을 여러번 등록할 수 있다.
  • 섹션을 명시적으로 지정하지 않으면 기본값으로 'CACHE' 섹션이 된다.

4.2.1. CACHE 섹션

4.2.2. FALLBACK 섹션

4.2.3. NETWORK 섹션

5. API와 이벤트

6. TIPS

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:40
Processing time 0.0505 sec