HTTP_ 메서드

JOO·2021년 12월 11일

CS

목록 보기
7/9

HTTP_ API URI 설계

리소스 식별, URI 계층 구조 활용

  • 회원 목록 조회 /members
  • 회원 조회 /members/{id}
  • 회원 등록 /members/{id}
  • 회원 수정 /members/{id}
  • 회원 삭제 /members/{id}
    - 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장

행위와 리소스 분리

URI는 리소스만 식별하고 행위는 따로 구분.

  • 행위는 HTTP 메서드로 구별함

HTTP 메서드

  • GET
    -> 리소스 조회
    -> query를 통해 데이터 전달
    -> body에 담아서 보낼 수는 있지만 권장하지 않음
  • POST
    -> 요청 데이터 등록, 요청 데이터 처리, 다른 메서드로 처리하기 애매한 경우
    -> POST 요청이 오면 요청 데이터를 어떻게 처리할 지 리소스마다 따로 정해놔야함. (무조건 등록은 아님. 정해진것이 없음)
    -> body를 통해 데이터 전달
  • PUT
    -> 리소스 전체 대체, 없으면 생성
    -> POST와의 차이점은 클라이언트가 리소스 위치를 알고 URI 지정
  • PATCH
    -> 리소스 부분 변경
  • DELETE
    -> 리소스 삭제

이외에도 다양한 메서드가 있지만 가장 많이 사용되는 것은 위에 다섯가지메서드임

HTTP 메서드 속성

  • 안전 (Safe)
    -> 호출해도 리소스를 변경하지 않음
    -> GET, HEAD
  • 멱등 (Idempotent)
    -> 한 번 호출하든 두번 호출하든 100번 호출하든 결과가 같음
    -> 자동 복구 메커니즘에 적용함 (요청이 같아도 괜찮이 때문에)
    -> GET, PUT, DELETE (POST는 아님)
  • 캐시가능 (Cacheable)
    -> 응답 결과 리소스를 캐시에서 사용
    -> GET, HEAD, POST, PATCH (실제로는 GET, HEAD만 사용)
profile
개발공부 기록

0개의 댓글