sub_title
 개발자마당
제   목 MIME-Type과 Content Type의 이해
작성자 파도 등록일 2007-12-04 20:07:17 조회수 41,169

Understanding MIME-Types and Content Types
 
written by Alex Homer
translated by Garzette

  다운로드를 위한 문서를 제공하는 웹 사이트를 구축할때 일반적으로 질문되는 것은 : "브라우져가 문서를 보여주는 방법을 어떻게 제어하는가" 이다. 예를들어, 만일 필자가 .doc 확장명을 가지는 MSWord 문서 파일에 대한 링크를 제공한다면, 파일로 저장하기 보다는 워드로 문서를 열도록 브라우져에게 어떻게 말할 것인가? 그리고, 만일 필자가 ASP를 이용해 동적으로 Tab-Delimited 포맷 문서를 만들었 다면, 이것을 자동으로 보여주기 위해서 엑셀이나 다른 스프레드 쉬트 응용프로그램으로 어떻게 구현 할 것인가?

  간단히 대답해서 여러분은 "할 수 없다" 이다. 브라우져나 클라이언트 응용프로그램이 웹서버로 부터 보낸 파일을 어떻게 다루는지 컨트롤 하는 것은 불가능하다. 여러분이 할 수 있는 것은 그것이 어떻게 다루어져야 하는 것을 제안하는 것이다. 여러분은 이것을 파일이 어떤 형태인지 브라우져에게 알려줌으로써 이것을 구현하고, 그리고 나서 브라우져와 사용자에게 그것으로 무엇을 할지 결정하도록 남긴다. 있다.

MIME-type과 Content type이란 무엇인가?

  우리가 클라이언트 브라우져로 어떤 자원을 보낼때(어떤 형태의 파일이나 문서 등), 웹 서버는 일련의 HTTP 헤더로 파일이나 자원을 포함하는 바이트의 Stream을 앞에 보낸다. 이런 헤더는 클라이언트에게 웹 서버와 커뮤니케이션 세부사항을 묘사한다. 예를들어, 헤더는 사용되고 있는 웹 서버의 소프트웨어 의 타입, 서버의 날짜와 시간, HTTP 프로토콜, 사용중인 커넥션 타입 등을 지정한다. 헤더는 또한 클라이언트가 이런 가상 패스나 도메인에 대해서 저장해야 할 쿠키를 포함한다.

  이와 관련해서 가장 중요한 것은 헤더는 또한 보내지는 자원의 content 타입이 포함되는 것이다. 이것은 Content-Type 헤더에 의해 지정되는데, 이 값은 표준 MIME-Type의 하나이다. MIME-Type을 살펴봄으로써 브라우져는 데이터를 나타내는데 어떤 종류의 파일 Stream인지를 알고 있다. HTML 페이지에서, 표준MIME type은 "text/html" 이다. 그리고 텍스트 파일이나 텍스트 stream은 "text/text"이다. 이미지 파일은 "image/gif" 혹은 "image/jpeg" 와 같은 MIME-Type을 가진다. 일반적인 MIME-Type과 파일 확장명의 매칭 리스트는 아래 표에 나와있다.


일반적으로 사용되는 MIME-Type과 파일 확장명

