HTTP의 메서드

1 분 소요

1. HTTP 메서드


1. HTTP API

  1. API URI 설계
    • URI는 Resource만 식별
    • 리소스와 행위를 분리(리소스는 명사,행위 동사)

      • 회원 목록 조회 /members
      • 회원 조회 /members/{id}
      • 회원 등록 /members/{id}
      • 회원 수정 /members/{id}

2. HTTP 메서드

  • GET : 리소스 조회
  • POST : 요청 데이터 처리, 주로 등록에 사용
  • PUT : 리소스를 대체, 해당 리소스가 없으면 생성
  • PATCH : 리소스 부분 변경
    • DELETE : 리소스 삭제

HTTP 메서드 상세

  • GET
    • 리소스 조회
    • 서버로 전달하고 싶은 데이터는 query(파라미터, 스트링)을 통해서 전달
    • 메시지 바디를 사용해서 사용가능하나 권장하지않음
  • POST
    • 요청 데이터 처리
    • 메시지 바디를 통해 서버로 데이터 전달
    • 서버는 요청데이터 처리
    • 주로 신규 데이터 등록, 변경된 프로세스 처리

      새 리소스 생성(게시판, 회원가입 등)

      요청 데이터 처리(주문 -> 결제완료 -> 배달 시작) // 프로세스상태가 변경될 때

      컨트롤 URI(POST /orders/{orderid}/start-delivery)

  • PUT
    • 리소스 대체
      • 리소스가 있으면 대체
      • 리소스가 없으면 생성
      • 리소스 덮어쓰기(없으면 생성)
    • 클라이언트가 리소스를 식별
      • 클라이언트가 리소스 위치를 알고 URI 생성함

        포스트와의 차이

        📌 PUT은 통째로 완전 대체

  • PATCH
    • 리소스 부분 변경
      • { “username”: “young”, // 변경없음
        “age”: 30 -> 50
        }
  • DELETE
    • 리소스 삭제

3. HTTP 메서드 속성

  1. 안전(Safe Method)
    • 호출해도 리소스를 변경하지 않는다.
    • GET, HEAD
  2. 멱등(Idempotent)
    • 몇번 호출하든 결과가 같다
    • GET(조회),PUT(결과를 대체),DELETE(삭제)

      POST는 멱등이 아님
      결제의 경우 같은 결제 중복 발생위험

  3. 캐시가능(Cashable)
    • 용량 큰 이미지 등을 이용할때 효율을 위해 사용
    • GET,HEAD,POST,PATCH 가능
    • 현실은 GET, HEAD 정도만 사용

카테고리:

업데이트:

댓글남기기