웹 캐시
1. 개요
웹 캐시는 웹 콘텐츠의 사본을 저장하여 사용자의 요청에 더 빠르게 응답하도록 돕는 기술이다. 웹 캐시는 포워드 캐시, 리버스 캐시, HTTP 캐시 제어 등 여러 구성 요소를 갖추고 있다. HTTP 캐시 제어는 신선도, 유효성 검사, 무효화 등의 메커니즘을 통해 캐싱을 관리한다. 웹 캐시 소프트웨어로는 ApplianSys CACHEbox, Nginx, Squid 등이 있으며, 서버 측 소프트웨어와 기타 소프트웨어로도 구현된다. 웹 캐싱은 저작권 침해 문제를 야기할 수 있으며, 관련 법규를 준수하여야 한다.
-
캐시 -
HTTP ETag
HTTP ETag는 웹 서버가 리소스의 특정 버전을 식별하기 위해 사용하는 HTTP 응답 헤더 필드로, 클라이언트는 이를 캐시하여 서버에게 리소스 변경 여부를 확인, 불필요한 데이터 전송을 줄이고 캐시 효율성을 향상시킬 수 있지만, 강력한 ETag와 약한 ETag로 구분되며 사용자 추적에 악용될 수 있다. -
캐시 -
Dinero
Dinero IV는 UNIX 계열 운영 체제에서 사용 가능한 시뮬레이션 도구로, 소스포지에서 다운로드 및 설치하여 명령줄을 통해 실행하며, 트레이스 파일을 생성하여 시뮬레이션 과정을 기록한다. -
프록시 서버 -
Microsoft Forefront Threat Management Gateway
마이크로소프트 Forefront Threat Management Gateway (TMG)는 네트워크 보안을 위해 방화벽, VPN, 프록시 서버 기능과 악성 코드 방어, 콘텐츠 필터링 기능을 제공하는 통합 보안 게이트웨이 솔루션이다. -
프록시 서버 -
HTTP ETag
HTTP ETag는 웹 서버가 리소스의 특정 버전을 식별하기 위해 사용하는 HTTP 응답 헤더 필드로, 클라이언트는 이를 캐시하여 서버에게 리소스 변경 여부를 확인, 불필요한 데이터 전송을 줄이고 캐시 효율성을 향상시킬 수 있지만, 강력한 ETag와 약한 ETag로 구분되며 사용자 추적에 악용될 수 있다. -
HTTP -
HTTPS
HTTPS는 HTTP에 보안 기능이 더해진 통신 규약으로, 웹 브라우저와 서버 간 통신을 암호화하여 보안을 강화하지만, 인증서 비용, 서버 부하, 혼합 콘텐츠 문제 등의 단점도 존재한다. -
HTTP -
HTTP 쿠키
HTTP 쿠키는 웹 서버가 사용자 브라우저에 저장하는 작은 텍스트 파일로, 웹 사이트가 방문 기록, 로그인 정보 등을 기억하여 HTTP의 상태 비저장성을 보완하고 세션 관리, 개인 설정, 사용자 추적 등에 활용되지만 개인 정보 보호 및 보안 문제에 대한 논란이 있다.
2. 웹 캐시의 구성 요소
웹 캐시는 크게 포워드 캐시와 리버스 캐시로 구분된다. 포워드 캐시는 웹 서버 네트워크 외부에 위치하며, 웹 브라우저, ISP 등에 존재한다. 리버스 캐시는 웹 서버 앞에 위치하여 요청을 가속화하고 부하를 줄인다. 콘텐츠 전송 네트워크(CDN)가 대표적인 리버스 캐시의 예시이다.
2.1. 포워드 캐시
포워드 캐시는 웹 서버의 네트워크 외부에 위치하며, 예를 들어 클라이언트의 웹 브라우저, ISP, 또는 기업 네트워크 내부에 위치한다. 네트워크를 인식하는 포워드 캐시는 자주 액세스되는 항목만 캐싱한다. 클라이언트와 웹 서버 사이에 위치한 프록시 서버는 HTTP 헤더를 평가하고 웹 콘텐츠를 저장할지 여부를 선택할 수 있다.
2.2. 리버스 캐시
리버스 캐시는 하나 이상의 웹 서버 앞에 위치하여 인터넷으로부터의 요청을 가속화하고 최대 서버 부하를 줄인다. 이는 일반적으로 네트워크 전체의 다양한 지점에 웹 콘텐츠의 사본을 보관하는 콘텐츠 전송 네트워크(CDN)이다.
2.3. HTTP 캐시 제어
하이퍼텍스트 전송 프로토콜(HTTP)은 캐시를 제어하기 위한 세 가지 기본 메커니즘, 즉 신선도, 유효성 검사 및 무효화를 정의한다. 이는 서버에서 보낸 HTTP 응답 메시지의 헤더에 지정된다.
신선도는 원본 서버에서 다시 확인하지 않고 응답을 사용할 수 있도록 하며, 서버와 클라이언트 모두에서 제어할 수 있다. 예를 들어, `Expires` 응답 헤더는 문서가 만료되는 날짜를 제공하고, `Cache-Control: max-age` 지시어는 응답이 얼마나 오랫동안 신선한지를 초 단위로 캐시에 알려준다.
유효성 검사는 캐시된 응답이 만료된 후에도 유효한지 확인하는 데 사용할 수 있다. 예를 들어, 응답에 `Last-Modified` 헤더가 있는 경우 캐시는 `If-Modified-Since` 헤더를 사용하여 변경되었는지 확인하기 위해 조건부 요청을 할 수 있다. ETag(개체 태그) 메커니즘은 강력한 유효성 검사와 약한 유효성 검사 모두를 허용한다.
무효화는 일반적으로 캐시를 통과하는 다른 요청의 부작용이다. 예를 들어, 캐시된 응답과 관련된 URL에 `POST`, `PUT` 또는 `DELETE` 요청이 전송되면 캐시된 응답은 무효화된다.
많은 CDN(콘텐츠 전송 네트워크) 및 네트워크 장비 제조업체는 이 표준 HTTP 캐시 제어를 동적 캐싱으로 대체했다.
3. 웹 캐시 소프트웨어
웹 캐시 소프트웨어는 크게 전용 웹 캐시 서버 소프트웨어와 서버 측 웹 캐싱 소프트웨어로 나눌 수 있다.
전용 웹 캐시 서버 소프트웨어
전용 웹 캐시 서버 소프트웨어는 웹 캐싱 기능만을 전문적으로 수행하는 소프트웨어이다.
| 이름 | 종류 | 운영 체제 | 포워드 방식 | 리버스 방식 | 라이선스 |
|---|---|---|---|---|---|
| ApplianSys CACHEbox | 어플라이언스 | 리눅스 | 예 | 예 | 상용 |
| 블루 코트 프록시SG | 어플라이언스 | SGOS | 예 | 예 | 상용 |
| Nginx | 소프트웨어 | 리눅스, 유닉스 | 예 | 예 | 2-clause BSD-like |
| 마이크로소프트 포어프론트 스레트 매니지먼트 게이트웨이 | 소프트웨어 | 윈도 | 예 | 예 | 상용 |
| Polipo | 소프트웨어 | 리눅스, 유닉스, 윈도 | 예 | 예 | GNU GPL |
| 스퀴드 | 소프트웨어 | 리눅스, 유닉스, 윈도 | 예 | 예 | GNU GPL |
| 트래픽 서버 | 소프트웨어 | 리눅스, 유닉스 | 예 | 예 | 아파치 라이선스 2.0 |
| 언탱글 | 소프트웨어 | 리눅스 | 예 | 예 | 상용 |
| 배니시 | 소프트웨어 | 리눅스, 유닉스 | 예 | 예 | BSD |
| 윈게이트 | 소프트웨어 | 윈도 | 예 | 예 | 상용 / 세 명까지 무료 |
3.1. 서버 측 소프트웨어
다음은 서버 측 웹 캐싱 소프트웨어 목록이다. 다양한 운영체제에서 작동하며, 포워드 및 리버스 캐싱 기능을 제공한다.
| 이름 | 종류 | 운영 체제 | 포워드 방식 | 리버스 방식 | 라이선스 |
|---|---|---|---|---|---|
| ApplianSys CACHEbox | 어플라이언스 | 리눅스 | 예 | 예 | 상용 |
| 블루 코트 프록시SG | 어플라이언스 | SGOS | 예 | 예 | 상용 |
| Nginx | 소프트웨어 | 리눅스, 유닉스 | 예 | 예 | 2-clause BSD-like |
| 마이크로소프트 포어프론트 스레트 매니지먼트 게이트웨이 | 소프트웨어 | 윈도 | 예 | 예 | 상용 |
| Polipo | 소프트웨어 | 리눅스, 유닉스, 윈도 | 예 | 예 | GNU GPL |
| 스퀴드 | 소프트웨어 | 리눅스, 유닉스, 윈도 | 예 | 예 | GNU GPL |
| 트래픽 서버 | 소프트웨어 | 리눅스, 유닉스 | 예 | 예 | 아파치 라이선스 2.0 |
| 언탱글 | 소프트웨어 | 리눅스 | 예 | 예 | 상용 |
| 배니시 | 소프트웨어 | 리눅스, 유닉스 | 예 | 예 | BSD |
| 윈게이트 | 소프트웨어 | 윈도 | 예 | 예 | 상용 / 세 명까지 무료 |
| 이름 | 윈도우 | 유닉스 계열 | 기타 | 포워드 모드 | 리버스 모드 | 라이선스 |
|---|---|---|---|---|---|---|
| 아파치 HTTP 서버 | 예 | OS X, 리눅스, 유닉스, FreeBSD, 솔라리스, 노벨 넷웨어 | OS/2, TPF, OpenVMS, eComStation | 예 | 예 | 아파치 2.0 |
| aiScaler 동적 캐시 제어 | 아니오 | 리눅스 | 아니오 | 예 | 예 | 독점 |
| ApplianSys CACHEbox | 아니오 | 리눅스 | 아니오 | 예 | 예 | 독점 |
| 블루 코트 ProxySG | 아니오 | 아니오 | SGOS | 예 | 예 | 독점 |
| Nginx | 예 | 리눅스, BSD, OS X, 솔라리스, AIX, HP-UX | 예 | 예 | 예 | 2-조항 BSD-유사 |
| 마이크로소프트 포어프론트 위협 관리 게이트웨이 | 예 | 아니오 | 아니오 | 예 | 예 | 독점 |
| Polipo | 예 | OS X, 리눅스, OpenWrt, FreeBSD | 예 | 예 | MIT 라이선스 | |
| Squid | 예 | 리눅스 | 예 | 예 | GPL | |
| 아파치 트래픽 서버 | 리눅스 | 예 | 예 | 아파치 2.0 | ||
| 언탱글(Untangle) | 아니오 | 리눅스 | 아니오 | 예 | 예 | 독점 |
| 바니시 | 아니오 | 리눅스 | 아니오 | VMOD 필요 | 예 | BSD |
| WinGate | 예 | 아니오 | 아니오 | 예 | 예 | 독점 (8명 사용자에 대해 무료) |
| 너스터(Nuster) | 아니오 | 리눅스 | 아니오 | 예 | 예 | GPL |
| McAfee 웹 게이트웨이 | 아니오 | McAfee 리눅스 운영 체제 | 아니오 | 예 | 예 | 독점 |
3.2. 기타 소프트웨어
다음은 전용 웹 캐시 서버 소프트웨어 목록이다.
| 이름 | 종류 | 운영 체제 | 포워드 방식 | 리버스 방식 | 라이선스 |
|---|---|---|---|---|---|
| ApplianSys CACHEbox | 어플라이언스 | 리눅스 | 예 | 예 | 상용 |
| 블루 코트 프록시SG | 어플라이언스 | SGOS | 예 | 예 | 상용 |
| Nginx | 소프트웨어 | 리눅스, 유닉스 | 예 | 예 | 2-clause BSD-like |
| 마이크로소프트 포어프론트 스레트 매니지먼트 게이트웨이 | 소프트웨어 | 윈도 | 예 | 예 | 상용 |
| Polipo | 소프트웨어 | 리눅스, 유닉스, 윈도 | 예 | 예 | GNU GPL |
| 스퀴드 | 소프트웨어 | 리눅스, 유닉스, 윈도 | 예 | 예 | GNU GPL |
| 트래픽 서버 | 소프트웨어 | 리눅스, 유닉스 | 예 | 예 | 아파치 라이선스 2.0 |
| 언탱글 | 소프트웨어 | 리눅스 | 예 | 예 | 상용 |
| 배니시 | 소프트웨어 | 리눅스, 유닉스 | 예 | 예 | BSD |
| 윈게이트 | 소프트웨어 | 윈도 | 예 | 예 | 상용 / 세 명까지 무료 |