HTTP는 웹에서 클라이언트(예: 웹 브라우저)와 서버가 데이터를 주고받기 위한 통신 프로토콜입니다. 웹 페이지, 이미지, 동영상 같은 자원을 전송할 때 사용되며, 인터넷의 기본적인 정보 교환 방식을 담당합니다.
비암호화된 전송: HTTP로 주고받는 데이터는 평문(Plain Text)으로 전달되므로, 중간에 누군가가 데이터를 가로채면 쉽게 내용을 알아낼 수 있습니다.
요청-응답 모델: 클라이언트가 서버에 요청(Request)을 보내고, 서버가 응답(Response)을 돌려주는 Stateless 프로토콜입니다. 각 요청은 독립적으로 처리되며, 이전 요청의 정보를 기억하지 않습니다.
빠른 속도: 암호화 과정이 없기 때문에 데이터 전송이 상대적으로 빠릅니다.
포트 번호: HTTP는 80번 포트를 사용합니다.
사용 사례: 주로 보안이 크게 중요하지 않은 웹사이트(일반 블로그나 테스트 서버)에서 사용됩니다.
HTTPS는 HTTP에 SSL/TLS(Transport Layer Security)라는 암호화 프로토콜을 적용해 보안을 강화한 버전입니다. HTTPS는 데이터를 암호화해 전송하므로, 악의적인 공격자나 해커가 데이터를 훔치거나 조작하기 어렵습니다.
암호화: 모든 통신은 암호화되어 전송됩니다. 중간에서 데이터를 가로채더라도 내용이 해독되지 않습니다.
SSL/TLS 인증서 사용: HTTPS를 사용하는 서버는 인증 기관(CA)에서 발급된 디지털 인증서를 설치해야 합니다. 이 인증서는 서버가 신뢰할 수 있는 곳임을 증명합니다.
핸드셰이크 과정: HTTPS는 통신을 시작하기 전 SSL/TLS 핸드셰이크를 통해 클라이언트와 서버가 암호화 키를 교환합니다. 이 과정에서 대칭키와 비대칭키 암호화 방식이 모두 사용됩니다.
포트 번호: HTTPS는 443번 포트를 사용합니다.
사용 사례: 로그인, 결제, 개인정보 입력 등 민감한 정보를 처리하는 대부분의 웹사이트(예: 은행, 쇼핑몰)는 HTTPS를 사용합니다.

클라이언트가 서버에 접속: 브라우저가 서버에 HTTPS 연결을 요청합니다.
서버가 인증서 전송: 서버는 자신의 SSL/TLS 인증서를 클라이언트에게 전달합니다.
클라이언트가 인증서 확인: 클라이언트는 인증서가 유효한지 확인하고 신뢰할 수 있는지 검증합니다(브라우저는 인증 기관 목록을 내장하고 있습니다).
암호화 키 교환: 클라이언트와 서버가 세션 키를 교환합니다. 이때 비대칭 암호화를 사용해 키를 안전하게 교환합니다.
암호화된 통신 시작: 이후 데이터는 대칭 암호화 방식으로 암호화되어 전송됩니다(대칭 암호화는 속도가 빠릅니다).
데이터 보안 강화: HTTPS는 데이터를 암호화해 전송하므로, 중간자 공격(MITM)이나 패킷 스니핑 같은 공격에 강합니다.
사용자 신뢰 향상: 브라우저는 HTTPS를 사용하지 않는 사이트에 대해 경고 메시지를 표시하므로, HTTPS를 사용하면 사용자 신뢰가 높아집니다.
SEO(검색 엔진 최적화): 구글 등 검색 엔진은 HTTPS를 사용하는 사이트를 우선 노출합니다.
브라우저 정책 강화: 최신 브라우저는 HTTPS를 사용하지 않는 사이트에서 일부 기능(예: 위치 정보 접근)을 제한합니다.
HTTP는 평문으로 데이터를 주고받는 비보안 프로토콜입니다. 속도는 빠르지만, 보안이 중요한 환경에서는 적합하지 않습니다.
HTTPS는 HTTP에 SSL/TLS 암호화를 더해 보안을 강화한 프로토콜입니다. 민감한 정보를 다루는 모든 웹사이트에서는 HTTPS 사용이 필수적입니다.
현대의 웹사이트는 대부분 HTTPS로 전환하고 있으며, HTTPS는 단순히 보안을 넘어 사용자 신뢰와 SEO 최적화에도 중요한 역할을 합니다.