상태 코드 - 304 Not Modified

2025. 5. 27. 11:21·네트워크
728x90
반응형

리다이렉션 코드 종류

  • 리다이렉션 상태 코드 중 몇몇은 리소스에 대한 애플리케이션의 로컬 복사본이 원래 서버와 비교했을 때 유효한지 확인하기 위해 사용됨
  • 300(Multiple Choices) : 클라이언트가 동시에 여러 리소스를 가리키는 URL을 요청한 경우, 그 리소스의 목록과 함께 반환
  • 301(Moved Permanetly) : 요청한 URL이 옮겨졌을 때 사용. 응답은 Location 헤더에 현재 리소스가 존재하고 있는 URL을 포함해야 함
  • 302(Found) :  301 상태코드 같음. 클라이언트는 Location 헤더로 주어진 URL 리소스를 임시로 가리키기 위한 목적으로 사용
  • 304(Not Modified) : 요청한 리소스가 이전과 비교했을 때 변경되지 않았음을 의미 

304 코드 의미

  • 요청한 리소스가 이전과 비교했을 때 변경되지 않았음을 의미
  • 캐싱 최적화를 위한 코드
  • If-Modified-Since, If-None-Match 를 사용
  • 클라이언트에 응답을 보낼 때 Body를 전달하지 않음
    • 이유는 클라이언트는 이미 가지고 있는 데이터를 재사용하기 때문

If-Modified-Since 의미

  • 특정 날짜이후에 변경된 리소스가 있는 확인하기 위한 헤더
  • 클라이언트 요청
GET /style.css HTTP/1.1
If-Modified-Since: Tue, 21 May 2024 10:00:00 GMT

 

  • 서버 응답
HTTP/1.1 304 Not Modified
  • 위와 같이 변경된 것이 없으면 본문(Content-Length)가 없으며, 클라이언트는 자신의 캐시된 리소스를 사용

If-None-Match 의미

  • ETag를 이용해서 리로스 변경 여부를 판단하는 헤더
    • ETag는 Entity Tag의 줄임말로 리소스의 고유 식별자를 뜻 함
ETag: "abc123xyz"
  • 클라이언트는 이전에 받은 리소스의 ETag값을 저장 후 다음 요청 시 If-None-Match값을 담아 보내고 서버는 ETag가 동일한지 비교한 후 변경 여부를 판단
  • 클라이언트 ETag 요청
GET /image.png HTTP/1.1
Host: example.com
If-None-Match: "abc123xyz"
  • 서버 응답
HTTP/1.1 304 Not Modified
  • 본문은 없으며, 클라이언트는 캐시된 리소스(여기서는 이미지)를 재사용함

If-Modfied-Since vs If-None-Match

기준 마지막 수정 시간 (Last-Modified) ETag (고유 식별자)
정확도 시간 단위 (초)라서 다소 부정확할 수 있음 바이트 단위로 변경 감지 가능
장점 구현이 간단함 정밀한 변경 감지
우선순위 HTTP/1.1에서는 If-None-Match가 우선시됨 If-Modified-Since보다 우선

어떤 것 헤더를 더 많이 사용하는가?

  • 보통은 둘 중 하나만 사용
  • 둘 다 있을 경우 If-None-Match가 더 정확하기에 우선시 됨
728x90
반응형

'네트워크' 카테고리의 다른 글

[스위치 동작 방식] Frame Forward 방식(스위치 동작 방식)  (1) 2025.05.28
HTTP 버전 프로토콜에 따른 기능 차이  (0) 2023.10.25
"이 사이트 보안 인증서에 대한 해지 정보를 사용할 수 없습니다" 해결방법  (0) 2023.03.03
HTTP Version  (0) 2022.08.29
HTTP method type (GET, HEAD, POST, PUT, DELETED, CONNECT, TRACE)  (0) 2022.08.18
'네트워크' 카테고리의 다른 글
  • [스위치 동작 방식] Frame Forward 방식(스위치 동작 방식)
  • HTTP 버전 프로토콜에 따른 기능 차이
  • "이 사이트 보안 인증서에 대한 해지 정보를 사용할 수 없습니다" 해결방법
  • HTTP Version
Royal!
Royal!
Bachelor of Arts. Bachelor of Science in Engineering. Master of Science in Engineering (In Progress). Job Title: Infrastructure & Security & Cloud Engineer. Etc: Mentor at Fourth Industrial Revolution Center.
  • Royal!
    Security
    Royal!
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 운영체제
      • 네트워크
      • 클라우드
      • 서버
        • Container
      • 보안 N
      • 프로그래밍
        • Python_혼자 끄적끄적
        • Python_AI(영상처리)
        • 빅데이터
        • C_정보올림피아드 Language_Coder
        • C_QnA
      • 자격증
        • 정보보안기사
        • 정보처리기사
        • ADsP
        • CPPG
        • 보안법률
        • NCA~NCP
        • AWS Certified Solutions Arc..
      • 기타
        • 면접일지
        • 기타 활동
        • 인턴활동
        • 논문 요약
        • Hackerschool FTZ
        • 리버싱 걸음마
      • 기타 교육
        • KISA 정보보호제품실습군
        • 빅데이터_분석실무
        • 시큐어코딩진단전문교육(호남정보보호센터)
        • SW테스트 전문가 과정(ISTQB CTFL자격)
        • 정보보호 컨설팅 전문가 양성과정
        • K-Shield Jr_악성코드분석
        • K-Shield Jr_침해사고분석
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    F5 AWAF
    openstack F5연동
    SSRF 막는 방법
    openstack lbaas
    nce dump
    openstack LBaaS설치
    네이버클라우드 ftp 설정
    fragment-free
    F5 SSRF
    switch forwarding mode
    2025블록체인누리단
    ICT이노베이션스퀘어
    SSRF 방어방법
    swtich frame
    SSRF란
    F5 WAF
    스위치 프레임 동작 방식
    l2 스위치 프레임 전달 방식
    ai
    지그립토
    SSRF 완화방법
    WAF SSRF
    블록체인누리단
    블록체인체험
    openstack설치
    nce덤프
    LBaaS설치
    F5 LBaaS
    우수교육생
    LBaaS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Royal!
상태 코드 - 304 Not Modified
상단으로

티스토리툴바