본문 바로가기

기본 프로그래밍 지식

[기본 지식] 1. 프로토콜 Protocol

반응형

프로토콜 Protocol 

  • 컴퓨터 내부 혹은 컴퓨터 간에 데이터를 교환하는 방식을 정의하는 규칙 체계.

상태 유지 Stateful

  • 서버클라이언트의 상태보존/저장하고 있는 것을 뜻함.
    • 예를 들어, 사이트를 나갔다 와도 로그인 정보가 남아있음.
    • 보통 브라우저의 Cookie에 저장되거나, 서버의 Session 메모리에 저장됨.

Stateful Protocol - TCP 통신

  1. 클라이언트가 서버에 SYN (Synchronize - TCP 패킷)을 전송하여 요청.
  2. 서버에서 SYN을 확인하고 SYN/ACK (Acknowledgement)를 전송하여 요청 수락.
  3. 클라이언트가 서버에 ACK를 전송하여 수락 확인.

Stateful Protocol의 문제점

  • 서버 메모리 과부화 가능성
  • 서버와 클라이언트 간의 종속성
    • 새로운 서버나 다른 서버에 이전 서버의 상태값이 없기에 서버 운영에 유연성이 떨어진다.

무상태 Stateless

  • 서버 클라이언트의 상태 보존/저장하지 않는 것을 뜻함.
    • 클라이언트에서 통신에 필요한 상태 정보를 가지고 있다가 서버와 통신할때 데이터를 실어 보내는 것이 무상태 구조.
    • 서버에 요청에 대한 작업만 수행.
    • 서버에 부하가 현저히 줄어듬.

Stateless Protocol - UDP, HTTP 통신

  • 클라이언트가 Request를 전송하면 서버에서 Response만 전달하게 된다.
  • 따로 Response에 대한 수신 확인 절차가 없다.

Stateless Protocol의 문제점

  • 클라이언트의 요청에 Stateful 보다 더 많은 데이터가 소모됨.

Stateless & Token

  • Stateless한 상태에서 로그인 정보를 저장하고 싶을 때 Token 인증 방식을 같이 사용하면 된다.
  • 처음 로그인 할 때 서버로부터 토큰을 발급 받은 뒤 클라이언트가 가지고 있다가, 서버와 다시 통신 할 때 데이터 통신 패킷을 토큰과 함께 보내면 서버에서 발급 내역을 확인하여 Response에 로그인 정보를 내주게 된다.
반응형