본문 바로가기

카테고리 없음

HTTP Method (GET, POST, PUT, DELETE)

HTTP Method (GET, POST, PUT, DELETE) 에 대한 정리

 

Wiki에 HTTP 를 검색하고 아래 표를 얻을 수 있었다.

https://ko.wikipedia.org/wiki/HTTP

요청에 Body가 있음, 응답에 Body가 있음

요청과 응답에 Body 가 있는지 없는 여부

 

멱등

사전 정의: 

수학이나 전산학에서 연산의 한 성질을 나타내는 것으로, 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다.

 

POST:  "파일을 생성해주세요." x10 번을 요청하면 처음을 성공하겠으나 두번째는 "이미 생성되어 있다" 라는 응답을 받는다.

PUT:  "파일을 생성해주세요." x10 번을 요청하면 10번 다 성공으로 응답이 온다.

 

즉 여러번 연산을 수행하여도 항상 값이 일정한 것을 의미한다.

 

안전

이 것은 어떤걸 의미하는지 잘 모르겠다. 

Post에 비해 PUT, DELETE 는 보안상의 이유로 사용하지 않는다고 한다.

특정 업데이트 대상 리소스알면 PUT, DELETE로 조작할 수 있기 때문이다.

캐시가능

JS, HTML, Resource 등 캐시가 가능하다.

웹 서버의 내용을 수정해서 배포하면 테스트하시는 분에게 "Browser" 캐시를 지워주세요. 라고 말하는 경우를 경험해 봤다면 알 것이다. 

 

HTTP Response 에서는 캐시가 동작하게 되면 상태에 대한 변화를 정확히 알 수 없다.

그래서 Cache를 사용하지 않는다고 한다.

Cache-Control: no-cache

 

자세히 알고 싶으신 분들을 여기를 확인해 주세요!

GET VS POST 차이

Get: 길이 제한이 있는 URL Paramter로 웹 서버에 요청을 할 수 있다.

Post: body를 포함하여 웹 서버에 요청을 할 수 있다. 

 

POST 는 응답 헤더에 content-type 가 있다.

content-type:application/json

 

POST VS PUT

사용법

POST /articles HTTP/1.1 

PUT /article/1234 HTTP/1.1 

PUT은 이미 변경 대상 리소스의 위치를 알고 있어서, 특정 업데이트 대상 리소스를 갱신할 수 있다.

https://blog.embian.com/m/66

 

HTTP Response Code

200 ~ 299: 성공

300 ~ 399: 리다이렉트

400 ~ 499: 클라이언트 오류 (요청 오류)

500~ 599: 서버 오류