모든 것이 HTTP
HTTP 메시지에 모든 것을 전송
- HTML, TEXT
- IMAGE, 음성, 영상 파일
- JSON, XML(API)
- 거의 모든 형태의 데이터를 전송이 가능하다.
- 서버간에 데이터를 주고 받을 때도 대부분 HTTP를 사용한다.
* 실무에서 일을 해보면 서번간에 통신을 할 때 TCP 프로토콜을 이용해서 직접 전송한다 이런 경우는 거의 없다. 거의 항상 HTTP 프로토콜을 이용해서 전송한다. TCP를 직접 연결해서 전송할 경우는 게임서버나 특수한 경우밖에 없다.
HTTP 역사
- HTTP/0.9 1991년: GET 메소드만 지원, HTTP 헤더X
- HTTP/1.0 1996년: 메소드, 헤더 추가
- HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전(그리고 계속 이 버전이 업그레이드 됨)
- HTTP/2 2015년: 성능 개선
- HTTP/3 진행중: TCP 대신에 UDP 사용, 성능 개선
기반 프로토콜
- TCP: HTTP1.1, HTTP/2
- UDP: HTTP/3
- 현재 HTTP/1.1 주로 사용
- HTTP/2, HTTP/3도 점점 증가
* HTTP2와 HTTP3은 HTTP1.1을 업그레이드한거여서 우리는 HTTP/1.1개념만 알면 되긴한다.
HTTP특징
- 클라이언트 서버 구조로 동작하낟.
- 무상태 프로토콜(스트레이리스), 비연결성
- HTTP 메시지
- 단순함, 확장 가능
클라이언트 서버 구조
- 위 사진처럼 Request Response 구조
- 클라이언트는 서버에 요청을 보내고, 응답을 대기
- 서버가 요청에 대한 결과를 만들어서 응답
위에 개념은 표면적일뿐!
클라이언트와 서버 개념을 분리하는 것이 중요하다. 비즈니스 로직이랑 데이터 같은 것들은 서버에 밀어 넣는다. 그리고 클라이언트는 UI와 사용성에 집중한다. 예를 들자면, 만약 회사가 잘되는 회사여서 트래픽 개수가 만개가 넘을 경우에는 우리는 클라이언트를 손 안대고 서버에만 손대면 된다.
'HTTP 웹 지식' 카테고리의 다른 글
HTTP 기본3(비 연결성) (0) | 2022.01.07 |
---|---|
HTTP 기본2(Stateful, Stateless) (0) | 2022.01.06 |
웹 브라우저 요청 흐름 (0) | 2022.01.06 |
URI (0) | 2022.01.06 |
인터넷 네트워크3 (PORT, DNS) (0) | 2022.01.06 |