OZ

[Node.js] 네트워크와 HTTP / HTTPS

iun 2025. 2. 4. 20:55

네트워크 종류

LAN (Local Area Network) 

작은 단위의 네트워크로

주로 가까운 네트워크끼리 쓰인다

MAN (Metropolitan Area Network)
중간 단위의 네트워크로
주로 도시마다의 네트워크끼리 쓰인다

WAN (Wide Area Network)
가장 큰 단위의 네트워크로
주로 나라마다의 네트워크끼리 쓰인다

 

택배로 비유하면 LAN(직접배송) MAN(차 배송) WAN(비행기/선박 배송) 으로 보면 된다

 

 

 

네트워크 계층

대표적인 네트워크 계층 모델로는 OSI 7계층이 있다

데이터를 보내거나 받을 때 위의 계층을 따르게 되는데

택배마냥 데이터도 변환하고 포장하고를 거쳐 전송하고 받게된다

 

 

 

 

HTTP / HTTPS

HTTP? 

Hyper Text Transfer Protocol

웹에서 데이터를 전송하는 프로토콜

웹 브라우저와 웹 서버 간에 정보를 주고받는 규칙을 정의하는 방식이다

HTTP 기능은 아래와 같다

 

  • 웹 페이지 요청과 전송: HTTP는 사용자가 웹사이트를 방문할 때, 웹 브라우저가 서버에 요청을 보내고, 서버가 그 요청에 대한 웹 페이지나 데이터를 응답하는 방식으로 작동합니다.
  • 클라이언트-서버 모델: HTTP는 기본적으로 **클라이언트(사용자의 웹 브라우저)**가 요청을 보내고, 서버가 그 요청에 대해 응답을 보내는 형태로 이루어집니다. 이때 요청과 응답은 텍스트 형식으로 전달됩니다.
  • 상태 없는 프로토콜: HTTP는 상태를 유지하지 않습니다. 즉, 각 요청은 독립적이고, 서버는 클라이언트가 이전에 보낸 요청이나 응답을 기억하지 않습니다. 이 때문에 세션 관리쿠키 등의 방법을 사용하여 상태를 추적할 수 있습니다.

 

 

 

HTTPS? 

HyperText Transfer Protocol Secure

웹사이트와 사용자 간의 데이터를 안전하게 전송하기 위한 프로토콜

일반 HTTP에 암호화 기능을 추가한 형태

HTTPS 기능은 아래와 같다

 

  • 암호화: HTTPS는 데이터를 암호화하여 전송합니다. 이로 인해 중간에 제3자가 데이터를 가로채거나 변조하는 것을 방지합니다
  • 서버 인증: HTTPS는 서버가 신뢰할 수 있는 인증기관(CA)으로부터 인증서를 발급받아서 사용자가 접속하는 웹사이트가 실제로 올바른 웹사이트인지 확인할 수 있게 해줍니다
  • 데이터 무결성: HTTPS는 전송된 데이터가 중간에서 변경되지 않았음을 보장합니다. 즉, 데이터가 도중에 변조되지 않도록 보호합니다

HTTP와 HTTPS의 주요 차이점보안으로

HTTP는 데이터가 암호화되지 않아서 제3자가 데이터를 쉽게 엿볼 수 있지만

HTTPS는 이를 막기 위해 SSL/TLS 암호화를 사용한다

 

특히 개인 정보나 금융 거래와 같은

민감한 정보를 다루는 웹사이트에서 필수적으로 사용하는 걸 볼 수 있다

 

 

 

HTTPS의 대칭키와 비대칭키 암호화

대칭키 암호화비대칭키 암호화를 함께 사용하여 데이터를 안전하게 전송한다

이 두 가지 암호화 방식은 각기 다른 특성을 가지고 있으며,

HTTPS에서 보안과 성능을 모두 보장하는데 중요한 역할을 한다

 

비대칭키 암호화 (처음 연결할 때) 

  1. 서버에서 공개키를 클라이언트로 전송
  2. 클라이언트는 이 공개키로 비밀 키(세션 키)를 암호화해서 서버에 전송
  3. 서버는 자신의 비공개키로 그 비밀 키를 복호화

이때 공개키로 암호화한 데이터는 오직 비공개키로만 풀 수 있다

그래서 키를 안전하게 주고받을 수 있게 된다

 

 

 

대칭키 암호화 (데이터를 실제로 주고받을 때) 

  • 위에서 교환한 비밀 키(세션 키)를 이용해 데이터를 암호화하고 복호화 작업

빠르고 효율적이라 실제 데이터는 이렇게 암호화되어서 전송된다

'OZ' 카테고리의 다른 글

[OAuth2.0] 카카오 / 네이버 로그인  (1) 2025.02.10
[OAuth2.0] 개념  (0) 2025.02.09
[React] 번들링과 코드스플리팅  (0) 2025.01.12
[React] 최적화  (0) 2025.01.12
[Raect] Redux  (0) 2025.01.11