Development/JAVA

Content-Type, Accept

루루지 2022. 3. 17. 17:52
반응형

스프링에서 아래와 같이 RequestMapping에 produces, consumes속성을 줄 수 있다.

 

@RequestMapping(value = "/api", produces = MediaType.APPLICATION_JSON_VALUE)

@RequestMapping(method = RequestMethod.POST, value = "/", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)

 

Content-Type = consumes,  Accept = produces로 볼 수 있는데

 

- Content-Type

 : PUT, POST 요청시 보낼 데이터의 형식을 서버에 알려주는 것.

 

- Accept

: 클라이언트에서 웹서버로 요청시 요청메시지에 담기는 헤더.

  @RequesMapping에 produces = MediaType.APPLICATION_JSON_VALUE로 되어있으면 클라이언트에게 json으로 전달.

 

 

GET의 경우, body가 없어서 queryString방식으로 key, value로 넘기기 때문에 content-type가 필요없다.

 

POST, PUT과 같이 body에 데이터를 담아 보낼 경우, 이 데이터가 어떤 데이터인지 알려줘야 한다.

 

※ 데이터 형식 참고

- application/json

POST /board HTTP/1.1
Content-Type: application/json

{
	"name":"tistory",
	"age":"33"
}

- application/x-www-form-urlencoded

POST /board HTTP/1.1
Content-Type: application/x-www-form-urlencoded

name=tistory&age=33