GET : 어떤 리소스에 해당하는, 대표되는 것을 받아올 때 사용한다.
요청하는 것에 body는 없다 : 특정한 url을 가리키며 나 이거 줘! 하기때문에
successful response 는 body가 있다.
그리고 중요한 것 safe, idempotent, cacheable
safe : 여러번 요청해도 서버에 있는 데이터를 읽어오기때문에 서버를 변경하지않음으로 안전하다고 볼 수 있다.
읽기만 하는 operation은 안전하다.고 간주함.
idempotent (멱등원 )
동일한 요청을 여러번 했을 때 몇 번 했냐 얼마나 빠르게 했느냐와 상관없이 동일한 서버를 유지할 수 있느냐를 나타낸다.
get은 여러번 요청하고 동일한 데이터를 받으므로 idempotent yes
get은 cacheable yes - 서버에서 캐쉬를 할 수있어서
HEAD
HEAD 마찬가지로 읽기만 읽으니 SAFE YES
POST
POST는 서버에 데이터를 만듦으로, 데이터 변경하고 SAFE 하지않고
데이터 포스트 여러번 요청하면 여러번 생성될 수 있으므로 idempotent NO
생성하는 것도 부분적으로만 캐쉬가 가능하다
중요한 것 PUT, PATCH
PUT : 원하는 URL에 데이터를 전체적으로 업데이트 하는 것
그래서 idempotent yes. 임
요청을 아무리 많이해도 동일한 url에 동일한 내용으로 계속 업뎃이 되므로 idempotent yes
캐쉬도 불가능, 안전하지도 않다.
패치 : url해당하는 데이터 전체 다 업뎃하는게 아니라 부분적으로 업뎃한다. 서버에서 어떻게 구현했느냐에 따라 달라질수 있겠지만, 부분적으로 업뎃하는 내용 추가하는 내용이라면 부분적으로 계속 추가되니
idempotent NO
참고자료 ) mdn
멱등성