Cache-Control 캐시 지시어(directives) - 확실한 캐시 무효화 • Cache-Control: no-cache • Cache-Control: no-stor • Cache-Control: must-revalidate • Pragma: no-cache Cache-Control: no-cache Cache-Control: no-cache는 데이터를 캐시해도 되지만, 매번 원 서버에 검증하고 사용해야 한다는 뜻이다.. 이는 캐시를 사용하면서 최신 데이터를 보장하기 위한 방법 중 하나이다. 이름에서도 알 수 있듯이, "캐시하지 말고 매번 새로 가져와라"는 의미를 가진다. Cache-Control: must-revalidate Cache-Control: must-revalidate는 캐시된 데이터..
캐시 제어 헤더(Cache Control Headers) 웹 캐시가 캐시된 리소스를 어떻게 처리할지를 지정하는 HTTP 헤더이다. 이 헤더는 웹 캐시가 HTTP 요청 및 응답을 처리할 때 사용된다. Cache-Control 캐시 지시어(directives) Cache-Control은 HTTP 헤더 중 하나로, 캐시 제어에 사용된다. 이 헤더는 캐시에 대한 지시어(directives)를 제공하여 캐시의 동작을 제어한다. • Cache-Control : max-age 캐시의 유효 시간을 초 단위로 설정하며. 이를 통해 캐시된 데이터가 언제까지 유효한지 설정할 수 있다. • Cache-Control : no-cache 데이터를 캐시해도 되지만, 항상 원 서버에 검증하고 사용해야 한다는 것을 나타내며. 이를 통..
캐시초과 이후 캐시 시간 초과 후에도 서버 데이터가 변경되지 않았는지 확인하기 위해서는 검증 헤더와 조건부 요청을 사용할 수 있다. 검증 헤더는 서버에서 클라이언트로 전송되는 헤더 정보 중 하나로, 해당 데이터가 변경되었는지 확인할 수 있는 정보를 담고 있다. 조건부 요청은 클라이언트가 서버에게 데이터가 변경되었는지 확인하기 위해 검증 헤더를 함께 보내는 요청 방식이다. 검증 헤더 검증 헤더는 캐시 데이터와 서버 데이터가 같은지 검증하는 데이터를 말하며, Last-Modified와 ETag가 대표적인이고, 조건부 요청 헤더는 검증 헤더를 기반으로 조건에 따른 분기를 수행하는데, If-Modified-Since와 If-None-Match가 대표적이다. 검증 헤더와 조건부 요청 - If-Modified-Si..
캐시 HTTP 캐시는 웹 브라우저나 프록시 서버 등에서 웹 서버로부터 받은 리소스를 저장하고 재사용하는 메커니즘이다. 이를 통해 웹 페이지 로딩 속도를 빠르게 할 수 있다. 캐시 미적용 캐시 미적용 문제점 • 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 데이터가 변경되지 않은 경우에도 매번 서버로부터 데이터를 다운로드 받아야 하므로, 불필요한 네트워크 부하가 발생한다. • 인터넷 네트워크는 매우 느리고 비싸다. 네트워크 대역폭이 제한적이고, 인터넷 연결 비용이 들어가기 때문에 불필요한 데이터 전송은 시간과 비용 낭비로 이어진다. • 브라우저 로딩 속도가 느리다. 데이터를 다운로드하는 데 많은 시간이 소요되므로, 웹 페이지의 로딩 속도가 느려지게 된다. • 느린 사용자 ..
쿠키 쿠키(Cookie)는 서버에서 클라이언트(웹 브라우저)로 전송되어 클라이언트에 저장되는 작은 데이터 조각이다. 쿠키를 사용하면 웹 사이트는 사용자의 상태를 유지하고 사용자의 선호도, 로그인 정보, 장바구니 내용 등을 저장할 수 있다. 쿠키는 Set-Cookie라는 HTTP 응답 헤더를 사용하여 서버에서 클라이언트로 전달된다. 클라이언트는 서버에서 받은 쿠키를 Cookie을 저장하고, 그 후에 클라이언트가 같은 서버로 다시 요청을 보낼 때마다 해당 쿠키를 서버로 전달한다. 쿠키는 클라이언트에 저장되므로 서버가 클라이언트에서 쿠키를 읽을 수 있다. 이러한 이유로 쿠키는 사용자가 로그인한 세션을 유지하고 광고 추적 등에 사용할 수 있다. 그러나 쿠키 정보는 항상 서버에 전송되기 때문에 네트워크 트래픽을 ..
일반 정보 From - 유저 에이전트의 이메일 정보 유저 에이전트의 이메일 정보는 "From" 헤더를 통해 전송되고, 이메일 주소가 공개되는 것을 방지하기 위해, 대부분의 클라이언트는 이메일 주소를 숨기는 방법을 사용한다. 이메일 주소 대신 유저 에이전트의 이름이나 별명 등이 표시된다. Referer - 이전 웹 페이지 주소 Referrer는 이전 웹 페이지 주소를 나타낸다. 즉, 현재 요청된 페이지로 이동하기 이전에 방문했던 웹 페이지의 주소를 의미한다. 이전 페이지에서 링크를 클릭하거나, URL을 직접 입력하거나, 검색 결과에서 클릭하거나 등의 방법으로 현재 페이지로 이동하게 되는데, 이때 이전 웹 페이지 주소는 HTTP 요청(Request) 메시지의 "Referer" 헤더를 통해 전송된다. 예를 들..
단순 전송 Content-Length Content-Length은 HTTP 요청 본문 또는 응답 본문의 크기를 나타내는 헤더로, 본문의 크기를 알려줌으로써 수신측이 전송할 데이터의 양을 미리 예측하여 처리할 수 있도록 돕는다. 압축전송 Content-Encoding Content-Encoding은 HTTP 응답의 콘텐츠를 압축하여 전송하는 방법을 지정한다. 이 헤더는 클라이언트가 응답을 받기 전에 서버가 응답 데이터를 압축한 것인지 여부를 알리는 데 사용된 서버와 클라이언트 간의 네트워크 대역폭을 줄이는 데 유용하다. 또한 브라우저에서 캐시될 때 콘텐츠의 크기를 줄이므로 웹 페이지의 로딩 속도를 높일 수 있다. 그러나 압축 된 데이터를 전송하는 것은 CPU와 메모리를 많이 사용하므로 서버 측에서 압축에 ..
협상(콘텐츠 네고시에이션) - 클라이언트가 선호하는 표현 요청 협상(콘텐츠 네고시에이션)은 클라이언트와 서버 간의 요청/응답 과정에서 사용되는 기술로, 클라이언트가 선호하는 콘텐츠 형식(미디어 타입), 문자 인코딩, 압축 인코딩, 자연 언어 등을 서버와 협상하여 최종적으로 전송되는 콘텐츠의 형식을 결정하는 것이다. 클라이언트가 선호하는 콘텐츠 형식을 서버에게 전달하기 위해서는 다음과 같은 협상 헤더를 요청에 포함시켜야 한다. Accept : 클라이언트가 선호하는 미디어 타입 전달 Accept-Charset : 클라이언트가 선호하는 문자 인코딩 Accept-Encoding : 클라이언트가 선호하는 압축 인코딩 Accept-Language : 클라이언트가 선호하는 자연 언어 협상 헤더는 요청 시에만 사용되며..