본문 바로가기
CS공부

[네트워크] 2-2 Application Layer (응용계층) - 쿠키, 웹캐시, SMTP

by 디토20 2022. 4. 9.
반응형

 

[네트워크] 2-2 Application Layer (응용계층) - 쿠키, 웹캐시, SMTP

 

 

1. 쿠키(Cookie)

쿠키의 사용 목적

http는 stateless 프로토콜이기 때문에 클라이언트에 대한 정보를 유지하기 위해 사용

 

 

쿠키의 사용 방법

1. client는 서버에 로그인을 함.

2. 서버는 client의 유효성 검사를 한 뒤, 유효한 client면 해당 client를 위한 ID를 생성.

3. 서버는 생성된 ID를 response message의 헤더에 담아 전송

4. client는 받은 쿠키를 브라우저에 저장하고 있다가, 서버에 request 메세지를 보낼때 마다 함께 전송

 

 

예시

 

1. 클라이언트는 이베이에 대한 쿠키를 갖고있음

2. 클라이언트는 아마존 서버에 로그인 메세지를 요청

3. 아마존 서버는 클라이언트 정보를 확인하고 해당 유저의 아마존 ID를 만들어 헤더에 담아 클라이언트에 전달

4. 클라이언트는 아마존 서버에서 보낸 쿠키를 저장해 둠

5. 일주일 뒤 클라이언트는 아마존 웹사이트에 접속하면 쿠키에 저장되어있던 아마존 ID에 의해 자동 로그인 됨

 

 

쿠키의 장점

1. 세션이 유지되는 것 같은 느낌을 줄 수 있다.

2. 자동 로그인 가능

 

 

 

 

2. 웹캐시

웹캐시를 두면 유저의 브라우저는 언제나 캐시를 통해서 웹 액세스를 진행한다.

 

웹캐시의 사용 목적

웹캐시를 로컬에 둠으로서 오리지널 서버까지 가지않고도 데이터를 가져올 수 있게 함

 

 

웹캐시의 사용 방법

1. 유저가 서버에 데이터를 요청하면, 브라우저는 먼저 로컬 캐시에 http message를 보냄

2. 로컬 캐시에 원하는 데이터가 있으면, 로컬 캐시로부터 데이터를 받아옴

3. 로컬 캐시에 원하는 데이터가 없다면, 오리지널 서버로부터 데이터를 받아옴

 

 

예시

 

 

1. A 클라이언트는 http request로 데이터를 요청함.

2. 해당 http 요청은 웹캐시 서버인 프록시 서버가 가로채 해당 데이터가 웹캐시에 있는지 확인함.

3. 데이터가 없는걸 확인 후 오리지널 서버에 데이터를 요청해 A 클라이언트에 전송 후, 웹캐시에 저장함.

4. 그 후 B 클라이언트가  http request로 같은 데이터를 요청함.

5. 해당 http 요청은 웹캐시 서버인 프록시 서버가 가로채 해당 데이터가 웹캐시에 있는지 확인함.

6. 데이터가 있는걸 확인 후 웹캐시에서 A 클라이언트에게 데이터 전송.

 

 

웹캐시의 장점

1. 인터넷 사용자는 응답을 빨리 받아 볼 수 있음

2. 웹캐시 제공자(대학교, 회사, 지역ISP 등)는 access link의 트래픽을 줄일 수 있어서 비용 절감 가능

 

 

예시

 

 

 

 

◈가정◈
▶ 학교에서 퍼블릭 인터넷에 데이터를 요청하는 상황
▶ 요청 평균 데이터 사이즈 : 1M bits
▶ 초당 15개의 데이터를 요청
▶ access link의 bandwidth는 15 Mbps

1. 웹캐시를 안쓰는 경우 

  • 초당 access link를 건너가야하는 용량은 1M bits * 15 = 15M bits
  • 트래픽 강도(traffic intensity) = 15M bits / 15 Mbps = 1
  • 트래픽 강도가 1이므로, delay가 크게 발생한다.
  • bandwidth를 10배인 154Mbps로 늘리면 트래픽 강도는 0.1이 되므로 delay 매우 작음 -> 그러나 비용 과다

 

 

2. 웹캐시를 사용하는경우

  • 데이터 요청에 대해 40%의 웹캐시 사용이 이루어지는 경우 60%만 access link를 건너가게 된다.
  • 트래픽 강도(traffic intensity) = (15M bits * 0.6) / 15 Mbps = 0.6
  • 트래픽 강도가 0.6이므로 delay가 작게 발생한다.

 

 

트래픽 강도(traffic intensity), access link, bandwidth등이 궁금하다면?

 

 

 

웹캐시 만료와 웹캐시 데이터를 갱신하는 법

1. 웹캐시 데이터를 갱신하는 법

  • 웹캐시는 서버에서 데이터를 받아올 때 헤더에 if-modified-since를 저장해둠.
  • 그 후, request가 들어오면 웹캐시는 헤더에 if-modified-since를 포함한 요청을 서버에 데이터를 보냄
  • 서버는 해당 데이터가 if-modified-since 이후로 수정되지 않았다면, 304 Not Modified를 response 하고 웹캐시는 사용자한테 본인이 가지고있는 데이터를 그냥 보냄.
  • 서버는 해당 데이터가 if-modiried-since 이후로 수정이 되었다면, 200ok와 함께 데이터를 response 함.

 

2. 웹캐시 기간이 길 경우

  • 장점 : 응답이 빠르고, network 비용이 적게 든다
  • 단점 : 캐시 만료까지 최신 데이터를 가져올수 없고, 기한이 만료된 데이터를 가져올 수 있다.

 

3. 웹캐시 기간이 짧을 경우

  • 캐싱기능을 사용하더라도 최신 데이터를 가져올 수 있다.
  • 모든 요청에 대해  if-modified-since 확인을 하면 매번 서버를 타야하기 때문에 딜레이가 생김

 

 

 

 

 

 

3. SMTP protocol

Electronic mail(E-mail)에는 user agent와 mail server가 존재하고, SMTP protocol로 작동한다.

 

user agent(유저 에이전트)
  • 메일을 읽고, 쓰고, 편집할 수 있는 프로그램
  • ex) outlook, gmail 등

 

 

mail server
  • 메일을 전송하고, 전송받는등의 모든 요청을 받는 서버
  • mailbox : 각각의 유저에 대해 들어오는 모든 메일
  • message queue : 들어온 메일을 전송하기 위한 대기 줄

 

 

SMTP protocol

 

  • 클라이언트가 메일을 서버에 보낼때 혹은 서버가 메일을 다른 서버로 보낼때 사용됨
  • SMTP는 TCP 위에서 동작하므로, 먼저 TCP 커넥션을 맺어야함.
  • SMTP의 3단계 동작 절차 : 연결(핸드쉐이킹) -> 메세지전송 -> 종료
  • 클라이언트의 message에는 ASCII text로된 커맨드가 들어가있다
  • 서버의 message에는 status code로 된 response가 들어가있다.
728x90
반응형

댓글