Ticket #792 (closed enhancement: fixed)

Opened 18 months ago

Last modified 17 months ago

ETag, Modified 정보를 통해 전송량을 최소화

Reported by: coolengineer Owned by: coolengineer
Priority: major Milestone: 1.6
Component: API Version: 1.6
Keywords: Cc: dev@…
Release:

Description

  • HTTP header 중에서 Etag와 Last-Modified 정보를 이용하여 리소스의 전송량을 최소화할 수 있습니다.
  • 이것은 비단 script, css, image 뿐아니라 동적으로 생성되는 정보에도 이용할 수 있을 것입니다.

Change History

  Changed 18 months ago by coolengineer

  • status changed from new to closed
  • resolution set to fixed
  • r5022
  • /wiki/EntityTag 참고

  Changed 18 months ago by inureyes

  • status changed from closed to reopened
  • resolution fixed deleted

dumpWithEtag() 함수에 보니까 get 파라미터로 받은거 file_get_contents로 출력해주는 부분이 있는데, 이걸로 config.php 같은거 읽어올수 있다고 합니다.

  • Reported by crizin

  Changed 18 months ago by crizin

수정하시는김에;

http://myblog.com/plugins/Weather/icons/Many%20Clouds.png?hello=123

위와 같은 URL의 경우 url encoding 문제와 get 파라미터 때문에 stat 에서 파일 정보를 제대로 가져오지 못합니다.

또 파일이 존재하지 않는 경우에 stat 함수가 Warning을 발생시키기 때문에 @를 붙이거나 file_exists 로 미리 체크를 하거나 해야할 것 같습니다

  Changed 18 months ago by coolengineer

  • r5100
  • cache에 대한 접근을 막습니다 backup/1/1.xml 을 접근하는 것 때문입니다.
  • stat 이전에 파일존재를 확인합니다.
  • 확장자 php의 접근을 막습니다.
  • ".." 가 들어간 접근을 막습니다.
  • url decoding을 수행합니다.
  • "?" 앞부분까지만 인식하도록 수정합니다.

follow-up: ↓ 7   Changed 18 months ago by crizin

dumpWithEtag 함수에서

$lastmodified = gmdate("D, j M Y H:i:s ", $fsmtime?) . " GMT";

부분의 실행 결과가

Wed, 31 May 2006 07:17:09 GMT

라서 $cache_hit가 항상 false가 되는 것 같습니다 (GMT 앞에 스페이스가 2칸)

  Changed 18 months ago by inureyes

[5113]

in reply to: ↑ 5   Changed 18 months ago by inureyes

Replying to crizin:

dumpWithEtag 함수에서 $lastmodified = gmdate("D, j M Y H:i:s ", $fsmtime?) . " GMT"; 부분의 실행 결과가 Wed, 31 May 2006 07:17:09 GMT 라서 $cache_hit가 항상 false가 되는 것 같습니다 (GMT 앞에 스페이스가 2칸)

크리진님 직접 커밋하셔도

  Changed 18 months ago by inureyes

  • status changed from reopened to closed
  • resolution set to fixed

  Changed 17 months ago by inureyes

  • status changed from closed to reopened
  • resolution fixed deleted

[5197]

  • [5110] 에서 발생할 수 있는 문제 수정
    • 플러그인들이 cache를 사용하도록 장려합니다

  Changed 17 months ago by inureyes

  • status changed from reopened to closed
  • resolution set to fixed
Note: See TracTickets for help on using tickets.