HTTP ETag

참조: http://en.wikipedia.org/wiki/HTTP_ETag

ETag는 HTTP 1.1 호환 웹 서버가 반환하는 응답 헤더로 리소스가 변경 됐는지 확인하는데 필요한 정보를 제공합니다. 캐싱 기능이 있는 애플리케이션(ex 브라우저)에서 유용하며, 이 태그를 참조하여 이전에 받았던 ETag와 동일하다면 불필요하게 리소스를 다운로드 하는 작업을 줄일 수 있겠습니다. ETag의 값은 파일 크기와 파일을 수정한 날짜를 기반으로 만들거나 체크섬을 이용한다는군요.

HTTP 헤더 목록에서 다음과 같은 예제를 볼 수 있었습니다.

ETag: 737060cd8c284d8af7ad3082f209582d

Content negotiation

참조: http://en.wikipedia.org/wiki/Content_negotiation

컨텐츠 네고는 사용자가 서버로 어떤 요청을 보낼 때 사용자가 어떤 응답 타입을 선호하는지에 대한 정보도 같이 전달하는 매커니즘입니다. 요청 보낼 때 Accept-Language, Accept-Charset, Accept-Encoding, Accept-Ranges, Accept헤더 정보에 선호하는 응답 관련 정보를 전달하면 됩니다. 서버에서는 이 응답 타입을 보고 해당 형태의 응답을 전달할 수 있습니다.

예1. 불어로 응답을 받고 싶을 때

Accept-Language: fr

예2. 불어와 영어를 모두 받을 수 있지만 불어를 더 선호하며, text/html 형태 응답을 가장 선호하고 모든 text와 image를 받을 수 있다.

Accept-Language: fr; q=1.0, en; q=0.5
Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, image/jpeg; q=0.6, image/*; q=0.5, */*; q=0.1

스프링 웹 플로우 레퍼런스 번역 중에 나온 단어인데 모르는 내용이라 정리해 둡니다.