[네트워크]Conditional GET

정태규·2023년 4월 11일
0

네트워크

목록 보기
7/19

Contional GET?

클라이언트가 이전에 요청했던 리소스를 다시한번 요청할때, 불필요한 트래픽을 줄이기 위해서 해당 리소스가 변경된 경우에만 다시 보내 달라고 할 수 있다.

클라이언트가 어떤 웹 페이지에 접근했다가, 이후에 다시 접근했을때, 변경된 사항도 없는데 서버가 해당 페이지의 내용을 전송하는 것은 낭비이다.

다시 전송하지 않기 위해 사용하는 헤더가 Last-Modified와 ETag이다.

Last-Modified

  • Last-Modified의 생성 권한은 서버가 갖는다.
  • Last-Modified는 Date보다 시간이 이후이면 안된다. (Date는 문서가 서버에서 만들어진 시간)
  • 서버는 가능한 항상 Last-modified를 보내야 한다.

동작과정

  1. 요청을 보낸다.
  2. 클라이언트에서는 Last-Modified 응답 헤더를 받는다.
  3. 요청에 If-Modified-since(: <date>) 헤더에 캐시된 마지막 수정일을 보낸다.
  4. 서버에서 If-Modified-since 헤더를 보고, 변경 일시가 클라이언트가 알고 있는 것과 같은 경우
    -> 바디가 없다
    5.최근 변경 일시가 클라이언트가 알고 있는 것과 다른 경우
    -> 바디를 준다.
    -> Last-Modified 헤더에 최근 변경 일시 값을 준다.

0개의 댓글