카테고리 없음

HTTP vs HTTPS

pracoding 2025. 3. 18. 14:00

HTTP & HTTPS : 웹 사이트에서 데이터를 주고받을 때 사용하는 규칙.

웹 브라우저와 서버 간 통신을 둘 다 가능하게 하지만 HTTPS는 보안이 더 강화된 버전.

 

HTTP(HyperText Transfer Protocol) :

웹에서 데이터를 주고받는 기본적인 방식. 웹 사이트의 텍스트, 이미지, 동영상 등 서버에서 브라우저로 전송하는 규칙

- 데이터를 암호화되지 않은 상태로 전송

- 빠르고 가벼우나, 보안 취약

- URL이 http://로 시작

 

HTTPS(HyperText Transfer Protocol Secure) :

HTTP에 보안 기능이 추가된 버전. 데이터를 암호화해서 해커가 중간에 훔쳐볼 수 없게 보호.

- SSL/TLS 암호화를 사용하여 데이터를 보호

- 해커가 데이터를 가로채도 해독할 수 없음

- 보안이 중요한 은행, 쇼핑몰, 로그인 페이지 등에서 필수

- URL이 https://로 시작

 

  +) SSL / TLS 

     SSL(보안 소켓 계층)  : 1990년대에 개발된 보안 프로토콜. 보안 취약점이 발견되면서 TLS(전송 계층 보안)가 SSL 대체.

     - 웹 사이트가 HTTPS를 사용하면 SSL/TLS를 이용해 데이터를 암호화할 수 있음

    <SSL/TLS 주요 기능>

     - 데이터 암호화

     - 데이터 무결성

     - 신뢰성 보장

   <SSL/TLS의 작동 방식>

     1. 클라이언트 (웹 브라우저) -> 서버에 접속

     2. 서버 -> SSL/ TLS 인증서를 클라이언트에게 전달

     3. 클라이언트 -> 인증서를 확인하고 신뢰할 수 있는 인증서인지 확인

     4. 서버 & 클라이언트 -> 암호화 키 교환 (공개키 암호화 사용)

     5. 데이터 암호화 시작 -> 이후의 통신은 암호화된 상태로 진행됨

    이 과정을 통해 사용자가 HTTPS 사이트를 안전하게 이용 가능

 

   <SSL 인증서 로드 & https 서버 실행 >

  const https = require("https");

  const fs = require("fs");

  const express = require("express");

 

   const options = {

       key: fs.readFileSync("private-key.pem"),

      cert: fs.readFileSync("certificate.pem")

   };   

 

 https.createServer(options, app).listen(443, () => {

     console.log("secure server running on port 443");

});