[Web] HTTP - Content-Type

2025. 3. 15. 10:57·Web | Network
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 에 담아 전송
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
'Web | Network' 카테고리의 다른 글
  • [Network] REST API vs SOAP vs WebSocket vs gRPC
  • [Spring] Cookie 와 ResponseCookie
  • [Network] HTTP 와 HTTPS
  • [Network] 전송 프로토콜 TCP 와 UDP
cyyy
cyyy
    250x250
  • cyyy
    Dev Log
    cyyy
  • 전체
    오늘
    어제
    • 분류 전체보기 (71)
      • Web | Network (14)
      • JavaScript (17)
      • Node.js (13)
      • Java | Spring (17)
        • GitHub Clone Project (6)
      • DB (4)
      • Linux (4)
      • AWS (2)
      • IDE (0)
  • 최근 글

  • 인기 글

  • 태그

    Network
    자바스크립트
    노드
    node.js
    spring boot
    네트워크
    Database
    비동기
    프로토콜
    promise
    db
    github clone
    Java
    prototype
    JavaScript
    Spring
    bcrypt
    Linux
    프로토타입
    스프링
  • 링크

    • Notion Log
  • hELLO· Designed By정상우.v4.10.3
cyyy
[Web] HTTP - Content-Type
상단으로

티스토리툴바