마이의 개발 블로그

[HTTP] 응답코드 200 대신 304가 뜨는 이유 (브라우저 캐싱) 본문

개발지식/Web

[HTTP] 응답코드 200 대신 304가 뜨는 이유 (브라우저 캐싱)

개발자마이 2023. 2. 1. 11:06
반응형

상황

서버에게 동일한 요청을 보낼 때 별다른 변화나 문제가 없음에도 응답코드가 200이 아닌 304로 표기되는 경우가 있습니다.

응답코드 304(Not Modified)가 리턴되는 이유

300번대 코드들은 요청된 자원에 대한 리디렉션을 의미하는데, 그 중에서도 304는 'Not Modified'로, 요청한 자원에 대해 변경된 사항이 없으므로 캐시되어있는 자원으로 리디렉션 하겠다는 의미를 갖습니다. 즉, 브라우저로부터의 최초 요청 시에는 200번 응답을 받지만 이후에 자원에 변화가 없다면 일정 시간 동안은 304번 응답을 받게되는 것입니다.

 

현재 개발중인 로컬 서버에서 이를 테스트 해보기 위해 시차를 두고 요청을 여러 번 보내며 응답코드를 관찰했습니다. 그 결과 꽤 오랜 시간동안 304번 응답이 유지되는 걸 볼 수 있었는데요, 서버를 재시작한 후에는 다시 200번 응답을 받을 수 있었습니다.

Note

브라우저 캐시의 유효시간 설정과 유효성 검증을 위해서는 cache-control: max-age=시간, Last-Modified를 활용하거나, ETag를 활용하는 방법 등이 있습니다.

반응형
Comments