상태 코드 - 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!
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 운영체제
      • 네트워크
      • 클라우드
      • 서버
        • Container
      • 보안
      • 프로그래밍
        • 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_침해사고분석
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바