HTTP Method
클라이언트가 서버로 요청할 때 어떤 목적을 갖는 요청인지 메서드로 명시함
- GET: 리소스 조회
- POST: 입력데이터를 전송하여 등록
- PUT: 리소스가 존재한다면 수정, 없으면 생성
- PATCH: 리소스 부분 변경
- DELETE: 리소스 삭제 요청
- HEAD: GET과 같지만 본문없이 헤더만 반환
- OPTIONS: 서버에 특정 리소스가 어떤 메서드를 지원하는지 확인 요청
- TRACE: 클라이언트와 서버 사이의 모든 HTTP 요청을 따라가 메시지의 이상여부를 확인
GET
- 리소스 조회에 사용
- 전달하려는 데이터는 query string을 통해 전달
- 메시지 바디를 사용할 수 있지만 지원하지 않는 곳이 많아서 권장하지 않음
POST
- 메세지 바디를 통해 서버로 요청데이터 전달
- 주로 신규 리소스 등록이나 프로세스 처리에 사용
PUT
- 리소스를 완전히 대체(있으면 덮어쓰기, 없으면 생성)
- 클라이언트가 리소스 위치를 알고 URI를 지정
PATCH
- 리소스의 부분을 변경
DELETE
- 리소스 제거
HTTP 메서드 속성
안전성(Safe Methods)
호출해도 리소스를 변경하지 않는다.
- GET, HEAD
멱등성(Idempotent Methods)
한 번 호출하든 여러번 호출하든 결과가 같아야함.
- GET: 조회는 항상 멱등
- PUT: 완전히 대체하므로 멱등
- DELETE: 같은 삭제호출을 여러번해도 삭제된 상태이므로 멱등
- POST: 멱등하지 않음. 여러번 호출할 경우 리소스가 중복해서 생성될 수 있음.
캐시가능성(Cacheable Methods)
응답 결과를 캐시해서 사용해도 되는지에 대한 속성
- GET, HEAD, POST, PATCH가 캐시 가능하지만 GET과 HEAD정도만 캐시로 사용