HTTP - GET, DELETE With Body

00_8_3·2023년 4월 3일
2

네트워크

목록 보기
2/2

도입

일반적으로 Http를 공부를 하다보면

post, put, patch 에서 body를 사용하고

get, delete 메소드는 body를 사용하지 못한다고 배운다.

하지만 express 프레임워크를 사용해서 get 라우터에 body를 포함한 curl을 전송해보면

문제없이 response를 받을 수 있다.

RFC 7231

위와 같은 body 사용의 정확한 자료를 보기 위해 rfc 문서를 찾아보면

A payload within a DELETE request message has no defined semantics;
sending a payload body on a DELETE request might cause some existing
implementations to reject the request.

4장의 method의 get과 delete에서 위와 같은 문장을 찾을 수 있다.

해석을 해보자면

Get과 Delete 요청 메시지를 갖는 페이로드가 갖는 의미적인 정의는 없다.
각 요청에 body를 담아 전송하는 것은 서버나 클라이언트와 같은 구현체에 따라 거부 될 수 있다.

express와 같이 http를 구현한 프레임워크에 따라 될 수도 있고 안될 수도 있다는 소리다.

body 사용 가능한 프레임워크

  • Express
  • Koa
  • Flask
  • Django

결론

명시적으로 금지되어있는 방법은 아니지만
Restful API 작성 할 때 권장은 아니기 때문에
Get과 Delete request에 body를 같이 전송하지 않으면 좋을 듯 하다.

참고

0개의 댓글