다양한 기록

쿠키, 웹 캐시(프록시) 본문

네트워크

쿠키, 웹 캐시(프록시)

라구넹 2024. 4. 6. 22:52

Cookie

 

HTTP 프로토콜은 stateless, 상태 정보를 저장하지 않습니다.

그렇기에 필요한 정보가 있다면 쿠키에 저장할 수 있습니다.

 

서버가 클라이언트에 쿠키를 설정하고, 클라이언트가 다음 HTTP 요청을 할 시 저장해둔 쿠키를 다시 전송합니다.

그렇다면 이 이용자가 누구인지 확인하는게 더 편하게 이루어질 것입니다.

 

만약 쿠키가 없는 클라이언트가 접속하고자 한다면 처음 온 사용자라고 인식할 수 있습니다.

 

인증, 쇼핑 카트, 추천, 유저 세션 상태 등을 위해 사용합니다.

즉, state를 저장할 수 있습니다.

 

쿠키는 다르게 표현하면 state를 전달하는 http 상의 메시지라 할 수 있습니다.


웹 캐시 (프록시 서버)

 

물리적으로 거리가 멀면 통신하는데 시간이 걸릴 수밖에 없습니다.

그래서 방문한 적 있는 사이트를 저장해둔 것이 웹 캐시입니다.

다음에 방문할 때는 오리지널 서버를 거치지 않고 리퀘스트를 만족시킬 수 있습니다.

물론 처음 방문할 때는 오래 걸립니다.

 

웹 캐시는 클라이언트 입장에서는 서버, 서버 입장에서는 클라이언트로 작동합니다.

관점에 따라 달라질 수 있음을 알아야 합니다.

 

결국 오리지널 서버로 가기는 하니까 느린 거 아니냐 생각할 수 있지만

사이트 전체를 받아오는 것보단 리스폰스 짧게 받고 끝낼 수 있는게 좋습니다.

 

전체 네트워크 관점

액세스 링크의 대역폭이 좁으면 결국 인터넷 속도가 느립니다.

그렇다고 액세스 링크의 대역폭을 늘리자니 비용이 문제입니다.

여기서 웹 캐시를 사용한다면 게이트웨이( 내 네트워크에서 나가는 첫번째 라우터 )를 지나지 않고

속한 네트워크에서 해결을 할 수 있어 트래픽이 줄고 시간이 굉장히 빨라집니다. 가격도 훨씬 쌉니다.

 

결국 전체 인터넷 관점에서 불필요한 트래픽을 줄일 수 있습니다.

 

** 데이터 최신화 문제

웹 캐시는 데이터 요청을 받으면 일단 오리지널 서버에 가지고 있는 사이트의 시간 정보를 보내서

데이터가 최신 상태인지 확인하는 과정이 필요합니다. 만약 최신 상태가 아니라면 서버로 데이터를 받으러 가야 합니다.

-> Conditional GET

HTTP request msg. If-modified-since: <date>

바뀐적 없다: HTTP response. HTTP/1.0 304 Not Modified

바뀌었다: HTTP response. HTTP/1.0 200 OK <data>

 

웹 캐시는 날짜 정보를 HTTP 요청에 같이 보내고,

서버는 바뀐적이 있다면 데이터를 보내고 없다면 바뀐적 없다고 메시지를 보냅니다.

 

'네트워크' 카테고리의 다른 글

DNS  (0) 2024.04.07
SMTP, MIME  (0) 2024.04.06
HTTP 프로토콜 구조  (0) 2024.03.25
URI, URL, URN / HTTP 개요(비지속적, 지속적 HTTP)  (0) 2024.03.25
IP와 포트, TCP/UDP  (0) 2024.03.25