Skip to content
Jeongkyu Shin edited this page Sep 24, 2012 · 1 revision
  • Etag는 브라우저에 캐시되어 있는 파일을 사용할 수 있도록 확인하는 작업에 사용되는 HTTP 규약입니다. ( http://en.wikipedia.org/wiki/HTTP_ETag )

  • Textcube에서 Etag는 javascript, css, image 등 일반 파일에 대한 접근에 대해 이루어 집니다.

  • 리소스에 대한 Etag를 생성하는 규칙은 대개 filesystem 정보만으로 이루어집니다. 따라서, 텍스트큐브에서도 stat을 구한뒤 얻어지는 size와 modified 값만으로 다음과 같이 만듭니다.

    $etag = sprintf( "textcube-%x", (0x1234*$fs['size'])^$fs['mtime'] ) );

  • i-node, rdev 정보등을 추가하여 섞지 않은 이유는 두 대 이상의 웹서버가 Network filesystem에 의해 공유되는 파일시스템상에 있는 파일을 접근할 경우 각 서버마다 달라질 수 있기 때문입니다.

  • [/browser/trunk/lib/function/misc.php] 파일에 구현되어 있으며, 함수는 dumpWithEtag 입니다.

  • headerEtag 를 이용할 경우, 비단 파일 시스템상에 존재하지 않는 URI에 대한 출력도 브라우저캐시를 이용할 수 있습니다.

Clone this wiki locally