반응형

304 는 에러가 아닙니다. 정확하게 'HTTP status code' (상태코드) 라고 해야합니다.

http://www.faqs.org/rfcs/rfc2616.html RFC 2616 에 잘 언급되어 있습니다.

 

http://linuxchannel.net/docs/Apache_Quick_Reference_Card.html 이 문서의 끝부분 즈음에 304를 'Not modified'라고 설명되어 있는데, 말그대로 '변경사항이 없음'을 말합니다.

(시간 비교) 이것을 이해하기 위해서는 클라이언트와 서버간의 의사소통 을 약간이라도 이해하고 있어야 합니다.

즉, 클라이언트(대부분 '웹브라우저'라고도 함)가 웹서버에게 어떤 파일을 요청할때, 자신의 HDD 공간에 있는(cached) 파일의 정보, 그러니깐 마지막으로 변경된 시간이나 파일크기 등등의 정보를 포함해서 서버에게 요청합니다.

 

(요청헤더에 붙음) 서버는 클라이언트가 보낸 요청헤더 정보를 보고, 자신의 웹서버에 있는 파일 정보와 비교합니다.

이때 파일 변경시간과 크기등이 서로 같으면 서버는 304 로 응답합니다.

즉 이것은 클라이언트에 있는 파일과 서버에 있는 파일이 서로 같으므로 클라이언트 HDD 에 있는 파일을 사용하라 라는 의미이고 실제로 파일 전송은 이루어지질 않습니다.

 

반대로 파일 변경시간이 서로 틀리거나 파일크기등등이 서로 맞질않으면 이때는 200 응답을 내고 서버는 요청한 파일을 클라이언트에게 전달합니다.

클라이언트는 200 응답코드를 받았으므로 기존의 파일이 있다면 삭제하고 새로운 파일로 대체 또는 캐시하게 됩니다. 대부분 동적인 파일(PHP)은 항상 200 응답을 냅니다.

반면 정적인 HTML 이나 gif, jpg, png, mp3, mpg, asf 등등은 거의 대부분 304로 응답합니다.

 

출처 : http://www.linuxchannel.net/board/read.php?table=qna&no=3948

반응형

'Server' 카테고리의 다른 글

[Apache] XAMPP Apache port error  (0) 2020.07.24

+ Recent posts