🌐 HTTP(HyperText Transfer Protocol)란?
- 클라이언트와 서버가 HTML, 이미지, JSON, 파일 등을 주고받을 수 있게 해주는 애플리케이션 계층 프로토콜
- 클라이언트-서버 구조
- 무상태(Stateless)
- 비연결(Connectionless)
- 텍스트 기반의 요청-응답 모델
- 기본 버전: HTTP/1.1 (→ HTTP/2, HTTP/3로 발전 중)
🔁 HTTP 동작 순서

⚙️ HTTP의 구조적 특징
1. 클라이언트와 서버 구조
2. 무상태(Stateless)
3. 비연결(Connectionless)
📨 HTTP 메시지 구조

✅ HTTP 요청 메시지 (Request Message)
Start Line Headers Empty Line Body
Start Line
/api/posts)HTTP/1.1)Header
Body
✅ HTTP 응답 메세지(Response Message)
Start Line Headers Empty Line Body
Start Line
Header
Body
🔧 주요 HTTP 메서드 (Method)
- GET : 리소스 조회
1. Query String 미포함하는 경우

→ GET의 경우 Message Body가 지원되지 않는 경우가 많아 권장하지 않음
2. Query String 포함하는 경우

→ 서버에 추가적인 데이터 전송을 해야 한다면, Message Body가 아닌 Query String(Query Parameter)를 사용함
- PUT : 리소스 덮어쓰기: 리소스 덮어쓰기
- POST와 다르게 클라이언트 측에서 리소스를 식별하여 URI를 지정함
1. 기존 리소스가 존재하는 경우

→ 리소스 전체 수정
2. 기존 리소스가 존재하고 일부만 변경하는 경우 ★

→ 기존 리소스가 존재하면 완전히 덮어쓰기가 됨
3. 기존 리소스가 없는 경우

→ 리소스가 없으면 생성됨
- PATCH : 리소스 부분 수정

- DELETE : 리소스 삭제

| Method | 용도 | 특징 |
|---|---|---|
| GET | 리소스 조회 | Body 없음, Query String 사용 |
| POST | 리소스 생성 | Body에 데이터 포함 (Form, JSON 등) |
| PUT | 리소스 전체 수정/생성 | 자원 URI를 클라이언트가 지정 |
| PATCH | 리소스 부분 수정 | 필요한 필드만 수정 |
| DELETE | 리소스 삭제 | 요청 Body 거의 사용 안 함 |
> 기타 메서드