가자미의 개발이야기
[네트워크] 쿠키, 캐쉬, 이메일 본문
a. 쿠키 User-server state : cookies
서버가 유저의 상태를 기억하기 위한 쿠키(주문내역 등)
맨 처음 유저가 브라우저로 사이트를 방문할 경우 생성
이후 해당 브라우저로 사이트 방문시 쿠키를 통해 특정 액션을 취함.
b. 쿠키의 네가지 구성요소
1. HTTP 응답메시지에 있는 쿠키 헤더라인
2. 다음 HTTP 요청 메시지에 있는 쿠키 헤더라인
3. 사용자의 브라우저가 관리하는 쿠키파일
4. 웹사이트의 백엔드 데이터베이스
하지만 보안 상의 위험이 존재.
c. 웹 캐쉬(프록시 서버)
목적 : 클라이언트의 요구가 근본 서버에 관여하지 않고 안정화하자.
(origin server가 클라이언트와 거리가 멀 경우..)
프록시 서버(캐쉬)에 주변 클라이언트가 자주 사용하는 데이터를 저장해놓음
만약 프록시 서버에 없는 내용을 클라이언트가 요구할 경우,
프록시 서버는 origin서버에 해당 데이터를 요구
캐쉬는 클라이언트와 서버의 역할을 모두 수행
캐쉬 사용 시 응답 시간을 줄이고, 액세스 링크의 트래픽을 줄임
d. Conditional GET
캐쉬나 클라이언트에 컨텐츠가 있는 상황에서
오리진 서버의 컨텐츠가 변경되었을 경우 동기화를 하기 위한 기능
if-modified-since <date>로 request해서 변경된 데이터를 요구할 수 있다.
변경된 값이 존재할 경우 200(OK), 그렇지 않을 경우 304 Not Modified
e. E-mail
세가지 큰 요소
유저 에이전트-메일서버-SMTP(simple mail transfer protocol)
유저 에이전트: 메일을 읽고 , 수정 수행. 서버에 저장된 메시지를 가져오거나 보냄.
메일 서버 : 유저로부터 메일을 받음. 보낼 메일들을 메세지 큐에 담음.
SMTP : 메일 서버 간 연결해주는 역할
f. SMTP
reliably transfer를 위해서 TCP를 이용. 포트 번호 25번
direct transfer : 서버끼리 통신은 직접한다.
transfer는 세가지 단계를 거친다 (handshaking-transfer-closure)
메세지는 반드시 7비트 ASCII코드로 이뤄져야한다.
SMTP는 persistent연결을 사용
메세지 종료는 마침표(.)로 결정.
g. HTTP와 SMTP의 비교
HTTP는 클라이언트의 요구를 서버가 응답하는 것(pull)
SMTP는 클라이언트의 데이터를 서버가 받아 저장하는 것(push)
둘 다 ASCII 커맨드/응답 상호작용과 status code를 사용.
HTTP는 매 오브젝트를 캡슐화해서 하나의 응답 메시지로 보냄
SMTP는 여러 오브젝트를 한번에 싹 가져온다.
h. 메일 메세지 포맷
i. 메일 액세스 프로토콜
-메일 서버에 직접 접근하지 않고 내 pc에서 처리하는 프로토콜
-pop3 : 권환확인, 메시지 불러오기, 메시지 삭제 등 지원
download and delete (서버에서 불러오면 서버는 비움)
download and keep (삭제해도 복사본을 서버가 갖고 있기)
-imap : 서버에서 모든 메시지를 보관, 클라이언트가 접속해서 사용
동기화에 유리, 메시지 중 일부만 보기 가능.
'Computer Science > 네트워크' 카테고리의 다른 글
[네트워크] P2P (0) | 2021.03.26 |
---|---|
[네트워크] DNS (0) | 2021.03.25 |
[네트워크] 어플리케이션 프로토콜 (0) | 2021.03.16 |
[네트워크] 어플리케이션 (0) | 2021.03.10 |
[네트워크] 프로토콜 (0) | 2021.03.09 |