본문 바로가기
Computer Science/네트워크

[네트워크]HTTP is Everywhere! and Feature 1탄

by SIXXXX_ 2022. 3. 3.
728x90

HTTP : Everywhere!

  • HTTP 메세지에 모든 것을 전송한다.
  • HTML, TEXT
  • IMAGE, 음성, 영상, 파일
  • JSON, XML(API)
  • 거의 모든 형태의 데이터 전송 가능
  • 서버 간에 데이터를 주고받을 때도 대부분 HTTP 사용

 

1. 역사

  • HTTP/0.9  1991년 : GET메서드만 지원, HTTP 헤더 X
  • HTTP/1.0  1996년 : 메서드, 헤더 추가
  • HTTP/1.1  1997년 : 대부분의 기능이 추가(가장 많이 사용), 나중버전은 성능개선
  • HTTP/2    2015년 : 성능개선
  • HTTP/3    진행중 : TCP 대신에 UDP사용, 성능개선

 

HTTP Protocol 확인법 : Chrome F12 개발자도구

Network - Protocol - h2(http 2 사용)

chrome F12 protocol 확인법

 

2. 기반 프로토콜

  • TCP : HTTP/1.1, HTTP/2
  • UDP : HTTP/3
  • 현재는 HTTP/1.1주로 사용하고 HTTP/2, HTTP/3도 점점 증가한다(강의 ver. 21)

 

3. HTTP 특징

① 클라이언트 서버 구조(Client -Server)

  • Request, Response 구조
  • 비즈니스로직, 데이터는 서버에 넘기고
  • 클라이언트는 UI, 사용성만 집중
  • 클라이언트와 서버가 독립적으로 진화

 

② 무상태 프로토콜 (Stateless Protocol)

* stateful, stateless 차이

- 상태유지 : stateful (서버가 클라이언트의 상태를 보존(어떤 로직, 상태인지 보존됨))

- 무상태 : stateless (서버가 클라이언트의 상태를 보존하지 않음, 갑자기 클라이언트 요청이 증가해도 서버를 대거 투입가능, 무한한 서버 증설 가능)

 

 

중간에 서버에러가 난다면?

  • stateful은 장애대응이 어려움
  • stateless는 응답을 다른 서버로 넘겨서 전달 >>>> 스케일 아웃 (수평 확장 유리)

 

 

Stateless의 한계

모든 것을 무상태로 설계 할 수 있는 경우도 있고 없는 경우도 있다.

 

무상태

ex) 로그인이 필요없는 단순한 서비스 소개 화면

 

상태유지

ex) 로그인

 

  • 로그인한 사용자의 경우 로그인 했다는 상태를 유지
  • 상태유지는 최소한만