섹션 4. HTTP 메서드

콜 파머가 될 남자·2023년 3월 22일
0
post-thumbnail

HTTP API를 만들어보자

URI의 리소스만 식별해 놓으면 HTTP 메서드가 조회/등록/삭제/변경 의 역할을 대신 해준다.


HTTP 메서드 - GET, POST

GET : 리소스 조회

서버에 전달하고 싶은 query를 통해서 전달

POST : 요청 데이터를 처리, 주로 등록에 사용

클라이언트에서 서버로 데이터를 보낼 때 서버가 받아서 요청데이터를 처리해줘 !!
메시지 바디를 통해 서버로 요청 데이터 전달

PUT : 리소스를 대체, 해당 리소스가 없으면 생성

ex) 파일을 폴더에 넣는것과 비슷함 없으면 폴더에 파일이 새로 생기지만, 기존 파일이 있으면 덮어버리 

PATCH : 리소스를 부분적으로 변경

ex) 회원의 이름 변경, 특정 필드 수정

DELETE : 리소스 삭제


HTTP 메서드 - PUT, PATCH, DELETE

PUT: 리소스를 대체, 클라이언트가 리소스를 식별
POST는 100번인지 200번인지 모름

PUT은 100번을 지정해서 저장할 수 있음 => 클라이언트가 리소스 위치를 알고 URI를 지정

PUT은 리소스를 수정하기에는 용이하지 않다, 리소스가 없는 값은 아예 필드를 없애버림

PATCH 로 리소스를 수정, 리소스가 없는 값은 이전 값을 유지함

PUT 은 완전대체

PATCH 는 부분변경

HTTP 메서드의 속성

안전(Safe)

호출해도 리소스를 변경하지 않는다.

GET, HEAD, OPTIONS, TRACE

멱등(Idempotent)

한 번 호출하든 두 번 호출하든 100번 호출하는 결과가 똑같다.

GET: 한 번 조회하든, 두 번 조회하든 같은 결과가 조회된다.
PUT: 결과를 대체한다. 따라서 같은 요청을 여러 번 해도 최종 결과는 같다.
DELETE: 결과를 삭제한다. 같은 요청을 여러 번 해도 삭제된 결과는 똑같다.
POST: 멱등이 아니다! 두 번 호출하면 같은 결제가 중복해서 발생할 수 있다.

멱등은 외부 요인으로 인해 중간에 리소스가 변경되는 것 까지는 고려하지 않는다.

캐시 가능(중요)

GET, HEAD, POST, PATCH 캐시가능

실무에서는 GET만 캐시로 사용한다
=> 캐시를 하려면 키가 맞아야함, POST, PATCH는 본문 내용까지 캐시 키로 고려해야 하는데, 구현이 쉽지 않다.

Reference
김영한 님 - 모든 개발자를 위한 HTTP 웹 기본 지식

profile
콜 파머가 개발자라면 사회적 인지도는 어느 정도일까

0개의 댓글