네트워크 | 메서드와 상태 코드

Faithful Dev·2025년 1월 30일

컴퓨터 공학

목록 보기
74/81

HTTP Request 메서드

HTTP 요청 메서드는 클라이언트가 서버에 수행하고자 하는 작업의 종류를 나타낸다.

주요 HTTP 메서드

메서드설명본문(Body)캐시(Cache)
GET리소스를 조회✔️
POST리소스를 생성 또는 데이터 전송✔️
PUT리소스를 수정(전체 변경)✔️
PATCH리소스를 부분 수정✔️
DELETE리소스를 삭제
HEADGET과 동일하지만 본문 없음✔️
OPTIONS서버에서 지원하는 메서드 조회

각 메서드 상세 설명

GET

  • 서버에서 리소스를 조회할 때 사용.
  • 본문(Body)이 없으며, 데이터를 URL의 쿼리 문자열(?key=value)로 전달.
  • 캐싱 가능 → 브라우저나 프록시가 응답을 저장하여 성능 향상.
예제 (사용자 정보 조회)
GET /users/1 hTTP/1.1
Host: example.com

POST

  • 새로운 리소스를 생성하거나 데이터를 서버에 전송할 때 사용.
  • 요청 본문(Body)에 데이터를 포함.
  • 캐싱되지 않음 (항상 새로운 요청).
예제 (새로운 사용자 등록)
POST /users HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "Alice",
  "email": "alice@example.com"
}

PUT

  • 리소스를 수정(전체 변경)할 때 사용.
  • 기존 리소스를 완전히 덮어씀.
  • 없다면 새로운 리소스를 생성할 수도 있음.
예제 (사용자 정보 수정)
PUT /users/1 HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "Bob",
  "email": "bob@example.com"
}

PATCH

  • 리소스의 일부만 수정할 때 사용.
  • PUT과 달리 전체를 덮어쓰기 않고, 변경된 부분만 적용.
예제 (사용자 이메일만 변경)
PATCH /users/1 HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "email": "new@example.com"
}

DELETE

  • 리소스를 삭제할 때 사용.
  • 본문이 없으며, 삭제할 대상은 URL로 지정.
예제 (사용자 삭제)
DELETE /users/1 HTTP/1.1
Host: example.com

  • GET과 동일하지만 응답 본문 없이 헤더만 반환.
  • 리소스가 존재하는지 확인하는 용도로 사용.
예제
HEAD /users/1 HTTP/1.1
Host: example.com

OPTIONS

  • 서버가 지원하는 HTTP 메서드 목록을 확인할 때 사용.
  • CORS(교차 출처 리소스 공유)에서 중요한 역할을 함.
예제
OPTIONS /users HTTP/1.1
Host: example.com

HTTP 상태 코드(Status Code)

HTTP 상태 코드는 서버가 요청을 어떻게 처리했는지 나타내는 3자리 숫자 코드이다.


상태 코드 범위

범위의미
1xx (정보)요청을 처리 중
2xx (성공)요청이 정상적으로 처리됨
3xx (리디렉션)요청한 리소스가 다른 곳으로 이동됨
4xx (클라이언트 오류)클라이언트 요청이 잘못됨
5xx (서버 오류)서버에서 요청을 처리하지 못함

주요 상태 코드

1xx (정보)

  • 100 Continue → 클라이언트가 요청을 계속해도 됨.
  • 101 Switching Protocols → 서버가 다른 프로토콜로 변경 중(예: HTTP → WebSocket).

2xx (성공)

  • 200 OK → 요청 성공. (일반적인 응답)
  • 201 Created → 새 리소스가 성공적으로 생성됨.
  • 204 No Content → 요청은 성공했지만 응답 본문이 없음.
예제 (성공적인 GET 요청)
HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 1,
  "name": "Alice"
}
예제 (POST 요청 후 새로운 리소스 생성)
HTTP/1.1 201 Created
Location: /users/1

3xx (리디렉션)

  • 301 Moved Permanently → 리소스가 영구적으로 이동됨.
  • 302 Found → 리소스가 임시적으로 이동됨.
  • 304 Not Modified → 캐시된 리소스를 사용하도록 지시.
예제 (리디렉션)
HTTP/1.1 301 Moved Permanently
Location: https://newsite.com

4xx (클라이언트 오류)

  • 400 Bad Request → 잘못된 요청 (구문 오류, 잘못된 데이터 등).
  • 401 Unauthorised → 인증이 필요함.
  • 403 Forbidden → 요청이 거부됨(권한 없음).
  • 404 Not Found → 요청한 리소스를 찾을 수 없음.
예제 (인증 오류)
HTTP/1.1 401 Unauthorised
WWW-Authenticate: Bearer
예제 (리소스 없음)
HTTP/1.1 404 Not Found

5xx (서버 오류

  • 500 Internal Server Error → 서버 내부 오류.
  • 502 Bad Gateway → 게이트웨이 서버 오류.
  • 503 Service Unavailable → 서버 과부하 또는 유지보수 중.
예제 (서버 오류)
HTTP/1.1 500 Internal Server Error

정리

  • HTTP 요청 메서드는 클라이언트가 수행할 작업을 지정.
    • GET: 조회, POST: 생성, PUT: 전체 수정, PATCH: 부분 수정, DELETE: 삭제.
  • HTTP 상태 코드는 요청 결과를 나타냄.
    • 2xx: 성공, 3xx: 리디렉션, 4xx: 클라이언트 오류, 5xx: 서버 오류.
  • 클라이언트와 서버의 원활한 통신을 위해 올바른 HTTP 메서드와 상태 코드를 이해하는 것이 중요함.
profile
Turning Vision into Reality.

0개의 댓글