배움/백엔드

Param, Query, Body

jaytsol 2022. 8. 17. 17:26
반응형

그동안 특히 param과 query에 대한 명확한 구분 없이 혼용해서 사용했던 것 같다.

 

제대로 정리해서 보다 명확하고 보기 좋은 API를 생산해야겠다.

 

1. req.param

주소에 포함된 변수.

e.g) https://jaytsol.tistory.com/entry/이미지에-속지-마라 

이 경우 entry와 '이미지에-속지-마라'가 param이 되겠다.

 

2. req.query

주소 바깥의 ? 이후의 변수.

e.g) https://www.youtube.com/results?search_query=%EC%BF%BC%EB%A6%AC 

유튜브에 '쿼리'를 검색했을때 나오는 주소.

이 경우 search_query=%EC%BF%BC%EB%A6%AC 가 query가 되겠다.

 

3. req.body

XML, JSON, Multi Form 등의 데이터를 담는다.

주소에는 노출되지 않는 정보이므로 담아 보내는 정보를 은닉하고 싶을 때 이용하면 되겠다.

 

 

body의 경우 그 사용처가 명확하기에 헷갈릴 일이 없지만,

param과 query를 구별해서 사용하는 데에는 제각각 어떤 의의가 있을까?

 

내 생각에는 카테고리 구분과 같은 비교적 덜 변경되는, 반고정적인 이름은 param으로 쓰고,

자주 변경되는, 예를 들어 검색어나 필터값같은 경우에 query를 쓰는게 더 깔끔한 것 같다.

 

현재 티스토리에는 '이미지에-속지-마라'라는 글 제목이 param으로 되어있는데,

글 제목은 자주 추가될 뿐, 자주 변경되지는 않기에 param으로 보내는게 좋은 것일까?

한편 또 티스토리에서 블로그 검색 기능을 이용하면,

jaytsol.tistory.com/search/kafka와 같이 여전히 param을 사용하는 점이 특이하다.

무엇이 옳고 그른지는 명확히 말할 수 없는 부분이나,

적어도 이런 구분이 있다는 것을 이해하고,

본인만의 명확한 기준을 세우고 param과 query를 구분하여 사용해야겠다.

 

참고 : https://medium.com/@bouncewind0105/request-param-query-body-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-2e7e4fddd8b9

반응형