공부하는 스누피
[네트워크] 웹 캐시(프록시 서버) 본문
웹 캐시(프록시 서버)는 웹 사용자에 의해 빈번히 요청되는 데이터를 사용자와 지리적으로 가까운 웹캐시 서버에 보관해 빠른 서비스를 가능하게 한다. 그래서 원래의 웹 서버를 대신하여 HTTP 요구를 충족시켜준다. 또한, 저장 디스크를 갖고 있어 최근 호출된 객체의 사본을 저장한다. 캐시에 있는 객체는 서버에서 변경될 수 있으므로 일관성 유지 기법을 필요로 한다.
<동작 과정>
1. 브라우저가 웹 캐시와 TCP 연결을 설정하고 웹 캐시에 있는 객체에 대한 HTTP 요청을 보낸다.
2. 웹 캐시는 객체의 사본이 캐시에 저장되어 있는지 확인한다. 저장되어 있다면 브라우저로 HTTP 응답 메세지와 함께 객체를 보낸다.
3. 저장되어 있지 않다면 origin 서버로 TCP 연결을 설정한다. 이 연결로 브라우저가 요청한 객체에 대한 HTTP 요청을 보낸다. origin 서버는 웹 캐시로 HTTP 응답 메시지와 함께 객체를 보낸다.
4. 웹 캐시가 origin 서버로부터 객체를 수신할 때, 객체를 저장 장치에 복사하고 객체의 사본을 HTTP 응답 메세지와 함께 브라우저로 보낸다.
<웹 캐시의 장점>
- 응답 시간을 줄일 수 있다. 특히 origin 서버와 클라이언트 간의 병목 대역폭이 클라이언트와 웹 캐시 사이의 병목 대역폭보다 작으면 작을수록 효과적이다.
- 한 기관에서 인터넷으로 접속하는 링크상의 웹 트래픽을 대폭 줄일 수 있다.
<웹 캐시의 종류>
- 브라우저 캐시
브라우저의 로컬 저장소의 캐시에 이전에 방문한 웹페이지의 정적 자원을 저장해 사용한다.
- 프록시 웹 캐시
앞에서 설명한 것과 같이 클라이언트와 origin 서버 간의 프록시 서버이다.
- CDN
콘텐츠 전송 네트워크(CDN, Content Distribution Network)를 통해, 웹 캐시는 많은 트래픽을 지역화하고 있다.
- ISPs
브라우저 캐시와 아주 유사하게 동작하지만, 브라우저 캐시와 다르게 사용자가 임시 저장된 파일을 지울 수 없고, 캐시가 만료되기까지 기다려야 한다.
<웹 캐시의 교체 알고리즘>
- 성능 척도
캐시적중률(HR) = 캐시적중 횟수 총합 / 참조 횟수 총합
바이트적중률(BHR) = (객체크기 * 캐시적중 횟수) 총합 / (객체크기 * 참조횟수)
지연감소율(DSR) = (웹서버로부터 인출 지연시간 * 캐시적중 횟수) 총합 / (인출 지연시간 * 참조횟수)
비용절감률 = (웹서버로부터 인출비용 * 캐시적중 횟수) 총합 / (인출비용 * 참조횟수)
<조건부 GET>
HTTP는 모든 객체들이 최신의 것임을 확인하면서 캐싱하는 방식을 갖고 있다.
HTTP 요청 메세지가 GET 방식을 사용하고, If-Modified-Since: 헤더 라인을 포함하고 있다면, 조건부 GET 메시지이다.
조건부 GET은 서버에게 그 객체가 명시된 날짜 이후 수정된 경우에만 그 객체를 보내라고 말하는 것이다.
(참고)
James F. Kurose. Computer networking a top-down approach. 7th edition
geekhost.ca/supp/knowledgebase.php?action=displayarticle&id=90
appcheck-ng.com/web-cache-poisoning-explained/
'CS > 네트워크' 카테고리의 다른 글
[네트워크] 콘텐츠 분배 네트워크 (CDN) (0) | 2020.10.23 |
---|---|
[네트워크] DNS (0) | 2020.10.23 |
[네트워크] OSI 7계층 (0) | 2020.10.22 |
[네트워크] 패킷 교환 네트워크에서의 지연 (2) | 2020.10.21 |
[네트워크] 패킷 교환, 회선 교환 (0) | 2020.10.21 |