MIME
Multipurpose Internet Mail Extensions의 약자로 간략히 말씀을 드리면 파일 변환을 뜻함. 현재는 웹을 통해서 여러형태의 파일 전달하는데 쓰이고 있음.
MIME을 사용하기전에는 UUEncode 방식을 이용 => 단점을 보강하여 새로운 인코딩 방식 MIME 등장
예전에는 텍스트파일을 주고받는데 ASCII로 공통된 표준에 따르기만하면 문제 X 하지만 네트워크를 통해 ASCII 파일이 아닌 바이너리 파일을 보내는 경우가 발생
(* 바이너리 파일: 음악 파일, 무비 파일, 워드파일 등등의 문서)
하지만 ASCII만으로는 전송이 불가능하여 이러한 바이너리 파일들을 기존의 시스템에서 문제 없이 전달하기 위해서는 텍스트파일로 변환이 필요해짐
인코딩 : 바이너리 파일에서 텍스트 파일로 변환
디코딩 : 텍스트 파일에서 바이너리 파일로 변환
MIME으로 인코딩 한 파일은 Content-type 정보를 파일의 앞부분에 담게 됨. 또한 MIME 형식을 보면 앞부분의 파일의 종류(image) / 파일포맷(gif) 형태로 정의
1. 개별 타입
1) text
- 특정 문자셋으로 구성된 텍스트 정보나 포스트스크립트 같은 formatted text 정보 전송에 사용
일반적인 서브타입 : text/plain, text/html, text/css, text/javascript
2) multipart
- 모든 종류의 이미지를 나타내며, 비디오는 포함되지 않습니다.
3) audio
- 모든 종류의 오디오 파일을 전송
일반적인 서브타입 : audio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav
4) video
- 모든 종류의 비디오 파일을 전송
일반적인 서브타입 : video/webm, video/ogg
5) application
- 모든 이진 데이터(바이너리 데이터)를 전송
일반적인 서브타입 : application/octet-stream, application/pkcs12, application/vnd.mspowerpoint, application/xhtml+xml, application/xml, application/pdf
▶ 특정 서브타입이 없는 텍스트 문서들은 text/plain 로 사용되어야 한다고 하며, 이진문서는 application/octet0stream이 사용되어야 합니다.
2. 멀티파트 타입
multipart/form-data
multipart/byteranges
멀티파트 타입은 일반적으로 다른 MIME 타입들을 지닌 개별적인 파트들로 나누어지는 문서의 카테고리를 가리킵니다. 즉 이 타입은 합성된 문서를 나타내는 방법입니다.
3. 주요 MIME 타입
1) application/octet-stream - 이타입은 이진파일을 위한 기본값입니다.
- 실제로 잘 알려지지 않은 이진 파일을 의미하므로, 브라우저는 보통 자동으로 실행하지 않거나 실행해야 할지 묻기도 함.
2) text/plain - 텍스트파일에 대한 기본값입니다.
- 실제로 알려지지 않은 텍스트 파일일지라도 브라우저들은 그것을 디스플레이할 수 있다고 가정합니다
3) text/css - 웹페이지 내에서 보통 인터프리터되어야 하는 모든 css 파일들은 text/css 파일이 되어야 합니다.
- 대부분의 서버는 .css 접미사를 가진 파일들을 css 파일이라고 인식하지 못하여 text/plain 혹은 application/octet-stream MIME 타입으로 전송하는 경우가 있습니다 이러한 경우 대부분의 브라우저들이 CSS 파일이라고 인식하지 못하여 무시하게 될 것.
4) text/html - 모든 HTML 컨텐츠는 이 타입과 합께 서브되어야 합니다.
- application/xml+html 과 같은 XHTML을 위한 대체 MIME 타입들은 대부분은 사용하지 않는다고 합니다.
5) 이미지 타입
MIME Type
이미지 Type
image/gif
GIF 이미지 (무손실 압축, PNG에 의해 대체됨)
image/jpeg
JPEG 이미지
image/png
PNG 이미지
image/svg+xml
SVG 이미지 (벡터 이미지)
6) 오디오와 비디오 타입
MIME 타입 - audio/wave, audio/wav, audio/x-wav, audio/x-pn-wav
- WAVE 컨테이너 포맷 내 오디오 파일
MIME 타입 - audio/webm
- WebM 컨테이너 포맷 내 오디오 파일. 가장 일반적인 오디오 코덱인 Vorbis 그리고 Opus이 사용됩니다
MIME 타입 - video/webm
- WebM 컨테이너 포맷 내 오디오를 지원 가능한 비디오 파일. VP8 그리고 VP9이 이 안에서 가장 일반적으로 사용되는 비디오 코덱입니다
MIME 타입 - audio/ogg
- OGG 컨텐이너 포맷 내 오디오 파일
MIME 타입 - video/ogg
- OGG 컨테이너 포맷 내, 오디오를 지원 가능한 비디오 파일
MIME 타입 - application/ogg
- ogg 컨테이너 포맷을 사용하는 오디오 혹은 비디오 파일
7) multipart/form-data
- multipart/form-data는 브라우저에서 서버로 HTML Form의 내용을 전송 시 사용할 수 있습니다 멀티 파트 문서 형식으로써, 경계로 구분되어지는 다른 파트들로 구성됩니다 각 파트는 그 자체로 개체이며 자신만의 HTTP 헤더를 가지는데, 파일 업로드 필드를 위한 헤더로 Content-Disposition, 그리고 가장 일반적인 것 중 하나인 Content-Type이 있습니다
8) multipart/byteranges
- multipart/byteranges 는 브라우저로 회신하는 부분적인 응답 전송의 컨테그슽 내에서 사용됩니다 Partial Content 상태 코드가 전송된 경우, MIME 타입은 문서가 각각의 요청된 범위들 중 하나의 몇 가지 파트들로 구성되어 있음을 알려주기 위해 사용됩니다. 다른 멀티파트 타입처럼, Content-Type은 경계선 문자열을 정의하기 위해 boundary 디렉티브를 사용합니다. 각각의 다른 파트들은 문서의 실제 타입을 가진 Content-Type 헤더와 그들이 나타내는 범위를 가진 Content-Range를 지니고 있습니다.
출처: https://server-talk.tistory.com/183
'CS' 카테고리의 다른 글
LINUX 파일 시스템 (0) | 2021.07.28 |
---|---|
쿠키, 세션 개념 및 차이점 (0) | 2021.07.28 |
패킷, 프레임, 세그먼트의 차이점은? (0) | 2021.07.28 |
리눅스 proc (0) | 2021.07.28 |
NESTAT 명령어 설명(리눅스 기준) (0) | 2021.07.28 |