개발 알다가도 모르겠네요

Content-Type 헤더를 간단하게 알아보자 본문

Content-Type 헤더를 간단하게 알아보자

이재빵 2021. 7. 22. 12:41
728x90

Content-Type 헤더는 현재 리퀘스트 또는 리스폰스의 바디에 들어 있는 데이터가 어떤 타입인지를 나타냅니다.

 

Content-Type 헤더의 값은 '주 타입(main type)/서브 타입(sub type)'의 형식으로 있습니다. 

 

1.주 타입이 text인 경우(텍스트)

  • 일반 텍스트 : text/plain
  • CSS 코드 : text/css
  • HTML 코드 : text/html
  • JavaScript 코드 : text/javascript ...

 

2.주 타입이 image인 경우(이미지)

  • image/bmp : bmp 이미지
  • image/gif : gif 이미지
  • image/png : png 이미지 ...

 

3.주 타입이 audio인 경우(오디오)

  • audio/mp4 : mp4 오디오
  • audio/ogg : ogg 오디오 ...

 

4.주 타입이 video인 경우(비디오)

  • video/mp4 : mp4 비디오
  • video/H264 : H264 비디오 ...

 

위 타입들에 속하지 않는 것들은, 보통 application이라고 하는 주 타입에 속합니다.

 

1.주 타입이 application인 경우

  • application/json : JSON 데이터
  • application/octet-stream : 확인되지 않은 바이너리 파일(텍스트 파일 이외의 파일)

 

 

Content-Type 헤더가 존재하면, 바디의 데이터를 직접 확인해서 그 타입을 추론하지 않아도 됩니다.

예를 들어, 리퀘스트의 바디에 JSON 데이터를 담아 보낼 때 헤드에서 이 Content-Type의 값을 application/json으로 알맞게 설정하고 보낸다고 가정합시다.

만약 이 Content-Type을 써주지 않으면 서버에서 바디의 데이터가 어떤 타입인지를 확인하는 불필요한 절차가 추가적으로 발생합니다.

그리고 리스폰스의 경우에도 웹 브라우저에서 리스폰스를 받았는데 Content-Type 헤더의 값이 없으면 이 데이터가 무슨 타입인지 별도로 확인하고, 처리해줘야하기 때문에 불필요한 비용이 발생합니다.

따라서 리퀘스트든, 리스폰스든 바디에 어떤 데이터가 존재하는 경우라면 이 Content-Type 헤더의 값을 적절하게 설정해주는 게 좋습니다.

'' 카테고리의 다른 글

Ajax를 간단하게 알아보자  (0) 2021.07.24
Content-type 번외편  (0) 2021.07.22
PATCH와 HEAD를 간단하게 알아보자  (0) 2021.07.20
get 과 post 방식 정리  (0) 2021.05.03
REST API 를 알아보자.  (0) 2021.05.02