C.S/WEB

HTTP 메서드

칼쵸쵸 2021. 2. 27. 13:04

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