GET
리소스 조회 , Body에 데이터 넣지 않음
POST
요청 데이터 처리 , body 에 데이터 존재
=> body에 들어온 데이터 처리
ex) "/members => POST처리 할 것" 과 같이 Cilent 와 Server가 약속이 되어 있어야 함
요청된 표현을 처리
PUT
리소스 대체
1. 리소스가 없으면 생성
2. 기존의 리소스가 있으면 대체 => 완전히 대체해서 새로 넣음
3. POST 와 다르게 Resource의 정확한 위치를 Client가 지정하고 메세지를 보냄
PUT 요청시 주의 할 점
1. PUT /user { age : 20 } 요청
2. 서버에 기존 User가 { name : "hi" , age : 30} 로 저장되어 있음
3. 기존의 user 삭제후 { name : null , age : 20} 로 저장됨
=> 내용중 일부가 없더라도 기존의 내용을 모두 대체 후 없는 내용 null 처리함
PATCH
PUT과 다르게 기존의 내용을 부분 변경
ex)
1. PATCH /user { age : 20 } 요청
2. 서버에 기존 User가 { name : "hi" , age : 30} 로 저장되어 있음
3. 기존의 user에 age만 수정하여 { name : "hi" , age : 20} 로 저장됨
DELETE
메세지 내용 삭제
정확한 리소스 위치 필요
HTTP 메서드의 속성
1. Safe
: 호출 해도 리소스가 변경되지 않는 메서드 (GET)
2. Idenpotent ( f(x) = f(f(x)) )
: 몇 번을 호출해도 결과가 똑같다 ( GET, PUT , DELETE )
=> POST는 호출 시점에 따라 요청이 달라지고 호출 마다 저장하면 결과가 달라질 수 있다.
=> 활용 : TIME OUT시 똑같은 메서드를 다시 보내도 되는가?
=> 외부 요소를 고려하지 않는 메서드
3.Cashable
GET, HEAD, POST, PATCH 모두 가능 하나 GET, HEAD 만 사용함
POST, PUT 등은 캐시를 위한 캐시키를 구성하기 복잡합
'C.S > WEB' 카테고리의 다른 글
HTTP 쿠키와 web storage에 대하여 (0) | 2023.12.09 |
---|---|
암호화와 SSL 인증 방식 (0) | 2022.07.16 |
HTTP 캐시 (0) | 2021.03.03 |
HTTP 헤더 (0) | 2021.02.27 |
HTTP 응답코드 (0) | 2021.02.27 |