HTTP 메서드
- HTTP API
- HTTP 메서드
- GET: 리소스 조회
- POST: 요청 데이터 처리, 주로 등록
- PUT: 리소스 대체, 없으면 생성
- PATCH: 리소스 부분 변경/수정
- DELETE: 리소스 삭제
- 기타 메서드: HEAD, OPTIONS, CONNECT, TRACE
- HTTP 메서드 속성
HTTP API
- API URI 설계
- 중요한 것은 리소스 식별 (EX) 회원 등록/수정/조회 -> '회원'이 리소스
- 리소스(명사)와 행위(동사)를 분리 (EX) /members/join
GET
- 리소스 조회
- 전달하는 데이터는 쿼리 파라미터(쿼리 스트링)를 통해 전달
(EX) /search?q=hello&hl=kr
POST
- 요청 데이터 처리, 주로 신규 리소스 등록이나 프로세스 처리에 사용
- 새로운 리소스 생성 (EX) 회원가입
- 요청 데이터 처리 (EX) 주문완료-> 배송시작으로 상태 변경
- 다른 메서드로 처리하기 어려운 경우 등
- 메시지 바디에 요청 데이터를 저장하여 서버로 전달
- POST 요청 데이터를 어떻게 처리할 지 리소스마다 설정 필요함
PUT
- 리소스가 있으면 대체, 없으면 생성 (= 전체 덮어쓰기)
- 클라이언트가 리소스 위치를 알고 URI 지정함 <-> POST는 신규 생성
PATCH
HTTP 메서드 속성
-
안전(Safe Methods)
-
멱등(Idempotent Methods)
- 몇 번을 호출해도 항상 결과는 동일
(GET, PUT, DELETE는 멱등 / POST는 멱등이 아님 -> 여러 번 호출하면 새로운 리소스가 중복으로 발생함)
- 자동 복구 메커니즘 등에서 사용(같은 요청을 다시 해도 되는가로 판단함)
-
캐시 가능(Cacheable MEthods)
- 응답 결과 데이터 리소스를 임시로 저장하고 사용함
- 실제로는 GET, HEAD 정도에서만 사용
[출처] 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한, 인프런