INFLEARN

[모든 개발자를 위한 HTTP 웹 기본 지식] 3. HTTP 메서드의 핵심 설계 원칙과 종류

ch010104 2026. 3. 27. 13:05

1. API URI 설계의 핵심: 리소스 식별

좋은 URI 설계를 위해서는 행위(동사)와 리소스(명사)를 분리하는 것이 가장 중요합니다.

  • 리소스 중심 설계: '회원을 등록/수정'하는 행위 자체가 아니라, '회원'이라는 개념 자체가 리소스입니다.
  • URI 구성: URI는 오직 리소스만 식별하며, 계층 구조를 활용합니다.
    • 회원 목록 조회: /members
    • 회원 단건 조회/등록/수정/삭제: /members/{id}
  • 구분 방법: URI가 동일하더라도 HTTP 메서드를 통해 어떤 행위(조회, 등록 등)를 할지 구분합니다.

2. 주요 HTTP 메서드 종류

메서드 주요 역할 특징

GET 리소스 조회 데이터를 쿼리 파라미터를 통해 전달하며, 메시지 바디 사용은 권장되지 않음.
POST 요청 데이터 처리 주로 신규 리소스 등록이나 프로세스 처리(결제 완료 → 배달 시작 등)에 사용.
PUT 리소스 대체 리소스가 있으면 완전히 덮어쓰고, 없으면 생성함. 클라이언트가 리소스의 구체적인 위치(URI)를 알고 있어야 함.
PATCH 리소스 부분 변경 리소스의 전체가 아닌 특정 필드만 수정할 때 사용.
DELETE 리소스 삭제 지정한 리소스를 제거함.

기타 메서드: 헤더 정보만 조회하는 HEAD, 통신 가능 옵션을 설명하는 OPTIONS, 터널 설정을 위한 CONNECT, 경로 테스트용 TRACE 등이 있습니다.


3. HTTP 메서드의 속성

메서드의 특성을 이해하면 안정적인 시스템 설계가 가능합니다.

① 안전 (Safe)

  • 호출해도 리소스를 변경하지 않는 속성입니다.
  • 해당 메서드: GET, HEAD, OPTIONS, TRACE.

② 멱등 (Idempotent)

  • 한 번 호출하든 100번 호출하든 결과가 똑같은 속성입니다.
  • GET (조회 결과 동일), PUT (덮어쓰므로 결과 동일), DELETE (삭제 후 결과 동일)는 멱등입니다.
  • POST는 멱등이 아닙니다. (예: 결제 버튼을 두 번 누르면 중복 결제 발생 위험).
  • 활용: 서버 타임아웃 발생 시 클라이언트가 자동으로 재요청을 해도 되는지 판단하는 근거가 됩니다.

③ 캐시가능 (Cacheable)

  • 응답 결과를 로컬에 저장해서 재사용할 수 있는지 여부입니다.
  • GET, HEAD는 실제 캐시로 널리 사용되지만, POST, PATCH는 본문(Body) 내용까지 키로 관리하기 어려워 실제로는 잘 사용되지 않습니다.