보통 웹 기반 API를 만들 때, Http를 통해 데이터를 전송하고 응답하게 됩니다.
이 때 일반적으로 사용하는 데이터를 요청방식을 알아보겠습니다.
Json
보통 RestAPI에서 데이터를 주고받는을 때 많이 쓰이는 데이터 형식입니다.
POST /login HTTP/1.1
Content-Type: application/json
{
"id" : "dallae",
"pwd" : "dallae1234!@#$"
}
클라이언트는 위처럼 Http Body에 application/json타입으로 서버에 데이터를 전달합니다.
이 때, 서버는 요청된 Http Body를 읽어서 데이터를 가져와야 하므로 @RequestBody를 통해 읽어올 수 있습니다.
Http Parameter
Parameter 방식은 URL에 그대로 노출하여 데이터를 전송합니다.
URL 주소만을 읽어서 데이터를 바로 조회할 수 있기 때문에 Http Body를 조회할 필요가 없습니다.
1️⃣ 쿼리스트링 (QueryString)
POST /login?id=dallae&pwd=dallae1234!@#$ HTTP/1.1
QueryString은 위와 같이 주소 뒤에 ?이후 데이터를 전송하는 방식입니다.
2️⃣ Path
GET /product/1 HTTP/1.1
Path는 위와 같이 주소 뒤 /이후 데이터를 전송합니다.
Form
form은 get과 post방식의 2가지로 데이터를 전송합니다.
1️⃣ GET
GET / login?id=dallae&pwd=dallae1234!@#$ HTTP/1.1
get방식으로 form데이터를 전송하면, 위와 같이 form의 내용을 쿼리스트링으로 바꾸어 URL에 데이터를 담아 서버로 전송합니다.
2️⃣ POST
POST /login HTTP/1.1
Content-Type : application/x-www-urlencoded
id=dallae&pwd=dallae1234!@#$
post방식으로 form 데이터를 보내면, Http body에 application/x-www-urlencoded 타입으로 전송하게 된다.
URL이 아닌 Http Body에 x-www-urlencodede 형태로 데이터를 전송한다는 점은 다르지만, 보내는 데이터의 모양은 쿼리스트링형태입니다.
'백엔드 Backend > 기본 개념' 카테고리의 다른 글
final 키워드 사용하기 (0) | 2024.08.08 |
---|---|
SSH Key 동작 원리 (0) | 2024.08.08 |
예외 이해하기 (0) | 2024.08.08 |
아키텍처 (0) | 2024.08.07 |
멀티 모듈 / MSA 구조 이해하기 (0) | 2024.08.05 |