목록전체 글 (31)
가능세계

웹 브라우저에 URL을 입력하고 Enter 키를 입력하면 어떻게 될까요? 단계별로 살펴봅시다. 1. 웹 브라우저는 캐싱된 DNS 기록을 확인해 도메인에 대응되는 IP 주소가 있는지 검색합니다. 있다면 캐싱된 IP 주소를 반환합니다. 2. 캐싱된 IP 주소가 없다면, 브라우저는 DNS 서버를 조회하여 도메인 명에 해당하는 서버의 IP 주소를 찾습니다. 3. IP 주소가 확인되면 브라우저는 서버와의 TCP/IP 연결을 시작합니다. 이때, 신뢰할 수 있는 3-way handshake 과정을 거칩니다. 4. TCP/IP 연결이 이루어지면, 웹 브라우저가 서버에게 웹 사이트의 콘텐츠를 보내달라는 HTTP 요청을 전송합니다. 5. 메시지를 받은 서버는 요청을 처리하고 클라이언트에게 전송할 응답을 생성합니다. 6. ..

1. 캐시 무효화가 필요한 이유는 무엇인가요? 캐시 무효화는 캐시에서 데이터를 제거하여 캐시를 무효화하는 프로세스입니다. 왜 캐시 무효화 전략이 필요한 것일까요? 그 이유는 다음과 같습니다. 웹 브라우저가 GET 요청을 받을 경우 캐시 헤더 없이도 최적화를 위해 임의로 캐싱을 합니다. 리소스의 캐시 유효 기간을 장기간으로 설정해 오래된 정보가 표시되는 경우가 있을 것입니다. 이 경우 해당 캐시를 무효화하여 업데이트된 데이터가 반영되도록 해야 합니다. 그러나 캐시 저장소의 복사본에 갱신이 필요해도 기본적으로 브라우저는 캐시 유효 기간이 끝나야 캐시 유효성 검증을 서버에게 요청합니다. 2. 캐시 무효화 헤더와 캐시 지시어 2-1. 캐시 무효화 헤더 Cache-Control: no-cache, no-store..

1. 프록시(Proxy)란 무엇인가요? 프록시(Proxy)는 클라이언트와 원 서버 사이의 중개자로서, 원 서버를 대신하여 클라이언트의 요청을 해석하고 응답합니다. 이 프록시를 캐시 서버로 이용할 수 있습니다. 2. 프록시 캐싱(Proxy Caching)이란 무엇인가요? 프록시 캐싱은 프록시 서버 자체에 콘텐츠를 저장하여 웹 서비스가 해당 리소스를 더 많은 사용자와 공유할 수 있도록 하는 프록시 서버의 기능입니다. 3. 프록시 캐싱은 어떻게 작동하나요? 프록시 캐시 서버는 클라이언트와 원 서버 사이의 중개자 역할을 하며 서버의 리소스를 저장(캐싱)합니다. 예를 들어, 한국에 프록시 캐시 서버를 두고 최초 요청 시에만 미국 원 서버에 도달해 리소스를 받아옵니다. 그리고 리소스를 프록시 캐시 서버에 저장하여 ..

사용자가 동일한 웹 사이트를 다시 방문할 때, 캐시 제어는 필요한 리소스를 캐시에서 가져올 것인지, 아니면 리소스 요청을 다시 서버로 보내야 하는지를 결정하는 규칙을 설정합니다. 클라이언트 요청 및 서버 응답 헤더에는 캐시 제어를 위한 지시어(directives)라는 것이 있습니다. Cache-Control: 캐시 제어 Pragma: 캐시 제어(하위 호환) Expires: 캐시 유효 기간 지정(하위 호환) 1. Cache-Control Cache-Control 헤더는 요청과 응답 헤더로 사용하며, 이를 통해 리소스를 캐싱(데이터를 캐시에 저장하는 행위)하는 방법을 지시할 수 있습니다. 예를 들어, "클라이언트-중개 서버-원 서버"와 같은 구조인 경우, 중개 서버에 있는 캐시를 가져오지 않도록 하려면 요청..

네트워크를 통해 리소스를 가져오는 과정은 느리며 비용이 많이 듭니다. 동일한 이미지를 반복해서 요청하면 데이터를 다시 다운로드해야 하므로 웹 사이트의 로딩 속도와 사용자 경험이 저하될 수 있습니다. 이처럼 불필요한 네트워크 요청을 어떻게 피할 수 있을까요? 여기서 HTTP 캐시라는 개념이 등장합니다. 1. 캐시란 무엇인가요? 1-1. 캐시(Cache)와 캐싱(Caching) 캐시(Cache)는 자주 사용되는 데이터를 임시로 복사해 두는 저장소를 의미합니다. 그리고 데이터를 캐시에 저장하는 행위를 캐싱(Caching)이라고 합니다. 캐싱은 주어진 리소스를 저장하고 재사용하여 보다 빠르게 액세스 할 수 있도록 하는 프로세스라고 할 수 있습니다. 1-2. HTTP 캐시 네트워크를 사용하는 웹 환경에도 캐시 개..