HTTP 기본 개념에 대해 알아보자.
HTTP란?
HyperText Transfer Protocol
HTTP 메시지로 전송할 수 있는 것
- HTML, TEXT
- IMAGE, 음성, 영상, 파일
- JSON, XML (API)
거의 모든 형태의 데이터 전송이 가능하다. 따라서 지금은 HTTP 시대!
HTTP의 역사
- HTTP/0.9 (1991): GET 메서드만 지원, HTTP 헤더 X
- HTTP/1.0 (1996): 메서드, 헤더 추가
- HTTP/1.1 (1997): 가장 많이 사용, 우리에게 가장 중요한 버전
- HTTP/2 (2015): 성능 개선
- HTTP/3 (2022): TCP 대신에 UDP 사용, 성능 개선
HTTP의 특징 4가지
1. 클라이언트 서버 구조
- Request Response 구조
- 클라이언트는 서버에게 요청을 보내고, 응답을 대기
- 서버가 요청에 대한 결과를 만들어서 응답
2. 무상태 프로토콜(Stateless), 비연결성(Connectionless)
무상태 프로토콜(Stateless)
- 서버가 클라이언트의 상태를 보존하지 않는다.
- 장점: 서버 확장성 높음 (스케일 아웃)
- 단점: 클라이언트가 추가 데이터를 전송해야 한다.
비연결성(Connectionless)
- HTTP는 기본이 연결을 유지하지 않는 모델이다.
- 일반적으로 초 단위 이하의 빠른 속도로 응답
- 장점: 서버 자원을 매우 효율적으로 사용할 수 있음
- 단점: TCP/IP 연결을 새로 맞어야 함 -> 3 way handshake 시간 추가
3. HTTP 메시지
4. 단순함, 확장 가능
- HTTP는 단순하다.
- HTTP 메시지도 매우 단순
- 크게 성공하는 표준 기술은 단순하지만 확장 가능한 기술!
참고: 김영한의 "모든 개발자를 위한 HTTP 웹 기본 지식" 강의
'Backend' 카테고리의 다른 글
Spring Security Config hasRole 사용시 주의점 (0) | 2024.06.02 |
---|---|
application.properties와 application.yml 의 차이점 (0) | 2024.05.26 |
HTTP 메서드의 종류와 속성 (0) | 2024.05.12 |
Spring 분산락과 Transaction ACID 유지 (0) | 2024.05.05 |
JPA 복합키 생성 (0) | 2024.04.28 |