2026, 새로운 도약을 시작합니다.

rss.php 에서 갱신여부 요청시 응답해주기

If-Modified-Since (혹은 If-Unmodified-Since) 나 ETag를 이용해서 rss의 갱신여부를 문의하는 rss리더기를 위해 우선 If-Modified-Since 를 지원하는 방법입니다.
ETag를 지원하려면 디스크에 고유값을 생성해서 저장하고 같이 비교해야겠네요
(동적으로 rss문서를 생성하는 구조상 db나 디스크에 고유값을 저장해야되기에 이부분은 개인판단 및 응용으로 돌립니다..)

약간이나마 네트워크 부하 줄이기에 도움이 되길 바랍니다..


rss.php 의 28라인 부분에 추가합니다.

// 비회원 읽기가 가능한 게시판만 RSS 지원
if (($row[bo_read_level] >= 2) || ($row[ bo_use_search] != '1')) {
    echo "RSS를 지원하지 않는 게시판입니다."; //<br> 읽기권한:{$row[bo_read_level]} 검색여부:{$row[ bo_use_search]}";
    exit;
}

//추가부분
//최신글 테이블($g4[board_new_table])에서  해당 게시판의 최신글 게시 시간을 읽어온다.
//bo_table 필드에 인덱스 걸어두면 좋겠죠.
$sql = "select max(bn_datetime) as maxtime from  $g4[board_new_table] where bo_table='$bo_table' ";
$row = sql_fetch($sql);
$modified_time = strtotime($row['maxtime']);

// If-Modified-Since 처리
if ($_SERVER['HTTP_IF_MODIFIED_SINCE']) {
      $if_modified_since = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']);
      if ($if_modified_since >= $modified_time) {
            header("HTTP/1.1 304 Not Modified");
            header("Last-Modified: " . date('r', $modified_time));
            exit();
      }
}

// If-Unmodified-Since 처리
if ($_SERVER['HTTP_IF_UNMODIFIED_SINCE']) {
      $if_modified_since = strtotime($_SERVER['HTTP_IF_UNMODIFIED_SINCE']);
      if ($if_modified_since < $modified_time) {
            header("HTTP/1.1 412 Precondition Failed"); // 412 Precondition Failed
            header("Last-Modified: " . date('r', $modified_time));
            exit();
      }
}
//추가 부분 끝
|

댓글 2개

볼드체 자체 방지 위원회
If-Modified-Since

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

자유게시판

번호 제목 글쓴이 날짜 조회
공지 1주 전 조회 457
200420 어제 조회 41
200419 2일 전 조회 89
200418 3일 전 조회 64
200417 4일 전 조회 107
200416 5일 전 조회 83
200415 6일 전 조회 133
200414 6일 전 조회 157
200413 6일 전 조회 68
200412 6일 전 조회 168
200411 6일 전 조회 133
200410 6일 전 조회 160
200409 6일 전 조회 91
200408 1주 전 조회 97
200407 1주 전 조회 194
200406 1주 전 조회 116
200405 1주 전 조회 233
200404 1주 전 조회 182
200403 1주 전 조회 291
200402 1주 전 조회 202
200401 1주 전 조회 150
200400 1주 전 조회 222
200399 1주 전 조회 162
200398 1주 전 조회 238
200397 1주 전 조회 126
200396 1주 전 조회 129
200395 1주 전 조회 104
200394 1주 전 조회 90
200393 1주 전 조회 126
200392 1주 전 조회 267
200391 1주 전 조회 188
🐛 버그신고