AI 보이는 추론 실험실

AI가 304 응답을 받았다고 문서가 비었다고 판단해도 될까요?

같은 공지를 다시 열었더니 서버는 본문 없이 304를 보냅니다. 브라우저에 남은 사본을 켜고 끄며 AI가 실제로 읽을 수 있는 글을 찾아봅니다.

탐구게시 2026-11-03읽기·실험 약 10분확인 문제 2개규칙 기반 실행한국논리학협회 자체 제작제작·검수 LTCT 편집부

개발자가 모니터에 나란히 띄운 두 문서를 인쇄물과 대조한다. 모니터 앞에 올리가 있다.
한국논리학협회가 학습 장면을 구성한 AI 생성 사진입니다. · 한국논리학협회 · AI 생성
오늘의 질문

어제 읽었던 문서를 다시 요청하자 서버에서 304와 함께 본문이 없는 응답이 왔습니다. AI는 이 문서를 빈 자료로 기록해야 할까요?

ETag 비교에서 같은 판본의 304 응답과 다른 판본의 200 응답으로 이어지는 흐름
ETag 비교에서 같은 판본의 304 응답과 다른 판본의 200 응답으로 이어지는 흐름 · 한국논리학협회 자체 제작
그림 크게 보기 ↗
01

다시 연 공지에서 본문이 오지 않는 까닭

어제 열었던 행사 공지를 오늘 다시 엽니다. 화면에는 어제와 같은 글이 보이는데 통신 기록에는 ‘304 Not Modified’만 있고, 새로 받은 본문은 비어 있습니다. 이 기록을 읽은 AI는 ‘공지에 내용이 없다’고 적어도 될까요?

웹에는 이미 받은 자료를 다시 쓸 수 있는지 묻는 절차가 있습니다. 클라이언트가 조건을 붙여 GET이나 HEAD 요청을 보내고 서버가 그 조건에 따라 304를 돌려주면 응답에는 본문이 실리지 않습니다. 이때 화면에 표시할 글은 앞서 저장한 사본에서 찾습니다.

02

‘행사 일정 A’와 판본표 v1

실습을 열면 브라우저에는 ‘행사 일정 A’와 판본표 v1이 들어 있습니다. ETag는 서버가 자료의 특정 판본을 식별하는 데 쓰는 값입니다. 브라우저는 If-None-Match 헤더에 자신이 가진 값 v1을 넣어 서버에 보냅니다.

서버의 판본도 v1이면 이 예시에서는 상태 304가 돌아옵니다. ‘응답 본문’ 칸에는 새로 온 글이 없어도 ‘표시할 문서’에는 행사 일정 A가 남아 있습니다. AI가 문서 내용에 답하려면 상태 숫자와 함께 어떤 사본을 읽었는지 확인해야 합니다.

03

서버의 판본을 바꾸면

이제 저장한 ETag는 v1로 두고 ‘서버 ETag’만 v2로 바꿔 보세요. 서버의 공지는 ‘행사 일정 B’로 바뀌었습니다. 이전 판본과 일치하지 않으므로 이 실습의 GET 요청에는 200과 새 본문이 돌아옵니다.

두 화면을 나란히 떠올려 보세요. 상태가 304인 화면에서는 저장해 둔 A를 읽었고, 200인 화면에서는 방금 내려받은 B를 읽었습니다. 화면을 채운 글의 출처까지 따라가면 같은 동작처럼 보이던 ‘다시 열기’의 차이가 드러납니다.

04

판본표만 있고 본문을 잃어버렸다면

‘처음 값으로’를 누르고 ‘저장 본문 있음’의 체크를 해제해 보세요. 판본표 v1은 남겨 둔 채 본문만 잃어버린 상황입니다. 서버의 답은 여전히 304지만 이번에는 독자에게 내줄 글이 없습니다.

이 경우에는 조건을 빼고 다시 요청해 본문을 확보할 수 있습니다. AI가 그전에 기록할 수 있는 사실은 ‘판본은 확인했고 본문은 확보하지 못했다’는 데까지입니다. 원래 문서의 길이나 문장은 본문을 얻은 뒤에 확인할 수 있습니다.

직접 확인하기 · 규칙 기반 실행

ETag와 저장본을 바꾸어 304 응답 살피기

저장한 본문과 서버의 판본을 바꾸면 가상의 조건부 GET 요청 결과가 나타납니다.

ETag와 캐시 본문은 별도 정보입니다

실제 네트워크 요청 없이 가상 GET 요청을 계산합니다. 저장 본문을 지워도 ETag는 남겨 두는 불완전한 캐시 상황도 비교합니다.

요청 조건: If-None-Match: "v1"

가상 응답: 304

응답 본문: 없음 — 304 응답에는 콘텐츠를 보낼 수 없습니다.

표시할 문서: 행사 일정 A

저장 본문을 재사용합니다. 새 본문이 없는 응답은 원문이 비었다는 뜻이 아닙니다.

관계를 읽고, 다른 상황에 적용하기

두 문제로 생각 확인

1조건부 GET이 304 Not Modified를 반환한 경우 가장 정확한 설명은?
2304 응답은 왔지만 클라이언트에 저장된 본문이 없다면?

두 문제의 답을 모두 선택하면 해설을 볼 수 있습니다.

나의 설명으로 마무리

오늘 발견한 관계

저장 위치를 확인하고 있습니다…

출처와 제작 안내

원문을 참고해 설명·도표·문항·실험을 새로 작성했습니다. 별도 표시가 없는 사례와 수치는 학습을 위한 가상 예시입니다. 원문 번역이나 실제 모델의 성능 평가 자료가 아닙니다.

  1. RFC 9110, HTTP Semantics, Section 15.4.5—304 Not Modified ↗IETF / HTTP Working GroupRFC 9110, HTTP Semantics, Section 15.4.5—304 Not Modified

    304의 조건부 GET/HEAD 및 저장 표현 재사용을 정한 원문 섹션 확인. 요청·서버판본 v1/v2는 교육용 가상 자료.