개발 공부 & 정리

[HTTP] HTTP에 대해 - 1 본문

공부/HTTP

[HTTP] HTTP에 대해 - 1

현뽀- 2022. 7. 18. 13:28

HTTP

  • 거의 모든 형태의 데이터 전송 가능( HTML, TEXT, IMAGE, VIDEO, JSON ...)
  • 서버 간의 데이터를 주고 받을때도 대부분 HTTP 사용

HTTP 1.1 - 가장 많이 사용  --개선 --> HTTP 2 (TCP 사용) ---TCP대신 UDP 사용 + 개선 --> HTTP3

특징 

  • 클라이언트 - 서버 구조
  • 무상태 프로토콜(Stateless), 비연결성
  • HTTP 메세지
  • 단순함, 확장 가능 

 

클라이언트-서버 구조 

클라 - 서버 구조

클라-서버 구조 : 역할 분담 + 독립성 향상 ==> 각 역할에 맞게 양쪽이 독립적 발전 가능

 

무상태 프로토콜(Stateless)

: 서버가 클라이언트의 상태를 보존  하지 않음 

  • 장점 : 서버 확장성 향상 (Scale-Out)
  • 단점 : 클라이언트가 추가 데이터 전송 

Stateful, Stateless 차이

예시 상황 : 매장에서 점원에게 제품을 구매하는 상황

  • Stateful : 중간에 다른점원으로 바뀌면 안된다.
    (다른점원으로 바뀔때 모든 나의 상태 정보( 구매 상품 , 수량, 회원정보 등)을 다시 처음부터 다른 점원에게 알려야함.)
  • Stateless : 중간에 다른점원으로 바뀌어도 된다. => 갑자기 고객이 증가해도 점원 투입 가능 ( 갑자기 클라이언트의 요청이 증가해도 서버 투입 가능 - ScaleOut : '무상태'는 응답 서버를 쉽게 바꿀 수 있다.) ==> 무한한 서버 증설 가능  


Stateful
Stateless

 

Stateless의 한계

데이터를 너무 많이 보낸다 -> 무상태로 설계할 수 없는 경우가 있다. 

  • 무상태 : 로그인이 필요없는 서비스 소개 화면
  • 상태 유지 : 로그인 혹은 인증을 통해 유저의 상태를 보관해야 하는 서비스 
    -> 로그인한 유저의 최소한의 상태만 서버에 유지 (쿠키와 세션 활용)

 

'공부 > HTTP' 카테고리의 다른 글

[HTTP] HTTP에 대해 - 2  (0) 2022.07.18
[HTTP] HTTP 메세지 생성 과정  (0) 2022.07.08
[HTTP] URI  (0) 2022.07.08
[HTTP] 사전 지식 - IP, TCP, UDP, PORT, DNS  (0) 2022.07.08
Comments