공부하는 스누피

[네트워크] 웹 캐시(프록시 서버) 본문

CS/네트워크

[네트워크] 웹 캐시(프록시 서버)

커피맛스누피 2020. 10. 22. 17:13

https://appcheck-ng.com/web-cache-poisoning-explained/

웹 캐시(프록시 서버)는 웹 사용자에 의해 빈번히 요청되는 데이터를 사용자와 지리적으로 가까운 웹캐시 서버에 보관해 빠른 서비스를 가능하게 한다. 그래서 원래의 웹 서버를 대신하여 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

 

What is browser caching and ISP caching? - Knowledgebase - GeekHost

Caching is used widely across the Internet to cut down the amount of time it takes to request information. It works by keeping a temporary copy of information that has been requested locally for a defined amount of time. The most common forms of caching we

geekhost.ca

appcheck-ng.com/web-cache-poisoning-explained/

 

Web cache poisoning explained | AppCheck

What is Caching? A cache in computing is a temporary store of any content that has been retrieved from its original (master) source. Caches are typically used so that the data can be served faster the next time it is requested, since it needs only be retri

appcheck-ng.com

 

Comments