Content Type   컨텐트 타입

(2022-04-25)

Content-Type, Content-Encoding, Content-Length, Content-Disposition


1. 컨텐트 타입 (Content Type)

  ㅇ 메일, HTTP() 등에서, 전송되는 내용이 무엇인지를 알려주는 형식명 (Content-Type)

  ㅇ 원래, 텍스트로 만 가능했던 초기 인터넷 전자메일에,                     ☞ MIME 참조
     - 파일,이미지,오디오 등도 첨부 가능케 하도록, 다목적용으로 확장한 타입 규격 임


2. HTTP에서, Content-type 관련 헤더 항목

  ㅇ Content-type : 타입 및 서브타입(type/subtype)으로 구성
     - 타입(type)은, 미디어 타입으로써, 10개 정도 표준으로 지정됨 ☞ IANA 미디어 타입 종류
        . 즉, (application,audio,font,example,image,message,model,multipart,text,video)
     - 서브타입(subtype)은, 각 타입별로 수십에서 수백개 정도

     - 例) Content-Type: application/xml 또는 image/gif 또는 application/pdf 등
        . text/html (HTML), text/plain (텍스트 파일)
        . image/gif (GIF 이미지 파일), image/jpeg (JPEG 이미지 파일)
        . video/mp4, video/webm, video/ogg      ☞ 미디어 컨테이너 참조
        . application/xml (XML), application/pdf, application/vnd.ms-powerpoint (MS PowerPoint) 
     - 例) Content-Type: text/html; charset=utf-8
        . 타입 :text, 서브타입 : html, 문자셋 : UTF-8
     - 例) Content-Type: multipart/form-data; boundary=   ☞ 아래 3.항 참조
        . 한 번에 복수 개의 파일전송 함

  ㅇ Content-Language : 해당 개체와 가장 잘 어울리는 자연언어

  ㅇ Content-Encoding : 해당 개체 데이터압축 방식 (압축 알고리즘)
  ㅇ Content-Length : 전달되는 해당 개체바이트 수 (10진수)
     - 요청응답 HTTP 메세지의 바디 부분의 길이를 지정
     - 또는, 특정 지정된 해당 개체의 길이를 지정함

  ※ 만일, 압축이 시행되었다면, 위 Content-Encoding,Content-Length 2개 항목을 토대로,
     - 해당 압축을 풀 수 있음

  ㅇ Content-Location : 해당 개체가 실제 어디에 위치하는가를 알려줌

  ㅇ 미지의 유형
     - X-Content-Type-Options: nosniff
        . 보안 때문에, 웹브라우저MIME 타입이 아닌 내용을 보고,
        . 미리 파일 유형을 예단,추측 하지 않도록 지시함

  ㅇ Content-Disposition : 웹브라우저는, 파일 다운로드 대화상자를 표시 후 파일 저장 도모
     - 例) Content-Disposition: attachment; filename=filename.xlsx


3. HTTP에서, 전송되는 개체에 대한 미디어 타입 표현 例)MIME 미디어 타입 및 문자 인코딩 방식(EUC-KR,UTF-8 등) 둘 다 지정
     - 例) Content-Type: text/html; charset=UTF-8 또는 charset-latin-1 등
        . 미디어 타입 뒤에 세미콜론(;)을 붙이고, 문자 인코딩 방식 지정 가능

  ㅇ 폼 요청 (웹브라우저 -> 웹서버)
     - 例) Content-Type: application/x-www-form-urlencoded폼 요소 참조
        . 한 번에 1개 파일전송
        . 요청시, 해당 개체가 폼에 의해 전송되는 데이터 임을 알림
        . 문자 이외 이진 파일 등의 형식 가능 

  ㅇ 폼 파일 송신 (웹브라우저 -> 웹서버)
     - 例) Content-Type: multipart/form-data; boundary=                         ☞ 폼 요소 참조
        . 복수개 파일 전송(업로드) 등에 사용 
        . 문자 이외 이진 파일 등의 형식 가능 
        . (각 블록 간 경계 구분)
           .. 블록 간 경계를 위해, 속성 (boundary=...)에 의해, 블록 간 구분 가능
           .. 맨 끝 블록에 `--`로 표시 
        . (각 블록별 구성)
           .. 각 블록 마다, `헤더 + 빈 줄 + 콘텐츠`로 구성됨 
        . (각 블록별 지정 필요한 4가지 요소)
           .. 전송 명칭 (name=)
           .. 파일명 (filename=)
           .. 파일 종류 (Content-Type: text/plain 등)
           .. 파일 내 실제 내용
       . (헤더 例) 
           .. Content-Disposition:form-data; name="attachment-file"; filename="test.txt"
           .. Content-Type:text/plain



Copyrightⓒ written by 차재복 (Cha Jae Bok)
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"