지난 API와 REST API를 포스팅 했을 때 HTTP가 무엇인지를 살펴보았다.
이번 포스팅에서는 HTTP와 HTTPS의 차이를 살펴보자!
우선 차이점을 표로 살펴보자
HTTP | HTTPS | |
---|---|---|
본말 | Hypertext Transfer Protocol | Hypertext Transfer Protocol Secure |
기본 프로토콜 | HTTP/1과 HTTP/2는 TCP/IP를 사용, HTTP/3은 QUIC 프로토콜을 사용 | SSL/TLS와 함께 HTTP/2 사용 |
기본 포트 | 80 | 443 |
보안 | 보안 기능 없음 | 퍼블릭 키 암호화에 SSL 인증서 사용 |
HTTP와 HTTPS의 가장 큰 차이점은 보안이다.
HTTP 프로토콜은 서버에서부터 브라우저로 전송되는 정보가 암호화 되지 않는다. 웹상의 데이터 메세지는 누구나 읽을 수 있는 일반 텍스트로 전송이 되기 때문이다. 따라서 전송되는 데이터가 누구나 볼 수 있어 데이터를 쉽게 도난당할 수 있다는 문제가 있다.
SSL 인증서를 HTTP 프로토콜에 추가하여 보안 문제를 해결한 것이 HTTPS이다.
( HTTP + S(Secure) = HTTPS )
HTTPS를 사용하면 비밀번호와 같은 민감한 정보가 암호화되어 전송되기 때문에 누군가가 해당 정보를 가로챈다고 해도 암호화된 상태로 존재하여 해독할 수 없다.
HTTPS 프로토콜은 SSL/TLS 인증서를 통해 데이터를 암호화하여 보안을 강화한다!
SSL/TLS은 암호화 기반 인터넷 보안 프로토콜을 의미하며, 웹 사이트와 브라우저 사이 전송되는 데이터를 암호화하여 민감한 정보를 주고받을 때 데이터를 도난 당하는 것을 보호해준다.
SSL/TLS은 데이터를 암호화하기 위해 대칭키 암호화와 공개키(비대칭키) 암호화 방법을 혼용해서 사용한다.
SSL/TLS에 관한 암호화 방식에 대해선 https://babbab2.tistory.com/4 여기서 확인해보자
(추후 공개키 암호와 대칭키 암호에 대해 포스팅할 예정)
SSL/TLS은 데이터 무결성을 제공한다.
따라서 데이터가 전송 중에 수정되거나 손상되는 것을 방지하고 사용자가 자신이 의도하는 웹사이트와 통신하고 있음을 입증하는 인증기능을 제공해준다.
HTTP - TCP (HTTP는 바로 TCP와 통신)
HTTPS - SSL/TLS - TCP (HTTPS는 SSL을 거쳐 TCP와 통신)