앞의 글을 읽으시면 이해에 도움이 됩니다.
2023.04.13 - [Computer Science/네트워크] - [네트워크] Cookie
[네트워크] Cookie
앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.09 - [Computer Science/네트워크] - [네트워크] HTTP Response Message [네트워크] HTTP Response Message 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.09 - [Compu
hi-guten-tag.tistory.com
1. Web Caching이란?
Web Cache
는Proxy Server
라고도 불리며, 웹 서버를 도와주기 위한 network entity입니다.- Web Cache는 자신만의 디스크도 소유하고 있으며, 최근에 요청된 객체에 대한 복사본을 유지합니다.

- 위의 그림과 같이 Proxy server는 클라이언트로부터의 HTTP request를 처리합니다.
- 브라우저는 Web Cache와 TCP connection을 연결하고, Web Cache에게 HTTP request를 요청합니다.
- Web Cache는 자신의 저장소에 해당 객체가 있는지 확인하고, 만약 존재한다면 해당 객체를 HTTP response message로 응답합니다.
- 만약 객체가 Proxy Server의 저장소에 존재하지 않는다면, Web Cache는 Origin Server와 TCP Connection을 연결하고, 서버에게 객체에 대한 HTTP request를 요청합니다. 이후 서버는 해당 객체를 연결된 TCP connection으로 Web Cache에게 응답합니다.
- Web Cache가 객체를 받는다면 해당 객체를 자신의 저장소에 복사하여 저장하고, 복사본을 HTTP response message로 클라이언트에게 전송합니다.
- 이처럼 Cache는 클라이언트와 서버의 역할을 동시에 수행합니다.
- 클라이언트로부터 HTTP Request를 받으면 이는 서버의 역할을 하는 것이고, HTTP Request를 서버에게 보낸다면 이는 클라이언트의 역할을 하는 것입니다.
2. Web Caching의 장점
- Web Caching의 장점은 크게 두 가지로 나뉩니다.
- 첫째, Web Cache는 클라이언트의 요청에 따른
Response Time
을 상당히 많이 줄여줍니다. - 특히 클라이언트-서버 간의 bandwidth가 클라이언트-캐시 간의 bandwidth보다 적을 때 특히 유용합니다.
- 또한 클라이언트-캐시 간에 고성능의 연결이 된다면, 캐시는 매우 빠른 속도로 클라이언트에게 객체를 전달합니다.
- 둘째, Web Cache는 서버에 접속하는 링크의
Traffic
을 상당히 많이 줄입니다. - 이로 인해 서버는 급하게 bandwidth를 업그레이드할 필요가 없고, 이로 인해 비용이 절감됩니다.
- 더 나아가 Web Cache는 전체 인터넷의 Traffic 또한 많이 줄여줍니다. 따라서 전체 어플리케이션의 성능이 향상됩니다.
- 첫째, Web Cache는 클라이언트의 요청에 따른
3. The Conditional GET
- Web Cache의 많은 장점에도 불구하고, 캐시에 있는 객체의 복사본이 구버전일 가능성이 있다는 문제가 있습니다.
- 다른 말로 서버가 캐시에게 객체를 전달한 이후에, 서버에서 객체를 변형했다는 의미입니다.
- 다행히도 HTTP에는 캐시로 하여금 객체의 업데이트를 검증할 수 있는 메커니즘이 있습니다.
- 이 메커니즘을
conditional GET
이라고 합니다.
- 해당 conditional GET은 두 가지로 request messag를 보낼 수 있는데, 이는 아래와 같습니다.
- 일반적인 GET method를 사용하여 요청했을 때
If-Modified-Since
를 header line에 추가하여 요청하였을 때, 이때는 해당 객체를 받아온 시간을 작성하여 함께 보냅니다.
- 이에 응답하는 서버의 response message 또한 두 가지입니다.
- 만약에 서버에 존재하는 객체가 변형되거나, 혹은 일반적인 GET method를 요청받았을 때, 서버는
Last-Modified
라는 정보를 header line에 추가하여 전송합니다. 이때 해당 정보에는 객체가 변형된 시간을 작성하여 보냅니다. 이때 객체와 함께 정보를 전달합니다. - 만약 서버에 존재하는 객체가 변형되지 않았다. 즉 Request Message로 온 If-Modified-Since에 적혀있는 시간과 서버에 있는 객체의 최종 변형 시간과 같다면 이는 변형되지 않았다는 뜻입니다. 따라서 서버는 객체가 변형되지 않았다는 의미로
status line
에304 Not Modified
를 보냅니다. 이때 객체는 따로 보내지 않습니다.
- 만약에 서버에 존재하는 객체가 변형되거나, 혹은 일반적인 GET method를 요청받았을 때, 서버는
참고
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터 망 수업
Computer Networking: A Top Down Approach / James F. Kurose, Keith W. Ross 저 / PEARSON / 2021년
Chat GPT, Bing AI
다음 글에서는 HTTP/2에 대해 알아보겠습니다.
2023.04.14 - [Computer Science/네트워크] - [네트워크] HTTP/2 - Frame
[네트워크] HTTP/2 - Frame
앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.13 - [Computer Science/네트워크] - [네트워크] Web Caches [네트워크] Web Caches 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.13 - [Computer Science/네트워
hi-guten-tag.tistory.com
감사합니다.
지적 환영합니다.
'Computer Science > 네트워크' 카테고리의 다른 글
[네트워크] DNS (0) | 2023.04.14 |
---|---|
[네트워크] HTTP/2 - Frame (0) | 2023.04.14 |
[네트워크] Cookie (2) | 2023.04.13 |
[네트워크] HTTP Response Message (0) | 2023.04.09 |
[네트워크] HTTP Request Message (0) | 2023.04.09 |