본문 바로가기

인스타그램(Springboot,JPA,Security,Oauth)

(13) 스프링부트 Controller - http body 데이터 전송하기

 

어떤 사람이 있는데 바구니에 쌀을 들고 창고로 걸어가고 있다.

도착을 해서 창고를 지키는 지킴이가 기다리고 있는데 지킴이한테 쌀 바구니를 주고 터프하게 돌아섰다.

지킴이가 쌀 바구니안에 뭐가 있는지 의문을 품는다.

꽁꽁 싸매져 있는 쌀 바구니를 풀어서 봤는데 밀가루인지, 보리인지 구분이 안갔는데 확인을 하고

창고안에 쌀 넣는 공간에 넣었다.

그런데 이렇게 하니 오는 사람들마다 바구니를 확인하려고 하니 힘들다.

그래서 이제부터 어떤 종류의 곡식을 가져오는지 종이에 써서 같이 달라고 한다.

이렇게 종이에 써서 안주면 되돌려 보낸다.

가져오는 사람들이 쌀 바구니와 문서를 함께 두가지를 전송한다.

여기서 쌀 바구니에 있는 쌀을 Body Data라고 하고 문서를 header라고 한다.

 

header에 무엇을 쓰는게 좋냐면!!!

- 무게 : 1kg

- 종류 : 쌀

- 원산지 : 진주

 

header 문서에는 무게,종류,원산지가 있는데 이것 말고도 여러가지가 문서에 적혀있다고 하자.

그 사이에 Content-Type이라는 것이 있는데 Content-Type에 쌀이라는 것이 있는 것이다.

 

http header의 Content-Type을 정확히 알고 넘어가보자!!!

body data를 전송할때 Content_Type을 명시를 해서 전달을 해야 받는 쪽에서 일을 수월하게 할 수 있다.

Content-Type이 http header에 프로토콜로 존재한다.(PUT과 POST일때 무조건 있어야 한다.)

GET과 DELETE 요청일때는 body data가 없기 때문에 Content-Type이 필요로 하지 않는다.

 

 

 

 

 

 

스프링부트는 기본적으로 x-www-form-urlencoded가 있다.

데이터를 들고오면 x-www-form-urlencoded 타입이라고 인식을 하고 데이터를 파싱을 한다.

plain/text와 application/json말고도 엄청나게 많은 것이 있다.

 

 

 

 

이러한 형식으로 데이터가 들어오게 된다!!!

- x-www-form-urlencoded -----> key = value

- plain/text -----> 안녕

- application/json -----> {"username" : "cos"}

  ㄴ applcation/json 형태로 데이터를 받으려면 Content-Type에

      applcation/json이라고 명시를 해줘야 스프링이 이해를 한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSON의 상세한 내용은 아래의 링크를 통해 알 수 있다!!!

https://www.youtube.com/watch?v=olaeVwjx3J8