inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

모든 개발자를 위한 HTTP 웹 기본 지식

콘텐츠 협상

Contents-type 관련

268

Sam Seol

작성한 질문수 5

0

안녕하세요

질문이 있습니다.

주제와 다소 번외인 부분인데 Contents-type이 궁금합니다.

증상

스프링 @RestController를 사용했을 경우

핸들러 리턴 타입을 HashMap으로도 하고 Vo(직접 만들 vo클래스) 로도 했습니다.

그러면 화면에 응답본문이 뿌려지는데 JSON 타입으로 뿌려지길래 확인해보니 응답 헤더에 Contents-type이

application-json으로 되어 있습니다.

여기서 질문이 있습니다.

응답 Contents-type : application-json 

이건 @RestController 로 했을 경우 기본값으로 세팅이 되는지 아니면 어디 설정부분이 있는지 궁금합니다.

일단 @RestController를 파봤는데 안에 별 내용은 없더라구요

감사합니다.

 

network

답변 2

0

OMG

안녕하세요.

@RestController 어노테이션 구현 코드를 보시면 아래와 같은 어노테이션들이 추가 되어 있는데요, 여기서 핵심은 @ResponseBody 어노테이션 입니다.

@ResponseBody 어노테이션은 자바 객체를 반환 하는 경우 HTTP 메시지 바디에 json 형태로 데이터를 입력하는데요, 

제가 작성한 스프링 코드로 예시를 들어드릴게요.

위의 코드는 @RestController가 선언 되어 있고, /simple과 /products 요청의 Http method  'GET'을 처리하는 컨트롤러 입니다.

우선 /simple 부터 요청해볼게요. 

간단한 문자열인 "ok"를 응답으로 내리면 서버에서 text/plain으로 처리 되는 것을 확인 하실 수 있고,

자바 객체를 return 할 경우 json 형태로 서버에서 내려주는 것을 확인 하 실 수 있습니다 ^^

@ResponseBody와 관련해서 영한님의  스프링 완전 정복 시리즈의 다음 강의인 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 에서 자세히 알려주십니다 ㅎㅎ

0

Sam Seol

친절하시고 예제까지

답변 감사합니다^^

좀 더 궁금한점은 응답본문을 리턴시키는데(맵 또는 생성클래스일 경우)

왜 Contents Type을 application- json

으로만 보내느냐가 궁금했습니다.

어딘가에 기본 설정이 되어 있는건지 궁금하기도 하구요

0

OMG

아! 해당 부분은 제가 출근 준비 중이라 퇴근하고 알려드려도 될까요?

"jackson 라이브러리" 혹은 "MappingJacksonHttpMessageConverter"

로 검색해보시면 아마 정답이 있을텐데요, 못 찾겠다 싶으시면 댓글 남겨주세요

저나 영한님이 답변  달아드릴 것 같네요~^^

0

Sam Seol

핸들러 어답터와 연관이 있었나 보군요!!!!!

^^!!!!!
여기서부터 제가 다시 찾아볼게요^^

답변 정말 감사합니다^^

0

Sam Seol

우선은 쭈욱 찾아 보면서 

@RequestMapping 의 produces 속성까지 왔네요

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

produces 속성을 설정하지 않은 경우 기본 값이라든가 아니면 다른 설정이 있을거 같은데

주석으로 남겨져 있지 않네요 ㅠㅠ

 * @author Juergen Hoeller

 * @author Arjen Poutsma

 * @author Sam Brannen

이 분들 주석으로 좀 남겨주시지 ㅠㅠ

캐시 관련 질문입니다.

0

632

1

ETag 질문입니다.

0

741

1

캐시의 설정 주체

0

541

1

영속쿠키 질문입니다.

0

518

1

협상(accept-language)

0

696

1

에러 코드의 구현 주체

0

444

1

웹서버가 구현?

0

604

1

필수헤더?

1

567

1

Host와 Port

0

784

1

다른 도메인이 같은 포트를 사용하는 경우

0

1268

1

표준 헤더와 임의 헤더

0

540

1

POST 등록 후 Location 헤더

0

576

1

프로세스의 상태가 변경되는 경우에 Post 사용

1

1818

1

지속연결에 대해서.

0

699

1

제가 아는 쿼리 파라미터 개념이 맞는지 확인 부탁드립니다.

0

600

1

캐시 내용중 no cache 일때

0

367

1

DNS 서버 관련 질문

1

755

1

캐시로 저장된 파일의 유효기간은 얼마나 되나요?

0

672

1

웹브라우저 요청흐름 질문입니다.

0

853

1

캐시 무효화 질문드립니다

0

566

1

리다이렉트와 리다이렉션 차이?

0

2647

1

쿠키 및 세션 관련 질문드립니다

0

595

1

HTTP 메서드 ( HTTP 메서드의 속성 파트 ) 강의의 멱등 내용에 대하여 질문드립니다.

0

1654

1

header 나 gzip으로 데이터 보낼떄 데이터는 base64로 인코딩되서 가는 건가요?

0

486

1