HTTP와 HTTPS
브라우저 주소창을 보면 어떤 웹사이트는 http:// 로 시작하고, 어떤 곳은 https:// 로 시작합니다. 둘 다 웹 페이지를 여는 데 사용되지만, 실제로는 웹의 보안성과 신뢰성에 매우 큰 차이가 있습니다.
이 글에서는 HTTP와 HTTPS의 구조적 차이, 왜 HTTPS를 써야 하는지, 그리고 SSL/TLS와 인증서의 역할까지 자세히 설명합니다.
1. HTTP란?
HTTP (HyperText Transfer Protocol) 는 웹에서 클라이언트(브라우저)와 서버가 문서, 이미지, 데이터 등을 주고받기 위한 표준 프로토콜입니다.
가장 큰 특징은 텍스트 기반이며, 암호화되지 않은 상태로 데이터를 주고받는다는 점입니다.
예시 : HTTP 요청
GET /login HTTP/1.1
Host: example.com
- 이런 요청은 누구나 중간에서 가로채면 읽을 수 있습니다. 즉, 로그인 정보, 쿠키, 세션 ID 같은 민감한 데이터가 노출될 수 있는 구조입니다.
2. HTTPS란?
HTTPS (HyperText Transfer Protocol Secure) 는 HTTP에 보안 계층(SSL/TLS)을 추가한 프로토콜입니다.
데이터를 주고받기 전에 암호화 과정을 거치므로, 통신 내용을 외부에서 볼 수 없습니다.
핵심 구성
- HTTP + TLS(Transport Layer Security) = HTTPS
- 데이터를 암호화, 무결성 보장, 서버 인증까지 수행
3. HTTP와 HTTPS 비교 표
항목 | HTTP | HTTPS |
보안 | 없음 | SSL/TLS로 암호화됨 |
포트 번호 | 기본 80번 | 기본 443번 |
속도 | 약간 빠름 (암호화 없음) | 약간 느림 (초기 핸드셰이크 필요) |
인증서 필요 | 필요 없음 | SSL 인증서 필요 |
주소창 표시 | http:// | https:// + 자물쇠 아이콘 |
사용 권장 여부 | 사용 지양 | 전면 사용 권장 |
4. HTTPS의 핵심 기술 : SSL/TLS
HTTPS의 기반이 되는 보안 프로토콜로, 클라이언트와 서버 간 통신을 암호화하고 무결성과 인증을 제공합니다.
TLS란?
- TLS (Transport Layer Security) 는 이전 SSL의 발전 버전입니다.
- 브라우저와 서버 간 데이터를 암호화하여 제3자가 볼 수 없게 합니다.
- 또한, 데이터가 중간에 위조되지 않았는지 확인도 가능합니다.
인증서 역할
- HTTPS를 사용하려면 공인된 인증기관(CA)에서 SSL 인증서를 발급받아야 합니다.
- 이 인증서는 사용자가 접속한 서버가 진짜인지 확인해주는 역할을 합니다.
- 인증서가 유효하면 브라우저에 자물쇠 아이콘이 나타납니다.
HTTPS가 중요한 이유
- 로그인 정보 보호
- HTTP에서는 아이디, 비밀번호가 평문(Plain Text)으로 전송되므로 탈취 위험이 큽니다.
- 세션 하이재킹 방지
- HTTPS는 쿠키, 세션 토큰을 암호화된 채널로 전송하므로, 중간자 공격(MITM)을 방지합니다.
- SEO 가산점
- 구글은 HTTPS 사이트에 검색 순위 우선권을 줍니다.
- 사용자 신뢰도 상승
- 브라우저가 HTTPS가 아닌 사이트에 "보안되지 않음" 경고를 표시하므로 신뢰에 큰 영향을 줍니다.
예시 - Express 서버에 HTTPS 적용
const https = require('https');
const fs = require('fs');
const express = require('express');
const app = express();
const options = {
key: fs.readFileSync('./key.pem'),
cert: fs.readFileSync('./cert.pem')
};
app.get('/', (req, res) => {
res.send('Hello HTTPS!');
});
https.createServer(options, app).listen(443, () => {
console.log('HTTPS server running on port 443');
});
- 위 코드는 로컬에서 테스트용으로 사용할 수 있으며, 실제 배포 시에는 공인된 인증서를 사용해야 합니다.
5. 마무리
HTTPS는 선택이 아닌 필수
- HTTP는 암호화되지 않아 보안 위협에 노출됩니다.
- HTTPS는 TLS를 통해 암호화, 무결성, 인증을 제공합니다.
- 인증서와 암호화 기술을 통해 신뢰성과 보안성이 보장됩니다.
- 오늘날 웹 서비스라면 반드시 HTTPS를 적용해야 합니다.
함께 보면 좋은 자료
외부 사이트 :
블로그 글 :
[OSI 7계층과 TCP/IP 4계층] 네트워크의 설계도
OSI 7계층과 TCP/IP 4계층 네트워크 통신이 어떻게 이루어지는지를 체계적으로 설명하기 위해 등장한 개념이 바로 OSI 7계층 모델과 TCP/IP 4계층 모델입니다. 이 글에서는 각 계층의 역할과 주요 프
dachaes-devlogs.tistory.com
[프로토콜] 컴퓨터 세상에서의 약속과 규칙
프로토콜(Protocol) 인터넷은 어떻게 서로 다른 컴퓨터끼리 정보를 주고받을 수 있을까요? 브라우저에서 주소를 입력하면 어떻게 웹사이트가 열릴까요? 그 모든 과정의 중심에는 바로 **프로토콜(
dachaes-devlogs.tistory.com
[TCP와 UDP] 데이터 전송의 두 축
TCP(Transmission Control Protocol) 와 UDP(User Datagram Protocol) 웹 브라우저로 웹사이트를 열든, 화상 회의를 하든, 온라인 게임을 하든 인터넷에서 데이터가 전송되는 방식에는 반드시 전송 계층 프로토콜
dachaes-devlogs.tistory.com
'컴퓨터 사이언스 > 네트워크' 카테고리의 다른 글
[OSI 7계층과 TCP/IP 4계층] 네트워크의 설계도 (0) | 2025.04.13 |
---|---|
[TCP와 UDP] 데이터 전송의 두 축 (0) | 2025.04.13 |
[프로토콜] 컴퓨터 세상에서의 약속과 규칙 (0) | 2025.04.13 |
[HTTP 상태 코드] 웹 통신의 응답 언어를 이해하기 (0) | 2025.04.13 |
[RESTful API] 웹 서비스를 설계하는 가장 보편적인 방식 (0) | 2025.04.13 |