HTTP의 메서드
1. HTTP 메서드
1. HTTP API
- 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은 통째로 완전 대체
- 클라이언트가 리소스 위치를 알고 URI 생성함
- 리소스 대체
- PATCH
- 리소스 부분 변경
- { “username”: “young”, // 변경없음
“age”: 30 -> 50
}
- { “username”: “young”, // 변경없음
- 리소스 부분 변경
- DELETE
- 리소스 삭제
3. HTTP 메서드 속성
- 안전(Safe Method)
- 호출해도 리소스를 변경하지 않는다.
- GET, HEAD
- 멱등(Idempotent)
- 몇번 호출하든 결과가 같다
- GET(조회),PUT(결과를 대체),DELETE(삭제)
POST는 멱등이 아님
결제의 경우 같은 결제 중복 발생위험
- 캐시가능(Cashable)
- 용량 큰 이미지 등을 이용할때 효율을 위해 사용
- GET,HEAD,POST,PATCH 가능
- 현실은 GET, HEAD 정도만 사용
댓글남기기