Network
[HTTP] HTTP 기본 / 클라이언트 - 서버
Gray__
2021. 8. 25. 21:18

HTTP
HyperText Transfer Protocol
HTTP 메시지에 모든 것을 전송
- HTML, TEXT
- IMAGE, 음성, 영상, 파일
- JSON, XML (API)
- 거의 모든 형태의 데이터 전송 가능
- 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용
- 지금은 HTTP 시대
HTTP 역사
• HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X
• HTTP/1.0 1996년: 메서드, 헤더 추가
• HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전
• RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014)
• HTTP/2 2015년: 성능 개선
• HTTP/3 진행중: TCP 대신에 UDP 사용, 성능 개선
기반 프로토콜
- TCP : HTTP/1.1, HTTP/2
- UDP : HTTP/3
- 현재 HTTP/1.1 주로 사용
- HTTP/2, HTTP/3 도 점점 증가
HTTP 특징
- 클라이언트 서버 구조
- 무상태 프로토콜(StateLess), 비연결성
- HTTP 메시지
- 단순함, 확장 가능
클라이언트 서버 구조

- Request Response 구조
- 클라이언트는 서버에 요청을 보내고, 서버의 응답을 대기
- 서버가 요청에 대한 결과를 만들어서 응답
- 분리를 하는 것이 되게 중요하다 -> 클라이언트, 서버 각각 독립적으로 진화
- 비즈니스 로직과 데이터는 서버가 집중하고, UI와 사용성은 클라이언트가 집중한다
무상태 프로토콜 (Stateless)
- 서버가 클라이언트의 상태를 보존 X
- 장점 : 서버의 확장성이 높다
- 단점 : 클라이언트가 추가 데이터를 전송해야 한다