728x90
HTTP 의 Request 구조
- HTTP 의 Request 는 4개의 파트로 나눌 수 있음

- Message Body 영역에 들어가는 타입을 HTTP 헤더에 명시해줄 수 있도록 하는 필드가 바로 Content-Type
Content-Type 이란?
- HTTP 통신에서 전송되는 자원의 형식을 명시하기 위해 헤더에 실리는 정보로 표준 mime-type 중 하나

- Content-Type 에 따라 데이터를 받는 측에서 데이터를 어떻게 처리해야 할 지 판단함
- 여기서 데이터를 받는 측은 Request(브라우저 등) 과 Response(웹 서버 등) 모두 포함
- Content-Type 으로 요청 또는 응답의 데이터가 어떤 형식인지 판단할 수 있음
Content-Type 특징
- Content-Type 헤더가 없다면 데이터를 받는 쪽에서는 단순 텍스트 데이터로 처리
- HTTP 메소드의 GET 방식은 value=text 형식으로 보내기 때문에 Content-Type 은 필요 없음
- POST, PUT 처럼 Body 영역에 데이터를 보낼 때 Content-Type 이 필요함
MIME Type
- MIME : Multipurpose Internet Mail Extensions 의 약자로 전자 우편을 위한 인터넷 표준 포맷
- 전자우편은 7비트 ASCII 문자를 사용하여 전송되므로 8비트 이상의 코드를 사용하는 문자나 이진 파일은 MIME 포맷으로 변환되어 SMTP 로 전송됨
- HTTP 통신에서 Content-Type 은 표준 MIME 에 정의된 것을 사용함
문법
- type/subtype ( / 로 구분)
- type : 카테고리 (주 분류)
- subtype : 개별 혹은 멀티파트 타입
- 스페이스 허용 X, 대소문자 구분 X (통상적으로 소문자로 기입)
주요 타입
- application/json
- JSON 형식 : {key:value} 형태로 전송
- RestFul API 로 요청 시 JSON 을 많이 사용
- axios 를 사용해 클라이언트가 서버에서 API 요청 시 Content-Type 을 application/json 으로 지정
- application/x-www-form-urlencoded
- HTML form 태그 submit 의 기본 Content-Type
- 쿼리 스트링 형식 : key=value&key=value 형태로 전송
- 모든 문자들은 서버로 보내기 전 URL 인코딩됨
- multipart/form-data
- HTML form 태그로 파일이나 이미지를 전송할 때 주로 사용
- 이미지와 텍스트를 전송하는 경우 두 종류의 Content-Type 을 구분해서 넣어주기 위해 multipart 라는 개념을 사용
- 모든 문자를 인코딩하지 않음
- 이미지 파일 전송 시 파일을 문자로 생성하여 HTTP request body 에 담아 전송
- HTML form 태그로 파일이나 이미지를 전송할 때 주로 사용
728x90
'Web | Network' 카테고리의 다른 글
| [Network] REST API vs SOAP vs WebSocket vs gRPC (1) | 2025.03.16 |
|---|---|
| [Spring] Cookie 와 ResponseCookie (0) | 2025.03.15 |
| [Network] HTTP 와 HTTPS (0) | 2025.03.14 |
| [Network] 전송 프로토콜 TCP 와 UDP (0) | 2025.03.13 |
| [Network] IP 주소와 서브넷 마스크 (0) | 2025.03.12 |