HTTPS – 안전한 인터넷 통신의 절차(핸드셰이크)
·
Computer Science/Network
인터넷에서 https://로 시작하는 웹사이트를 접속할 때, 단순히 페이지를 불러오는 것이 아니라 데이터가 안전하게 암호화되어 전달된다. HTTPS는 SSL/TLS 프로토콜을 기반으로, 클라이언트와 서버 간에 신뢰할 수 있는 보안 통신 채널을 구축한다. 이때 HTTPS 통신의 핵심 과정 중 하나가 핸드셰이크(Handshake)이다. 핸드셰이크란 클라이언트와 서버가 보안 세션(Security Session)을 생성하고, 사용할 암호화 방식과 키를 안전하게 합의하는 과정을 말한다. 즉, 안전하게 통신하기 위한 “서로 인사하고, 통신 규칙과 비밀 키를 정하는 단계”라고 이해하면 쉽다. 아래에서는 HTTPS 통신을 핸드셰이크 단계와 실제 데이터 전송 단계로 나누어, 데이터를 안전하게 보호하는 원리와 공개키/개인..
네트워크에서 데이터는 어떻게 전달될까(TCP/IP 모델)
·
Computer Science/Network
TCP/IP 4계층을 따라가는 데이터의 여정 우리가 웹 브라우저에 www.google.com을 입력하고 엔터를 누를 때, 눈앞에는 단순히 페이지가 열리는 것처럼 보이지만, 사실 그 뒤에서는 수많은 데이터 조각들이 정교한 협력을 통해 움직이고 있다. 인터넷 프로토콜 스위트(Internet protocol suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합이며, 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명하기도 한다. 오늘은 이 과정을 TCP/IP 모델을 중심으로, 데이터가 보내질 때(캡슐화) 그리고 도착할 때(비캡슐화) 무슨 일이 일어나는지 단계별로 살펴본다. 1. TCP/IP 모델이란?TCP/IP 모델은 인터넷에서 컴퓨터들이 정보를 주고받기 위한..
주소창에 google.com을 입력하면 일어나는 일
·
Computer Science/Web Development
주소창에 google.com을 입력하면 단순히 페이지가 열리는 것처럼 보이지만, 그 안에서는 수십 단계의 네트워크·브라우저·운영체제 레벨 프로세스가 연속적으로 일어난다. 이 과정을 이해하면 웹의 전반적인 동작 원리를 완벽히 파악할 수 있다. 1. 도메인 이름 해석 (DNS Lookup)브라우저는 먼저 사용자가 입력한 문자열이 검색어인지 URL인지 구분한다. google.com처럼 도메인 형식을 띠면 자동으로 https://google.com/ 형태로 완성한다.이때 브라우저는 HSTS(HTTP Strict Transport Security) 정책을 참고해, 이전에 HTTPS로 접속한 기록이 있으면 HTTP 대신 HTTPS를 우선 사용한다. 그다음 브라우저는 도메인을 실제 서버의 IP 주소로 변환하기 위해 ..
웹 서버(Nginx, Apache..) 의 역할
·
Computer Science/Web Development
클라이언트(브라우저)로부터 들어오는 HTTP 요청을 가장 먼저 받아 처리하는 첫 관문이다. 쉽게 말하면, 사용자와 애플리케이션 서버(Node.js, Spring 등) 사이의 중간 관리자 역할을 한다. 1. 정적 파일(Static Files) 제공웹 서버는 HTML, CSS, JS, 이미지, 폰트 같은 정적 리소스를 직접 클라이언트에 전달한다. 이때 별도의 애플리케이션 로직이 필요하지 않아 속도가 매우 빠르다./public/index.html/assets/style.css/images/logo.png이런 파일들은 Nginx나 Apache가 즉시 응답하므로 Node.js 같은 서버는 부담을 덜 수 있다. 2. 리버스 프록시(Reverse Proxy)웹 서버는 클라이언트 요청을 내부 애플리케이션 서버로 전달하..
CORS Error 는 왜 자주 발생할까? — 교차 출처 리소스 공유
·
Computer Science/Web Development
프론트엔드 개발자라면 한 번쯤 겪었을 그 문제 CORS Error. 이번 글에서는 CORS(Cross-Origin Resource Sharing)의 개념부터 원리, 해결 전략까지 깔끔히 정리해본다. 1. CORS란?CORS (Cross-Origin Resource Sharing) 은 브라우저가 보안을 위해 다른 출처(origin)의 리소스 요청을 제한하는 정책이다.즉, 브라우저는 자신이 실행 중인 웹 페이지와 다른 도메인으로의 요청을 기본적으로 차단한다. 이는 XSS(Cross-Site Scripting) 나 CSRF(Cross-Site Request Forgery) 같은 보안 공격을 방지하기 위한 핵심 메커니즘이다. 2. “출처(Origin)”란 무엇인가?하나의 Origin(출처) 은 다음 세 가지로 ..
JWT(Json Web Token)
·
Computer Science/Web Development
웹 개발을 하다 보면 로그인, 인증, 사용자 정보 보호와 관련된 문제를 반드시 마주하게 된다. 기존에는 쿠키와 세션으로 상태를 관리했지만, 특히 SPA(Single Page Application)나 API 기반 서비스에서는 서버에 상태를 저장하지 않고도 안전하게 인증과 정보 교환을 처리할 필요가 있다. 바로 이때 등장하는 것이 JWT(Json Web Token)다.JWT를 이해하면 다음과 같은 장점을 활용할 수 있다:서버에 상태를 저장하지 않고도 사용자를 인증할 수 있다.클라이언트와 서버 간 정보를 안전하게 전달할 수 있다.SPA나 모바일 앱 등 비동기 통신 환경에서 편리하게 사용 가능하다.즉, 현대 웹과 앱 개발에서 JWT는 필수 기술이다. 1. JWT의 구조JWT는 헤더(Header), 페이로드(Pa..