티스토리 뷰
📌 HTTP 프로토콜이란?
HTTP(HyperText Transfer Protocol)는 **웹에서 데이터를 주고받기 위한 규칙(프로토콜)**이야.
브라우저(클라이언트)와 서버가 서로 통신할 때 사용하는 기본적인 프로토콜이고, 우리가 웹사이트를 방문할 때 항상 사용돼.
예를 들어,
- 네이버에 접속할 때 → https://www.naver.com
- 구글 검색할 때 → https://www.google.com/search?q=chatgpt
이처럼 **웹사이트 주소(URL)**는 http:// 또는 https://로 시작하는데, 이게 바로 HTTP 프로토콜을 사용한다는 의미야.
🌍 HTTP 통신의 동작 방식
HTTP는 클라이언트-서버 모델을 기반으로 동작해.
✅ 1. 클라이언트(Client)
👉 사용자가 브라우저(Chrome, Edge 등)를 통해 요청을 보내는 장치
👉 웹사이트를 열거나 데이터를 요청하는 역할
✅ 2. 서버(Server)
👉 클라이언트의 요청을 받아서 처리하고, 응답을 보내는 장치
👉 데이터베이스와 연결해서 필요한 정보를 제공
📌 HTTP 요청-응답 과정 (요청/응답 방식)
1️⃣ 클라이언트(브라우저)가 **서버에 요청(Request)**을 보냄.
2️⃣ 서버는 요청을 받아서 처리하고, **응답(Response)**을 반환함.
3️⃣ 클라이언트는 서버의 응답을 받아 웹페이지를 표시함.
📌 예제:
- 사용자가 https://www.naver.com에 접속
- 브라우저가 naver.com 서버에 HTTP 요청 전송
- 네이버 서버가 요청을 받아 홈페이지 HTML을 응답
- 브라우저가 HTML을 렌더링하여 화면에 표시
🛠️ HTTP의 주요 개념
1️⃣ HTTP 요청(Request)
클라이언트가 서버에 데이터를 요청할 때 사용.
구성 요소:
- 요청 메서드 (GET, POST 등)
- 요청 URL (/users, /products 등)
- 헤더 (Header) → 요청 정보 포함 (예: 인증 정보, 데이터 형식 등)
- 바디 (Body, 요청 본문) → 필요한 경우 요청 데이터 포함
📌 예제 요청:
GET /users HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: application/json
2️⃣ HTTP 응답(Response)
서버가 클라이언트의 요청을 처리한 후 결과를 보내줌.
구성 요소:
- 상태 코드 (200, 404, 500 등)
- 헤더 (Header) → 응답 정보 포함 (예: 데이터 형식, 쿠키 등)
- 바디 (Body, 응답 본문) → 요청한 데이터 포함
📌 예제 응답:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"name": "Alice"
}
📝 HTTP 주요 메서드 (요청 방식)
메서드 | 설명 |
GET | 데이터를 조회할 때 사용 |
POST | 새로운 데이터를 서버에 보낼 때 사용 |
PUT | 기존 데이터를 수정할 때 사용 |
DELETE | 데이터를 삭제할 때 사용 |
📌 예제:
GET /users HTTP/1.1 → 사용자 목록 조회
POST /users HTTP/1.1 → 새로운 사용자 추가
PUT /users/1 HTTP/1.1 → 사용자 정보 수정
DELETE /users/1 HTTP/1.1 → 사용자 삭제
🔐 HTTP vs HTTPS
프로토콜 | 설명 |
HTTP | 데이터를 암호화하지 않고 전달 (보안 취약) |
HTTPS | SSL/TLS 암호화를 사용하여 보안 강화 |
✅ HTTPS를 사용하는 이유?
- 개인 정보 보호 (비밀번호, 카드 정보 보호)
- 데이터 변조 방지 (중간에 해커가 데이터를 바꾸지 못함)
- SEO(검색 엔진 최적화)에도 유리
🔥 결론
- HTTP는 웹에서 데이터를 주고받는 규칙(프로토콜)
- 클라이언트(브라우저)가 요청을 보내고, 서버가 응답을 반환
- 주요 요청 방식: GET(조회), POST(생성), PUT(수정), DELETE(삭제)
- 보안 강화를 위해 HTTPS를 사용하는 것이 좋음
'IT 지식' 카테고리의 다른 글
비동기(Asynchronous) vs 멀티스레딩(Multi-threading) (0) | 2025.02.04 |
---|---|
동기(Synchronous) vs 비동기(Asynchronous) 개념 정리 (0) | 2025.02.04 |
SPA란? Single Page Application (1) | 2025.01.22 |