-
HTTP란? 개념부터 동작 방식까지 한눈에 정리!Developer 2025. 2. 6. 09:00728x90
1. HTTP란?
HTTP(HyperText Transfer Protocol, 하이퍼텍스트 전송 프로토콜)은 웹에서 데이터를 주고받기 위한 통신 규약입니다. 브라우저가 웹 서버에 요청(Request)을 보내고, 서버가 응답(Response)을 반환하는 방식으로 동작합니다.
✅ 예를 들어, 우리가 웹사이트에 접속할 때 브라우저는 HTTP 요청을 보내고, 서버는 해당 요청에 맞는 HTML 문서를 응답하여 웹페이지를 렌더링합니다.
HTTP는 비연결성(Connectionless)과 무상태성(Stateless)을 가지는 프로토콜로, 요청과 응답이 끝나면 연결이 종료되며, 상태를 유지하지 않습니다.
2. HTTP의 기본 동작 원리
HTTP는 클라이언트-서버 모델을 기반으로 동작하며, 아래와 같은 단계를 거쳐 데이터를 주고받습니다.
1️⃣ 클라이언트(웹 브라우저)가 서버에 요청을 보냄 (예: 사용자가 웹사이트 주소 입력 후 접속)
2️⃣ 웹 서버가 요청을 처리하고, 적절한 응답을 생성
3️⃣ 응답 데이터(HTML, JSON 등)를 클라이언트로 전송
4️⃣ 클라이언트가 응답 데이터를 렌더링하여 사용자에게 표시
✅ HTTP 요청과 응답 예시
GET /index.html HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0
서버 응답:
HTTP/1.1 200 OK Content-Type: text/html <html> <body> <h1>Welcome to Example</h1> </body> </html>
3. HTTP의 주요 특징
✅ 1) 비연결성(Connectionless)
- HTTP는 요청과 응답이 이루어진 후 연결이 종료됨 (한 번의 요청이 끝나면 서버와의 연결이 유지되지 않음)
- 지속적인 연결이 필요한 경우, HTTP/1.1의 Keep-Alive나 HTTP/2의 멀티플렉싱을 사용
✅ 2) 무상태성(Stateless)
- 각 요청은 독립적으로 처리되며, 이전 요청의 정보를 기억하지 않음
- 상태를 유지하려면 쿠키(Cookie), 세션(Session), JWT(Json Web Token) 등을 활용해야 함
✅ 3) 확장성
- HTTP는 텍스트 기반 프로토콜로, 다양한 데이터 전송이 가능 (HTML, JSON, XML, 이미지 등)
- 버전 업그레이드를 통해 성능 향상 (HTTP/1.1 → HTTP/2 → HTTP/3)
4. HTTP 요청(Request) 메서드
HTTP 메서드 설명 GET 데이터를 요청 (예: 웹페이지 조회) POST 데이터를 서버에 제출 (예: 로그인, 회원가입) PUT 기존 데이터를 수정 (전체 업데이트) PATCH 기존 데이터를 부분 수정 DELETE 데이터 삭제 ✅ GET 요청 예제
GET /products HTTP/1.1 Host: www.example.com
✅ POST 요청 예제
POST /login HTTP/1.1 Host: www.example.com Content-Type: application/json { "username": "user123", "password": "securepass" }
5. HTTP 상태 코드(Status Code)
서버가 클라이언트 요청을 처리한 결과를 응답 코드로 제공함.
상태 코드 의미 200 OK 요청 성공 301 Moved Permanently URL이 영구적으로 변경됨 400 Bad Request 잘못된 요청 (클라이언트 오류) 401 Unauthorized 인증 필요 403 Forbidden 접근 금지 404 Not Found 요청한 리소스를 찾을 수 없음 500 Internal Server Error 서버 내부 오류 ✅ 응답 예제 (404 Not Found)
HTTP/1.1 404 Not Found Content-Type: text/html <html> <body> <h1>Page Not Found</h1> </body> </html>
6. HTTP 버전별 차이점
버전 특징 HTTP/1.0 단일 요청-응답 방식 (연결 유지 X) HTTP/1.1 Keep-Alive로 연결 유지 가능, 파이프라이닝 지원 HTTP/2 멀티플렉싱 지원, 속도 향상 HTTP/3 UDP 기반 QUIC 프로토콜 사용, 성능 개선 ✅ HTTP/2의 멀티플렉싱이란?
한 번의 연결로 여러 요청을 동시에 처리하여 성능을 크게 향상시키는 방식.
7. HTTPS와 HTTP 차이
비교 항목 HTTP HTTPS 보안성 데이터 암호화 X SSL/TLS 암호화 적용 포트 번호 80 443 속도 상대적으로 빠름 암호화로 인해 다소 느림 (최신 최적화 적용 시 속도 문제 없음) ✅ HTTPS를 사용하는 이유
- 데이터 암호화로 보안 강화 (예: 로그인 정보, 결제 정보 보호)
- 신뢰성 있는 사이트로 인식 (SEO에 긍정적 영향)
8. 결론
HTTP는 웹 통신의 핵심 프로토콜로, 우리가 웹사이트를 방문하고 데이터를 주고받을 때 필수적인 역할을 합니다. 최신 HTTP 버전과 보안 프로토콜(HTTPS)을 적절히 활용하면 더 빠르고 안전한 웹 서비스를 제공할 수 있습니다. 🚀
728x90'Developer' 카테고리의 다른 글
제로 런타임 CSS(Zero Runtime CSS)란? 최신 스타일링 기법 완벽 정리 (2) 2025.02.08 HTTP Body vs Header: 네트워크 통신에서의 차이점 완벽 정리! (0) 2025.02.07 Streaming SSR(서버 사이드 렌더링) 완벽 정리: 빠른 페이지 로딩을 위한 최적화 전략 (0) 2025.02.05 시맨틱 마크업(Semantic Markup)이란? 개념과 중요성 완벽 정리 (4) 2025.02.04 서버 컴포넌트(Server Components)란? 개념부터 활용까지 완벽 정리 (2) 2025.02.03