모든 개발자를 위한 HTTP 웹 기본 지식 (김영한) 강의를 정리합니다.
현재에는 HTTP로 거의 모든 데이터를 주고받으며, HTTP의 시대라고 말할 수 있는 시대이다.
HTTP 역사
★ HTTP1.1이 가장 중요한 버전.
이후에 나온 HTTP 2와 3은 성능이 개선된 것에 가싸우며,
3의 경우에는 TCP 대신에 UDP를 사용해서 속도가 빨라졌다.
(TCP의 경우에는 3 way handshake 등으로 속도가 그리 빠른건 아님!)
HTTP 특징
클라이언트 서버구조
서버요청 - 응답대기 (Request Response 구조)
응답요청에 대한 결과를 만들어서 응답.
클라이언트와 서버를 분리하여 생각하는 것이 중요함.
비지니스 로직/ 데이터 → 서버에 집중
UI 사용성 → 클라이언트에 집중
양쪽이 독립적으로 진화할 수 있다는 점이 중요함
무상태 프로토콜
장점 : 서버 확장성이 높음 (스케일 아웃에 유리)
단점 : 클라이언트가 추가 데이터를 전송해야함.
stateful- 상태유지
ex)
• 고객: 이 노트북 얼마인가요?
• 점원: 100만원 입니다.
• 고객: 2개 구매하겠습니다.
• 점원: 200만원 입니다. 신용카드, 현금중에 어떤 걸로 구매 하시겠어요?
• 고객: 신용카드로 구매하겠습니다.
• 점원: 200만원 결제 완료되었습니다.
이때 중간에 점원이 바뀌게 되면, 처음부터 다시 얘기해줘야된다.
사실상 내부를 들여다보면 이러한 상태이기 때문...!!!
• 고객: 이 노트북 얼마인가요?
• 점원: 100만원 입니다. (노트북 상태 유지)
• 고객: 2개 구매하겠습니다.
• 점원: 200만원 입니다. 신용카드, 현금중에 어떤 걸로 구매 하시겠어요?
(노트북, 2개 상태 유지)
• 고객: 신용카드로 구매하겠습니다.
• 점원: 200만원 결제 완료되었습니다. (노트북, 2개, 신용카드 상태 유지)
stateless- 무상태
ex)
• 고객: 이 노트북 얼마인가요?
• 점원: 100만원 입니다.
• 고객: 노트북 2개 구매하겠습니다.
• 점원: 노트북 2개는 200만원 입니다. 신용카드, 현금중에 어떤 걸로 구매 하시겠어요?
• 고객: 노트북 2개를 신용카드로 구매하겠습니다.
• 점원: 200만원 결제 완료되었습니다.
정리하자면,
상태유지는 중간에 바뀌면 안된다. (응답 서버가 꺼지면 처음부터 다시)
무상태는 모든 값을 보내주는거라서 상관이 없다. 갑자기 고객이 증가해도 점원을 대거 투입 가능하며, 이는 클라이언트-서버관계에서도 동일하다. 즉, 응답 서버를 쉽게 바꿀 수 있기 떄문에 서버 증설이 자유로운 것!
stateless의 한계
모든것을 무상태로 하기는 힘들다. (ex - 로그인 같은 경우는 로그인 상태를 유지해야 함.)
최대한 무상태로 하되, 상태유지는 최소한으로 적용하는 것이 필요함.
'프로그래밍 공부' 카테고리의 다른 글
[TDD] Test-Driven-Development란 무엇인가 (0) | 2022.02.24 |
---|---|
[React / Spring] CORS 이슈 해결하기 (0) | 2021.07.27 |
윈도우용 gcc, g++ 컴파일러 MinGW 다운로드 방법 (0) | 2021.05.09 |
HTTP 웹 기본 지식 - 2 URI와 웹 브라우저 요청 흐름 (0) | 2021.05.04 |
HTTP 웹 기본 지식 - 1 인터넷 네트워크 (0) | 2021.05.03 |