MIME-Type Description File Extension
application/acad AutoCAD drawing files dwg
application/clariscad ClarisCAD files ccad
application/dxf DXF (AutoCAD) dxf
application/msaccess Microsoft Access file mdb
application/msword Microsoft Word file doc
application/octet-stream Uninterpreted binary bin
application/pdf PDF (Adobe Acrobat) pdf
application/postscript PostScript, encapsulated PostScript, ai, ps, eps
Adobe Illustrator
application/rtf Rich Text Format file rtf rtf
application/vnd.ms-excel Microsoft Excel file xls
application/vnd.ms-powerpoint Microsoft PowerPoint file ppt
application/x-cdf Channel Definition Format file cdf
application/x-csh C-shell script csh csh
application/x-dvi TeX dvi dvi dvi
application/x-javascript JavaScript source file js
application/x-latex LaTeX source file latex
application/x-mif FrameMaker MIF format mif
application/x-msexcel Microsoft Excel file xls
application/x-mspowerpoint Microsoft PowerPoint file ppt
application/x-tcl TCL script tcl
application/x-tex TeX source file tex
application/x-texinfo Texinfo (emacs) texinfo, texi 
application/x-troff troff file t, tr, roff t, tr, roff
application/x-troff-man troff with MAN macros man 
application/x-troff-me troff with ME macros me
application/x-troff-ms troff with MS macros ms
application/x-wais-source WAIS source file src
application/zip ZIP archive zip
audio/basic Basic audio (usually m-law) au, snd
audio/x-aiff AIFF audio aif, aiff, aifc
audio/x-wav Windows WAVE audio wav 
image/gif GIF image gif
image/ief Image Exchange Format file ief
image/jpeg JPEG image jpeg, jpg jpe 
image/tiff TIFF image tiff, tif
image/x-cmu-raster CMU Raster image ras
image/x-portable-anymap PBM Anymap image format pnm
image/x-portable-bitmap PBM Bitmap image format pbm
image/x-portable-graymap PBM Graymap image format pgm
image/x-portable-pixmap PBM Pixmap image format ppm
image/x-rgb RGB image format rgb
image/x-xbitmap X Bitmap image xbm
image/x-xpixmap X Pixmap image xpm
image/x-xwindowdump X Windows Dump (xwd)  xwd
multipart/x-gzip GNU ZIP archive gzip
multipart/x-zip PKZIP archive zip
text/css Cascading style sheet  css
text/html HTML file html, htm
text/plain Plain text txt 
text/richtext MIME Rich Text rtx
text/tab-separated- values Text with tab-separated values tsv
text/xml XML document xml
text/x-setext Struct-Enhanced text  etx
text/xsl XSL style sheet xsl
video/mpeg MPEG video mpeg, mpg, mpe 
video/quicktime QuickTime video qt, mov
video/x-msvideo Microsoft Windows video avi
video/x-sgi-movie SGI movie player format movie 

 우리가 클라이언트에게 데이터의 Stream을 만들고 보내는데, ASP를 사용한다면, IIS는 이것을 동적으로 HTML 페이지를 만들어질 것이라고 가정한다. 그리고, 그것은 MIME-Type "text/html"로 되돌려 보내질 것이다. 그러나 우리는 ASP 페이지에서 Response.ContentType 속성을 세팅할때 다른 값으로 content type을 바꿀 수 있다. 그래서 우리가 사용할 수 있는 스프레드 쉬트 응용프로그램을 위해 tab-delimited 파일을 만든다고 가정하면, 우리는 content type을 "application/tab-separated-values"으로 대신 세팅할 수 있다:


                    Response.ContentType = "application/tab-separated-values"


  이것은 HTTP 헤더 값을 지정하기 때문에, 우리는 모든 페이지의 보이는 content를 사용자에게 보내기 전에 이것을 해야한다는 것을 명심하라. 일반적으로, 우리는 페이지의 제일 위쪽 근처에 이 문장을 놓게된다. 보통은 <% @ language= ... %>와 Response.buffer 문장 다음에 놓는다.

 어떻게 브라우져가 MIME-Type을 사용하는가?

  우리가 브라우져로 되돌려 보내는 파일의 종류를 지정할 수 있다는 것을 알았기 때문에, 우리는 이제 브라우져가 이 정보를 얻었을때 무엇을 할 수 있는지 고려해야 할 수 있는지 고려할 필요가 있다. 어떻게 다른 MIME-Type을 가지는 다른 파일의 형태를 연결할 것인가? 아마도 추측했듯이, 이것은 여러분이 사용 하는 브라우져에 달려있다.

  IE4,5는 Internet Option 다이얼로그 창의 Program 페이지에서 세팅 할 수 있는데, 다이얼로그 창은 E-mail이나 이나 뉴스그룹과 같은 일반적인 인터넷 관련 활동에만 사용되는 프로그램을 지정하도록 한다:

나머지 글은 다음 URL에서 확인 하실 수 있습니다.

