HTTP (HyperText Transfer Protocol) 란?
- 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜
- TCP/IP 기반으로 되어있음
- 거의 모든 형태의 데이터 전송 가능 (HTML, TEXT, IMAGE, 음성, 영상, 파일, JSON, XML.. 등등)
- 서버간 데이터를 주고 받을 때도 대부분 HTTP 사용
- 80번 포트 사용
<aside>
❓ 프로토콜은 컴퓨터 내부 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계
</aside>
HTTP 특징
- 클라이언트 서버 구조
- 클라이언트는 서버에 요청을 보내고 응답 대기
- 서버는 요청에 대한 결과를 만들어서 응답
- 구조가 따로 나뉘어 있으므로 독립적
- 무상태 프로토콜(Stateless)
- 클라이언트가 요청할 때 서버에 필요한 데이터를 전부 전달
- 상태 유지는 최소한만 사용 (예를 들면 로그인)
- 비연결성
- 기본이 연결을 유지하지 않는 모델
- 일반적으로 초 단위 이하의 빠른 속도로 응답 → 서버 자원을 매우 효율적으로 사용 가능
- 트래픽이 많고 큰 규모의 서비스를 운영할 때는 한계가 보임
<aside>
⚠️ 문제점 : 암호화 되지 않은 평문 데이터를 전송 → 제3자가 정보 조회 가능 ⇒ 보안 취약!
</aside>
HTTPS(HyperText Transfer Protocol Secure)란?
<aside>
❓ SSL? TLS?
- SSL? → Application 계층과 TCP 계층 사이에 존재하며 일종의 보안 계층
- TLS? → SSL이 보편화되면서 국제 표준 기구(IETF)에서 관리하면서 TLS로 변경됨
</aside>