티스토리 뷰
현재 진행 중인 프로젝트에서
사용자 요청에 파일 데이터를 포함하여 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
'지나가는 개념 정리' 카테고리의 다른 글
What's in my package.json? (0) | 2022.07.16 |
---|---|
SaaS란? (0) | 2022.05.18 |
Generator 함수 (0) | 2022.04.29 |
Cookie/Session & Token(JWT) (0) | 2022.04.01 |
HTTP의 Stateless / Connectionless (2) | 2022.03.23 |
- Total
- Today
- Yesterday
- error
- Transpiler
- Vuex
- programmers
- GraphQL
- SPA
- python
- Vue
- webpack
- AxiosInterceptor
- SOAP API
- React.memo
- 파이썬
- js
- 문제풀이
- 백준
- Preloading
- redux
- reactrouter
- 알고리즘
- TypeScript
- bundler
- Repository Pattern
- 상호평가
- 프로그래머스
- Vue.js
- v-for
- React
- clean code
- redux-thunk
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |