개발 공부 & 정리
[HTTP] HTTP에 대해 - 1 본문
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 : '무상태'는 응답 서버를 쉽게 바꿀 수 있다.) ==> 무한한 서버 증설 가능
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