Content-Type
현재 진행 중인 프로젝트에서
사용자 요청에 파일 데이터를 포함하여 post 요청을 보내야 하는 상황에서 데이터가 제대로 전달되지 않는 현상이 생겨
오류를 해결하던 도중 Content-Type에 대해 새롭게 알게 된 점을 정리해 보려고 한다.

Content-Type
Content-Type는 리소스의 media type을 정의하고 나타내기 위해 사용되는 헤더이다.
응답, 요청 양쪽에서 사용하며 응답에 있는 Content-Type 헤더는 클라이언트에게 반환된 콘텐츠의 콘텐츠 유형이 어떤 것인지 알려주고,
요청에 있는 Content-Type 헤더는 서버에게 어떤 유형의 데이터가 실제로 전송된 것인지 알려준다.
Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something
일반적으로 아무 세팅을 해주지 않으면 단순 text type으로 전달된다.
MIME
Content-Type은 MIME에 따라 정의된다.
MIME이란 클라이언트에게 전송된 문서의 다양성을 알려주기 위한 메커니즘이다. 웹에서는 우리가 일반적으로 사용하는 파일 확장자들은 그 본연의 의미를 가지지 못한다. 그래서 각 파일과 함께 올바른 MIME 타입이 전송되도록 서버가 세팅하는 것이 중요하다. 브라우저 그 리소스를 전달받았을 때 적절한 동작을 결정하기 위해 MIME 타입을 사용한다.
수많은 종류의 파일 형식이 있기 때문에 MIME 타입도 아주 다양하게 존재한다.
Content-Type의 종류
Content-Type의 종류는 아주 많다.
그중에 자주 쓰이는 몇 개의 종류만 눈에 익혀놓으려 한다.
문자: 텍스트를 포함하는 문서의 경우
Content-Type: text/plain
이미지: 모든 종류의 이미지
Content-Type: image/gif
Content-Type: image/png
Content-Type: image/jpeg
Application: 모든 종류의 이진 데이터
Content-Type: application/json
Content-Type: application/xml
Content-Type: application/pdf
멀티파트 타입: 타입이 합성된 문서를 나타내는 방법
Content-Type: multipart/form-data
Content-Type: multipart/byteranges
#Reference
Content-Type - HTTP | MDN
Content-Type 개체 헤더는 리소스의 media type을 나타내기 위해 사용됩니다.
developer.mozilla.org
REST API Content-Type 설정
(결론)클라이언트에서 JSON형태로 오는 request는 Content-Type: application/json으로 설정해줘야 한다.
6991httam.medium.com
[HTTP] Content-Type
Spring boot로 파일 다운로드를 구현 하던 중 Content-Type을 보게 되었다. Content-Type? Content-Type?? Content-Type???????????? 컨텐트 타입???????????? HTTP Header에 Conent-Type을 이래저래 지정하고 Fi..
pygmalion0220.tistory.com