프로그래밍 공부

HTTP 웹 기본 지식 - 3 HTTP 기본

모든 개발자를 위한 HTTP 웹 기본 지식 (김영한) 강의를 정리합니다. 

 

현재에는 HTTP로 거의 모든 데이터를 주고받으며, HTTP의 시대라고 말할 수 있는 시대이다.

HTTP 역사

★ HTTP1.1이 가장 중요한 버전. 

이후에 나온 HTTP 2와 3은 성능이 개선된 것에 가싸우며, 

3의 경우에는 TCP 대신에 UDP를 사용해서 속도가 빨라졌다.

(TCP의 경우에는 3 way handshake 등으로 속도가 그리 빠른건 아님!)

 

티스토리 메인화면을 확인해본 결과. http 1.1 , 2가 사용되는걸 볼 수 있다.


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 - 로그인 같은 경우는 로그인 상태를 유지해야 함.)
최대한 무상태로 하되, 상태유지는 최소한으로 적용하는 것이 필요함.