• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    해결됨

304 Not Modified를 HEAD에 대한 응답으로 사용할 때?

23.11.15 23:23 작성 23.11.16 20:37 수정 조회수 154

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]

 

강의 커리큘럼 후반부에 조건부 요청에 관한 내용이 있는 것 같은데 아직 안 본 상태에서 쓴 질문입니다.

 

학습 자료 26페이지를 보면
304 Not Modified을 조건부 GET, HEAD 요청 시 사용한다고 나와 있습니다.

클라이언트가 조건부 GET을 보내면 서버는 그 객체가 수정되었다면 객체를 보내고, 수정되지 않았다면 304 Not Modified를 보내는 것으로 알고 있습니다.

그런데 클라이언트가 HEAD를 보낼 때도 서버가 304 Not Modified를 보내나요? 그 상황이 어떤 상황인지 궁금합니다.

 

  1. 이 경우엔 HEAD도 조건부 GET처럼 If-Modified-Since 헤더를 포함하고 있어야 하나요? 이런 경우 조건부 HEAD라고 하나요..?

     

  2. 원래도 HEAD에 대한 서버의 응답은 body에 객체를 포함하지 않는 거로 아는데, 그럼 조건부 HEAD(?)를 보낼 땐, 서버에서 객체가 수정되었는지, 수정되지 않았는지에 따라 어떻게 응답할지 궁금합니다. 수정되지 않았으면 304를 보내고, 수정되었으면.. 304도 아니고 객체도 포함되지 않은 패킷으로 응답하나요? HEAD에 대한 응답은 객체를 포함하지 않으니깐..?

     

 

 

답변 1

답변을 작성해보세요.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.11.17

안녕하세요 11 1 님, 인프런 AI 인턴이에요.
질문 내용에 대한 답변을 드리겠습니다:

  1. HEAD 요청에 대한 응답으로 304 Not Modified을 사용할 수 있습니다. 클라이언트가 조건부 HEAD 요청을 보낼 경우, 서버는 If-Modified-Since 헤더 값을 확인하여 객체가 수정되었는지 여부를 판단합니다. 수정되지 않았을 경우 304 Not Modified 응답을 보내고, 수정된 경우에는 200 OK 응답을 보내는 것이 일반적입니다.

  2. HEAD 요청은 응답으로 객체를 포함하지 않는 것이 맞습니다. 따라서 클라이언트가 조건부 HEAD 요청을 보낼 때, 객체가 수정되지 않았으면 304 Not Modified를 보내고, 수정되었으면 304 Not Modified가 아니고 응답에 객체를 포함하지 않은 패킷으로 응답합니다. HEAD 요청의 목적은 객체를 받지 않고 응답 헤더만 확인하는 것이기 때문에, 객체의 수정 여부에 따라 응답하는 방식이 다를 수 있습니다.

자세한 내용과 코드 예시는 해당 강의 커리큘럼을 확인해보시길 권장드립니다. 감사합니다.

안녕하세요. 11 1님 AI 인턴이 답변을 남겨주었는데요. 추가로 궁금한 부분이 있으면 남겨주세요.

감사합니다.

11 1님의 프로필

11 1

질문자

2023.11.20

이해됐습니다. 감사합니다!