Content-Type 헤더에 대해서 설명해주세요

Content-Type은 HTTP 요청과 응답에서 전송되는 데이터의 타입을 명시하는 헤더입니다. 서버와 클라이언트가 Body를 올바르게 해석하기 위해 사용합니다.

예시

JSON 데이터를 보낼 때는 다음처럼 지정합니다.

Content-Type: application/json

서버는 이 값을 보고 요청 본문을 JSON으로 파싱할 수 있습니다. HTML 응답에서는 text/html을 지정하면 브라우저가 문서를 HTML로 렌더링합니다.

MIME 타입

Content-Type은 MIME 타입을 기반으로 하며 [type]/[subtype] 형식입니다.

데이터MIME 타입
JSONapplication/json
HTMLtext/html
Formapplication/x-www-form-urlencoded
파일 업로드multipart/form-data

Content-Type과 Accept의 차이

Content-Type은 지금 전송하는 데이터의 타입입니다. 반면 Accept는 클라이언트가 응답으로 받고 싶은 데이터 타입을 나타냅니다.

Content-Type: application/json
Accept: application/json

정리

Content-Type을 정확히 지정하지 않으면 서버나 클라이언트가 데이터를 잘못 해석할 수 있습니다. JSON을 보내면서 다른 타입을 지정하면 파싱 오류나 415 Unsupported Media Type이 발생할 수 있습니다.

추가 학습 자료

CSLOG에서 보기