강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

hihiwwg님의 프로필 이미지
hihiwwg

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

검증 헤더와 조건부 요청2

강의 수강 중 궁금한 점이 생겼습니다

작성

·

232

1

1. ETag를 통해 데이터가 변경됐는지를 비교한다고 하셨는데 그 비교는 누가 하는건가요??? 서버쪽에서 ETag 헤더를 가져와서 비교하는 작업을 개발자가 직접 해야하는 것인가요??

2. 저는 요청이 클라이언트 -> 서버 라고 생각을 했는데 강의를 들으면서 이해한 것으로는 클라이언트 -> 웹 브라우저 -> 서버라는 생각이 들었습니다. 제대로 이해한 것이 맞을까요??

3. 304 Not Modified 상태코드를 받으면 브라우저가 알아서 캐시 저장소에서 데이터를 클라이언트로 보내주는 것인가요??? 아니면 클라이언트가 따로 작업을 해줘야하는 것인가요??

답변 1

5

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. hihiwwg님

1. ETag를 통해 데이터가 변경됐는지를 비교한다고 하셨는데 그 비교는 누가 하는건가요??? 서버쪽에서 ETag 헤더를 가져와서 비교하는 작업을 개발자가 직접 해야하는 것인가요??

->네 서버에서 직접 비교해야 합니다. 그런데 보통 정적 리소스의 경우 웹 프레임워크나 웹 서버들이 기본으로 제공합니다.

2. 저는 요청이 클라이언트 -> 서버 라고 생각을 했는데 강의를 들으면서 이해한 것으로는 클라이언트 -> 웹 브라우저 -> 서버라는 생각이 들었습니다. 제대로 이해한 것이 맞을까요??

-> 웹 브라우저가 바로 클라이언트 입니다. 클라이언트는 요청하는 곳, 서버는 해당 요청을 받는 곳으로 이해하시면 됩니다.

3. 304 Not Modified 상태코드를 받으면 브라우저가 알아서 캐시 저장소에서 데이터를 클라이언트로 보내주는 것인가요??? 아니면 클라이언트가 따로 작업을 해줘야하는 것인가요??

-> 네 보통 웹 브라우저들은 해당 기능을 다 구현해둡니다. 따라서 별도의 작업은 필요하지 않습니다.

감사합니다.

안녕하세요.

etag 관련 질문을 하려다가 비슷한 질문이 있는지 보고 찾다가 이 곳으로 오게 되었습니다. 1번이 비슷한 질문이라 추가 질문 드립니다.

서버 개발 시 etag관련해서 필터로 구현할 것 같은데 필수로 관련 로직( ShallowEtagHeaderFilter 사용 등 )을 구현을 해주는지 궁금합니다.

만약 구현되어 있지 않다면 무조건 200으로 리턴을 해주는지도 궁금합니다.

감사합니다.

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. jhc님

정적 리소스는 대부분 외부 서버에서 별도로 관리되기 때문에 서버에서 etag로 구현하는 일은 거의 없습니다. 필요하면 말씀하신 로직을 적용해야 할 것 같아요.

구현되어 있지 않으면 200으로 데이터를 내려야 합니다.

감사합니다.

보통은 이미지 서버가 따로 있어서 거기에서 관련 내용을 수행하는 것으로 이해했습니다.

정확하게 답변해 주셔서 감사합니다!

hihiwwg님의 프로필 이미지
hihiwwg

작성한 질문수

질문하기