[컴퓨터네트워크] MIME란?

[컴퓨터네트워크] MIME란?

MIME(Multipurpose Internet Mail Extensions)

  • 파일 변환을 뜻함
  • 이메일과 함께 동봉할 파일을 텍스트 문자로 전환해서 이메일 시스템을 통해 전달하기 위해 개발됨
    • 그렇지만 현재는 웹을 통해서 여러 형태의 파일을 전달하는데 쓰임
아스키(ASCII)형식이 아닌 텍스트나 화상, 음성, 영상 등 멀티미디어 데이터를 그대로 전자 우편으로 송신하기 위한 간이 전자 우편 전송 프로토콜(SMTP)의 확장 규격

전자우편은 7비트 ASCII코드를 사용하여 전송되기 때문에 문자 데이터 이외의 바이너리 데이터(이미지, 동영상, MS 워드같은 문서 등)를 전송할 수 없었다.
때문에 여러 멀티미디어 데이터들의 바이너리 데이터를 ASCII코드로 변환하는 방법(인코딩)과 미디어 종류를 MIME 타입 목록으로 정의 하였고, MIME 사양에 따라 멀티미디어 파일의 데이터를 ASCII 데이터로 변환 후 전송하였다.

이때 송신측에서 전송 ASCII 데이터가 원래는 어떤 형식의 파일이었는지 MIME타입을 기록하여 전송하는데 수신측에서는 해당 MIME타입을 참고하여 수신한 ASCII데이터를 원래의 멀티미디어 바이너리로 변환하여 해석함

이렇게 하면  ASCII데이터만 전송할 수 있는 인터넷 메일의 한계를 극복함과 동시에 여러가지 타입의 멀티미디어 데이터를 주고 받을 수 있게 됨

MIME의 이름에서도 알 수 있듯이 전자우편에서 사용하기 위해 등장했지만 지금은 HTTP 통신에서 전송 데이터를 표현하기 위해서도 사용되고 있다.

  • UUEncode방식이 있는데 왜 MIME이란 인코딩이 나타난걸까?
    • UUEncode방식에는 단점이 있다
      • 문서 끝 부분의 사실은 공백이 아니라 변환되어야 할 값인데 공백을 무시하는 시스템의 경우엔 UUEncode파일을 원형 그대로 전달 받을 수 없음
  • MMIE는 특히 기존의 UUencode방식에는 없었던 파일 포맷(Content-type)정보도 함께 담을 수 있음
    • 지금 전달하는 파일은 GIF이다, MOV이다 이렇게 딱지를 붙일 수 있음


MIME Type

MIME는 /(슬래쉬)로 구분하여 메인타입과 서브타입으로 구성되어 있다.
이미지를 예로 들자면 image 메인타입과 서브타임으로 image/gif, image/jpeg와 같이 구성된다.

multipart/for-data

다음과 같이 HTML의 form태그 안에서 post와 같은 방식으로 여러가지 데이터를 함께 묶어 전송하는 경우에 사용함
이거는 파일 다운로드할 때 자주 사용
<form action="/inserProfile" method="post" enctype="multipart/form-data">
  이름 : <input type="text" name="userName"><br>
  성별 : <input type="checkbox" name="male">남</input>
         <input type="checkbox" name="female">여</input><br>
  사진 : <input type="file" name="profileImage"><br>
         <input type="submit" value="전송">
</form>


출처

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?