728x90
1. HTTP 요청 구조
HTTP 요청은 **클라이언트(브라우저, 모바일 앱 등)**에서 서버로 보내는 데이터입니다.
요청을 어떻게 보내고, 어떤 정보를 포함하는지 이해하는 것이 중요합니다.
✅ HTTP 요청의 구성 요소
- URL (Uniform Resource Locator)
- 요청하고자 하는 리소스의 주소입니다.
- 예: https://example.com/api/user/123
- Method (메소드)
- 요청 방식입니다. 주로 4가지가 사용됩니다.
- GET: 서버에서 데이터를 가져옴
- POST: 서버에 데이터를 전송
- PATCH: 서버의 데이터를 부분적으로 수정
- DELETE: 서버에서 데이터를 삭제
- 요청 방식입니다. 주로 4가지가 사용됩니다.
- Header (헤더)
- 요청에 대한 메타 정보가 포함됩니다. 키-값 쌍으로 구성되며, string 형식으로 작성됩니다.
- 예: Content-Type: application/json, Authorization: Bearer <token>
- Body (본문)
- POST, PUT, PATCH 요청에서 사용됩니다. 서버로 보내는 실제 데이터입니다.
- 예: JSON 형식의 데이터 ({"name": "John", "age": 30})
✅ 비유
HTTP 요청은 '편지'와 같다
- URL: 편지를 보낼 주소
- Method: 편지 종류 (편지 보내기, 편지에 답장, 편지 수정, 편지 회수)
- Header: 편지의 정보 (발송인, 수신인, 날짜 등)
- Body: 편지 내용
2. HTTP 상태 코드 (Status Code)
HTTP 상태 코드는 서버가 클라이언트에게 응답을 보낼 때 그 상태를 알려주는 숫자입니다.
주로 3자리 숫자이며, 범위에 따라 응답의 종류가 나눠집니다.
✅ 상태 코드 범위
코드 범위 | 의미 | 설명 |
100-199 | 정보 응답 | 요청을 받았으며, 클라이언트가 계속 진행해야 함 |
200-299 | 성공 응답 | 요청이 성공적으로 처리되었음 |
300-399 | 리다이렉션 | 요청한 리소스가 다른 곳으로 이동되었음 |
400-499 | 클라이언트 에러 응답 | 클라이언트의 잘못된 요청 |
500-599 | 서버 에러 응답 | 서버 측 오류가 발생했을 때 |
✅ 상세 상태 코드 설명
- 200 OK: 요청이 성공적으로 처리되었습니다.
- 201 Created: 새 리소스가 성공적으로 생성되었습니다.
- 301 Moved Permanently: 리소스가 영구적으로 다른 URL로 이동되었습니다.
- 400 Bad Request: 요청이 잘못되었거나 필수 값이 빠졌습니다.
- 401 Unauthorized: 인증이 필요하거나 인증 토큰이 잘못되었습니다.
- 403 Forbidden: 인증은 되었지만 해당 리소스에 접근할 권한이 없습니다.
- 404 Not Found: 요청한 리소스가 존재하지 않습니다.
- 405 Method Not Allowed: 사용하려는 HTTP 메소드가 허용되지 않습니다.
- 500 Internal Server Error: 서버에서 예기치 않은 오류가 발생했습니다.
3. 같은 URL에 여러 개의 Method
- URL은 하나, 하지만 Method는 여러 개일 수 있습니다.
- 예를 들어, /api/user라는 URL이 있다고 할 때:
- GET /api/user: 사용자 데이터를 가져옴
- POST /api/user: 새로운 사용자 데이터를 추가
- PUT /api/user: 기존 사용자 데이터를 수정
- DELETE /api/user: 사용자 데이터를 삭제
✅ 비유
**URL은 '도로'**이고, Method는 '차 종류'
한 도로에서 여러 차가 주행할 수 있지만, 각 차는 목적이 다릅니다.
4. HTTP 요청 예시
다음은 POST 요청을 사용하는 예시입니다.
# POST 요청 예시 (API 호출)
POST /api/user HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Bearer <token>
{
"name": "John",
"age": 30
}
- POST: 데이터를 서버에 전송
- Host: 요청을 받을 서버의 주소
- Content-Type: 전송하는 데이터의 형식
- Authorization: 인증 토큰
5. HTTP 응답 예시
다음은 200 OK 응답 예시입니다.
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 123
{
"name": "John",
"age": 30
}
- 200 OK: 요청이 성공적으로 처리됨
- Content-Type: 응답 데이터 형식
- Content-Length: 응답 데이터 크기
✅ 한 줄 요약
HTTP 요청과 응답은 메시지 교환의 규칙이며, URL, Method, Header, Body와 함께 Status Code로 결과를 알려줍니다.
728x90
'개발자 성장 로드맵 > 백엔드' 카테고리의 다른 글
Dependency Injection (DI)과 Inversion of Control (IoC) (0) | 2025.07.22 |
---|---|
Nest.js 요청 사이클 구조 완전 정리 — Postman을 활용한 API 테스트 (2) | 2025.07.22 |
Next.js와 Express.js의 차이점 (7) | 2025.07.21 |
서버 개발의 시작! 백엔드 개발자 되는 법 (0) | 2025.06.21 |