[WEB 01] HTTP GET Method와 Request Body

며칠 전, Rest API를 개발하고 Swagger에서 GET Method를 실행해보니 에러가 났다.

TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body.

라는 에러는 처음봐서 구글링을 해본 결과 POST로 바꾸면 해결이 된다는 글을 보고 적용해봤더니 잘 작동이 됐다.

 

 

그러나 내가 쓰고 싶은 HTTP Method는 Get이었기 때문에 골머리를 앓던 중 친구의 말을 듣고 바로 해결이 되었다.

 

나는 GET Method 요청 시 Request Body를 이용해 데이터를 함께 보냈는데

 

1. 원래 GET은 method 요청 시 body를 원래 보낼 수 없었다.

2. 2014년부터 보낼 수 있게 되었지만 일부 클라이언트에서는 지원 되지 않을 수 있다.

 

지원되지 않는 일부 클라이언트 중에 Swagger가 포함되어 있었고 postman으로 테스트 해보니 에러없이 GET으로도 body를 보낼 수 있었다.

 

아래 링크를 보면 좀 더 자세히 나와있다.

https://brunch.co.kr/@kd4/158

 

HTTP GET 메소드와 body

GET메소드에 body 를... | RESTful API를 설계함에 있어 HTTP GET 메소드는 URI에 해당하는 리소스를 조회하는 용도로 사용된다. 때문에 여기에 추가되는 API 파라미터들은 조회 조건을 설정하기 위해 사용

brunch.co.kr