클라이언트와 서버 간에 텍스트 기반의 데이터를 주고받는 프로토콜이다.
주로 웹 브라우저와 웹 서버 간의 통신에 사용된다.
HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다. HTTP는 상태를 가지고 있지 않는 Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성
데이터 전송 시 암호화가 이루어지지 않기 때문에, 중간에서 데이터를 가로채거나 수정할 수 있는 보안 취약점이 존재한다.
HTTP의 데이터 암호화가 추가된 버전으로, SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용하여 데이터를 암호화한다.
HTTPS는 대칭키 암호화와 비대칭키 암호화를 모두 사용한다.
클라이언트와 서버가 동일한 키를 사용해 암호화/복호화를 진행함
키가 노출되면 매우 위험하지만 연산 속도가 빠름
1개의 쌍으로 구성된 공개키와 개인키를 암호화/복호화 하는데 사용함
키가 노출되어도 비교적 안전하지만 연산 속도가 느림
민감한 데이터를 주고 받아야 한다면 HTTPS 사용 노출이 되어도 괜찮은 단순한 정보를 처리하고 있다면 HTTP를 이용하면된다.