728x90
Param vs Query vs Body
Request 객체는 API를 컨트롤하기 위한 메소드로 위의 세가지를 담고 있다.
Param
- 주소에 포함된 변수를 담는다.
- 예를 들어 https://movie.com/trending (→ 실제로 없는 주소) 라는 주소가 있다면 trending를 담는다.
- 서버에서 Path Variable 로 칭한다.
- 특정한 리소스를 지정한다. (다른 리소스)
Query
- 주소 바깥, ? 이후의 변수를 담는다.
- 예를 들어 https://movie.com/trending?language=ko-KR 일 경우 language=ko-KR 정보를 담는다.
- &로 연결하여 여러 개의 데이터를 넘길 수 있다. https://movie.com/trending?language=ko-KR**&**key=value
- 서버에서 Query parameter 로 칭한다.
Body
- XML, JSON, Multi Form 등의 데이터를 담는다. 당연히 주소에서 확인할 수 없다.
- 하지만 크롬 개발자 도구, Fiddler와 같은 툴로 요청 내용을 확인할 수 있다. 민감한 데이터의 경우 반드시 암호화해 전송해야 한다.
🤔 언제, 무엇을 사용해야 하는가?
param vs query
- resource를 식별해야하는 상황에서는 Path Variable가 더 적합하다.
- 정렬이나 필터링을 해야하는 상황에서는 Query Parameter가 더 적합하다.
query string(query/parameter) vs body
- body을 사용할 때 :
직렬화 된 이진 데이터와 같이 값이 사람이 읽을 수 없는 경우
매우 많은 수의 인수가있을 때(일부 웹 서버에는 URI 길이에 제한이 있다.) body에는 제한이 없음
- query string을 사용할 때 :
인수가 디버깅하는 동안보고 싶을 때 ex) curl
여러 웹 서비스에서 인수가 공통적인 경우
다음과 같은 다른 콘텐츠 유형을 이미 보내고있는 경우
ㄴapplication/octet-stream
'Network' 카테고리의 다른 글
[네트워크] HTTP 상태코드 (0) | 2022.09.15 |
---|---|
HTTP 메서드 활용 (2) | 2022.09.06 |
HTTP 메서드 (0) | 2022.08.30 |
HTTP 기본 (1) | 2022.08.23 |
URL와 웹 브라우저 요청 흐름 (0) | 2022.08.22 |