HTTP (3) - HTTP 메서드

김지승·2025년 4월 3일

CS

목록 보기
10/22

HTTP 메서드

HTTP 프로토콜에서 메서드는 클라이언트가 서버에 특정 동작을 요청하기 위한 방법입니다. 각 메서드는 고유한 목적과 특성을 가지고 있어 RESTful API 설계와 웹 개발에 중요한 역할을 합니다.

주요 HTTP 메서드

GET

  • 목적: 리소스 조회

  • 특징:

    서버로부터 데이터를 요청하는 용도
    URL에 데이터가 노출됨 (쿼리스트링)
    요청 본문(body)에 데이터를 포함하지 않음
    캐싱 가능

POST

  • 목적: 리소스 생성

  • 특징:

    서버에 데이터를 제출하여 새 리소스 생성
    요청 본문에 데이터 포함
    URL에 데이터가 노출되지 않음
    멱등성이 없음 (같은 요청을 여러번 보내면 여러 리소스 생성)

PUT

  • 목적: 리소스 완전 대체

  • 특징:

    대상 리소스를 요청 페이로드로 완전히 대체
    리소스가 없으면 생성할 수 있음
    멱등성 있음 (같은 요청을 여러번 보내도 결과 동일)

DELETE

  • 목적: 리소스 삭제

  • 특징:

    지정된 리소스 삭제
    멱등성 있음 (이미 삭제된 리소스에 대해 DELETE 요청을 보내도 결과는 동일)

PATCH

  • 목적: 리소스 부분 수정

  • 특징:

    리소스의 일부만 업데이트
    PUT과 달리 전체를 대체하지 않고 지정된 필드만 변경
    엄밀히 말하면 멱등성이 보장되지 않음

기타 HTTP 메서드

OPTIONS

  • 목적: 통신 옵션 확인

  • 특징:

    서버가 지원하는 메서드 및 기능 확인
    CORS(Cross-Origin Resource Sharing)에서 사전 요청
    (preflightrequest)으로 사용

  • 목적: 헤더 정보만 조회

  • 특징:

    GET과 유사하지만 응답 본문 없이 헤더만 반환
    리소스 존재 여부 확인, 메타데이터 확인 등에 유용

HTTP 메서드의 중요 특성

안전성(Safe Methods)

안전한 메서드는 서버의 상태를 변경하지 않는 메서드입니다.

  • 안전한 메서드: GET, HEAD, OPTIONS
  • 안전하지 않은 메서드: POST, PUT, DELETE, PATCH

멱등성(Idempotent)

멱등성이란 동일한 요청을 여러 번 수행해도 결과가 동일함을 의미합니다.

  • 멱등성 있는 메서드: GET, HEAD, PUT, DELETE, OPTIONS
  • 멱등성 없는 메서드: POST (일반적으로), PATCH (구현에 따라 다름)

캐시 가능성(Cacheable)

응답을 캐시할 수 있는 메서드입니다.

  • 캐시 가능: GET, HEAD (일반적으로), POST (특정 조건에서)
  • 캐시 불가능: PUT, DELETE, PATCH (일반적으로)

실제 활용 사례

RESTful API 설계

- 사용자 목록 조회: GET /users
- 특정 사용자 조회: GET /users/{id}
- 새 사용자 생성: POST /users
- 사용자 정보 완전 갱신: PUT /users/{id}
- 사용자 정보 부분 갱신: PATCH /users/{id}
- 사용자 삭제: DELETE /users/{id}

안전성과 멱등성의 중요성

  • 네트워크 오류 복구: 멱등성이 있는 요청은 실패 시 안전하게 재시도 가능
  • 분산 시스템: 같은 요청이 여러 번 처리될 수 있는 환경에서 중요
  • 캐싱 전략: 안전한 메서드는 효율적인 캐싱 전략 수립 가능

결론

HTTP 메서드는 각각 고유한 목적과 특성을 가지고 있으며, 이를 올바르게 이해하고 사용하는 것이 웹 애플리케이션과 API 설계의 핵심입니다. 특히 안전성과 멱등성의 개념은 신뢰성 있는 웹 서비스 구축에 매우 중요합니다.
이러한 개념을 잘 이해하고 적용한다면, 더 견고하고 효율적인 웹 애플리케이션을 개발할 수 있을 것입니다.

profile
디등

0개의 댓글