HTTP 요청 메서드는 클라이언트가 서버에 수행하고자 하는 작업의 종류를 나타낸다.
| 메서드 | 설명 | 본문(Body) | 캐시(Cache) |
|---|---|---|---|
| GET | 리소스를 조회 | ❌ | ✔️ |
| POST | 리소스를 생성 또는 데이터 전송 | ✔️ | ❌ |
| PUT | 리소스를 수정(전체 변경) | ✔️ | ❌ |
| PATCH | 리소스를 부분 수정 | ✔️ | ❌ |
| DELETE | 리소스를 삭제 | ❌ | ❌ |
| HEAD | GET과 동일하지만 본문 없음 | ❌ | ✔️ |
| OPTIONS | 서버에서 지원하는 메서드 조회 | ❌ | ❌ |
?key=value)로 전달.GET /users/1 hTTP/1.1
Host: example.com
POST /users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "Alice",
"email": "alice@example.com"
}
PUT /users/1 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "Bob",
"email": "bob@example.com"
}
PATCH /users/1 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"email": "new@example.com"
}
DELETE /users/1 HTTP/1.1
Host: example.com
HEAD /users/1 HTTP/1.1
Host: example.com
OPTIONS /users HTTP/1.1
Host: example.com
HTTP 상태 코드는 서버가 요청을 어떻게 처리했는지 나타내는 3자리 숫자 코드이다.
| 범위 | 의미 |
|---|---|
| 1xx (정보) | 요청을 처리 중 |
| 2xx (성공) | 요청이 정상적으로 처리됨 |
| 3xx (리디렉션) | 요청한 리소스가 다른 곳으로 이동됨 |
| 4xx (클라이언트 오류) | 클라이언트 요청이 잘못됨 |
| 5xx (서버 오류) | 서버에서 요청을 처리하지 못함 |
100 Continue → 클라이언트가 요청을 계속해도 됨.101 Switching Protocols → 서버가 다른 프로토콜로 변경 중(예: HTTP → WebSocket).200 OK → 요청 성공. (일반적인 응답)201 Created → 새 리소스가 성공적으로 생성됨.204 No Content → 요청은 성공했지만 응답 본문이 없음.HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"name": "Alice"
}
HTTP/1.1 201 Created
Location: /users/1
301 Moved Permanently → 리소스가 영구적으로 이동됨.302 Found → 리소스가 임시적으로 이동됨.304 Not Modified → 캐시된 리소스를 사용하도록 지시.HTTP/1.1 301 Moved Permanently
Location: https://newsite.com
400 Bad Request → 잘못된 요청 (구문 오류, 잘못된 데이터 등).401 Unauthorised → 인증이 필요함.403 Forbidden → 요청이 거부됨(권한 없음).404 Not Found → 요청한 리소스를 찾을 수 없음.HTTP/1.1 401 Unauthorised
WWW-Authenticate: Bearer
HTTP/1.1 404 Not Found
500 Internal Server Error → 서버 내부 오류.502 Bad Gateway → 게이트웨이 서버 오류.503 Service Unavailable → 서버 과부하 또는 유지보수 중.HTTP/1.1 500 Internal Server Error
GET: 조회, POST: 생성, PUT: 전체 수정, PATCH: 부분 수정, DELETE: 삭제.2xx: 성공, 3xx: 리디렉션, 4xx: 클라이언트 오류, 5xx: 서버 오류.