원본URL:  http://blog.naver.com/lhs7220/120002109223
출처: http://blog.naver.com/lhs7220

 
3
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
사라마음
2009-11-28   댓글 삭제
요건 몇번 반복해서 봐도 쬐금은 어려움!!
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
56  APNS, GCM, FCM 푸시 사용시 방화벽 설정 방법   member 기본기 0 / 0 9270 2018-04-26
55  네이티브앱 vs 웹앱 vs 하이브리드앱 장단점을 비교해 봅시다   member 물금 1 / 0 4459 2017-12-03
54  워너크라이(WannaCry)/워너크립터(WannaCryptor) 랜섬웨어 공격예방을 위한 조치.. 이미지   member 고구마 0 / 0 4028 2017-05-21
53  WikiLeaks, CIA의 윈도우 악성코드 프레임워크인 ‘AfterMidnight’, ‘Assassin’ 공..   member 고구마 0 / 0 3543 2017-05-19
52  크롬을 이용해 원격으로 윈도우 패스워드를 훔칠 수 있는 취약점 발견 돼 이미지   member 고구마 0 / 0 5432 2017-05-19
51  모든 OnePlus 기기들에서 패치되지 않은 4개 결점 발견, 원격 공격에 취약 이미지   member 고구마 0 / 0 3233 2017-05-19
50  일본 기업을 타겟으로 하는 CHCHES 악성코드 발견! 이미지   member 고구마 0 / 0 3905 2017-05-19
49  랜섬쉴드 PC 기업용, 개인 사용자에게 무료로 제공! (~ 6/20) 이미지   member 고구마 0 / 0 3315 2017-05-19
48  구형 Embedded 운영체제(Embedded POSReady 2009, Embedded Standard 2009) 보안 업데이트 및.. 이미지   member 고구마 0 / 0 3659 2017-05-15
47  DOCTYPE html Height 100% 안될 시... 조치 방법   member 고구마 0 / 0 4448 2017-05-15
46  Window Server 설치 중 필요한파일 E:Sources/install.wim을(를)열수 없습니다 이미지   member 고구마 0 / 0 4642 2017-05-15
45  비트코인 요구 워너크라이 랜섬웨어 바이러스 예방 방법 이미지   member 고구마 0 / 0 4296 2017-05-15
44  SMSVova 스파이웨어를 숨긴 가짜 앱, 구글 플레이 스토어에서 수년 동안 탐지.. 이미지   member 고구마 0 / 0 3541 2017-05-09
43  패치되지 않은 워드프레스 취약점(CVE-2017-8295), 공격자가 어드민 패스워드 .. 이미지   member 고구마 0 / 0 1919 2017-05-09
42  MySQL Riddle 취약점 발견   member 고구마 0 / 0 2388 2017-05-09
41  Mozilla Firefox 53.0 보안 업데이트 이미지  [1] member 고구마 0 / 0 1900 2017-05-09
40  Adobe ColdFusion 보안 업데이트 권고    member 고구마 0 / 0 1995 2017-05-09
39  Oracle VM VirtualBox 5.1.22 업데이트   member 고구마 0 / 0 3159 2017-05-09
38  우분투/리눅스민트/하모니카 커널 업데이트 4.4.0-77    member 고구마 0 / 0 4233 2017-05-09
37  데비안/LMDE/라즈비안(Raspbian) 커널 업데이트 3.16.43-2    member 고구마 0 / 0 2068 2017-05-09
36  Pawn Storm (폰스톰)이 개방형인증을 이용해 소셜엔지니어링에 공격 이미지   member 고구마 0 / 0 1850 2017-05-06
35  랜섬웨어, 공격 경로 다각화로 맹공 펼친다 이미지   member 고구마 0 / 0 1911 2017-05-06
34  국가별 악성코드 동향 건    member 고구마 0 / 0 1669 2017-05-06
33  실제 SQL 인젝션 공격 체험하기 이미지   member 고구마 1 / 0 2297 2017-05-04
32   파일 암호화 랜섬웨어 자주 묻는 질문   member 고구마 0 / 0 2609 2017-05-04
write
[2] [3] button