1. HTTP와 HTTPS의 근본적인 차이
HTTP (HyperText Transfer Protocol)
- 개념: 텍스트 기반의 데이터를 주고받는 프로토콜이다.
- 단점: 암호화되지 않은 '평문(Plaintext)'을 전송한다. 누군가 중간에서 패킷을 가로채면 아이디, 비밀번호 등을 그대로 볼 수 있다. (마치 내용을 누구나 볼 수 있는 엽서와 같다.)
- 포트 번호: 기본적으로 80번 포트를 사용한다.
HTTPS (HTTP Secure)
- 개념: HTTP에 SSL(Secure Socket Layer) 또는 TLS(Transport Layer Security) 프로토콜을 얹어 데이터를 암호화한 버전이다.
- 장점: 데이터를 암호화하여 전송하므로 가로채더라도 내용을 알 수 없다. (내용을 암호문으로 적고 금고에 넣어 보내는 것과 같습니다.)
- 포트 번호: 기본적으로 443번 포트를 사용한다.
2. HTTPS가 보안을 유지하는 3가지 핵심 요소
단순히 "암호화한다"를 넘어, 면접에서는 다음 세 가지 키워드를 언급하는 것이 중요하다.
- 기밀성 (Confidentiality): 오직 인가된 사람만 데이터를 읽을 수 있다. (암호화)
- 무결성 (Integrity): 데이터가 전송 중에 변조되지 않았음을 보장한다.
- 인증 (Authentication): 내가 접속한 사이트가 진짜 그 사이트가 맞는지 증명한다. (CA 기관의 인증서)
3. 작동 원리: SSL/TLS Handshake
HTTPS는 데이터를 주고받기 전, 앞서 배운 TCP 3-Way Handshake 이후에 SSL/TLS Handshake 과정을 한 번 더 거친다.
- Handshake: 클라이언트와 서버가 서로 인사하며 암호화 알고리즘을 선택하고 공개키를 교환한다.
- 인증서 확인: 클라이언트는 서버가 보낸 인증서가 신뢰할 수 있는 기관(CA)에서 발급된 것인지 확인한다.
- 대칭키 생성: 데이터 전송에 사용할 대칭키를 안전하게 생성하여 공유한다.
- 암호화 통신: 이후부터는 이 대칭키로 실제 데이터를 암호화하여 주고받는다.
4. HTTPS의 추가적인 장점
- SEO (검색 엔진 최적화): 구글 등 검색 엔진은 HTTPS를 사용하는 사이트에 가산점을 주어 검색 결과 상단에 노출시킨다.
- 신뢰도: 브라우저 주소창의 '자물쇠' 아이콘을 통해 사용자에게 안전한 사이트임을 알릴 수 있다.
- HTTP/2 지원: 최신 고성능 프로토콜인 HTTP/2는 대부분 HTTPS 환경에서만 동작한다.
면접 답변식 요약
HTTP와 HTTPS의 가장 큰 차이점은 보안성입니다.
HTTP는 데이터를 평문으로 전송하기 때문에 보안에 취약하며 80번 포트를 사용합니다. 반면 HTTPS는 HTTP에 SSL/TLS 프로토콜을 추가하여 데이터를 암호화 전송하며 443번 포트를 사용합니다.
HTTPS는 기밀성, 무결성, 인증이라는 세 가지 보안 가치를 제공합니다. 클라이언트와 서버가 실제 데이터를 주고받기 전 SSL Handshake를 통해 신뢰할 수 있는 인증서인지 확인하고 암호화 키를 공유하는 과정을 거칩니다.
최근에는 보안뿐만 아니라 SEO 최적화와 HTTP/2 같은 최신 프로토콜 지원을 위해 HTTPS 사용이 필수적입니다. 다만, 암호화 과정에서 추가적인 CPU 연산이 발생할 수 있지만 최근 하드웨어 성능에서는 그 차이가 미미합니다.
'Daily Dev Q&A 정리 템플릿' 카테고리의 다른 글
| 26.01.27 트랜잭션과 인덱스는 어떤 관계가 있을까? (0) | 2026.01.27 |
|---|---|
| 26.01.23 쿠키와 세션 중에 어떤것을 사용해야 할까? (0) | 2026.01.23 |
| 26.01.21 GET, POST의 개념과 함께 데이터 흐름 알아보자. (0) | 2026.01.21 |
| 26.01.20 3-way-handshake (0) | 2026.01.20 |
| 26.01.19 TCP와 UDP의 차이점을 설명해보기 (1) | 2026.01.19 |