모듈 mime(mod_mime) : 파일 확장자를 이용해 문서의 타입 결정
등록일:2007-05-14 02:15:09 |
이 모듈은 웹서버가 인식처리 할수 있는 MIME-TYPE설정에 관련된 모듈로서 mod_mime.c 화일에 관련코드가 포함되어 있다.
서문
MIME(Multipurpose Internet Mail Extension)에 대해서 알아보자.
MIME는 말 그대로 E-mail 교환시 멀티미디어 데이타 교환을 위한 표준적인 문서타입 정의 방식이다.
기본적으로 7개의 유형(text,multipart,message,application,image,video,audio)으로 분류되고
각 타입마다 하위타입이 존재한다.
인터넷에서는 서로다른 운영체제에서 동작하는 네트워크간의 정보교환이므로 서로다른 타입의 문서교환을 위해서는 위와 같은 MIME라는 표준적인 문서타입을 정의 할 필요가 있다.
또한, 클라이언트의 브라우저 프로그램에게 전송하고자 하는 문서의 타입을 알리지 않는다면 문서를 전송받는 클라이언트는 적절하게 대처하지 못할 것이다.
"확장자를 보고 구분할 수 있지 않느냐?" 라고 생각할 지도 모르겠지만 이러한 확장자들은 유동적으로 소멸,탄생을 거듭하고 있으므로 관련 어프리케이션들의 버전업이 쉴새없이 이루어 져야 하는 불편함이 따라야 할것이고,또한 알려지지 않은 타입의 문서에 대해서는 대처하지 못할것이다.
실제로 우리가 느끼지 못하는 사이에 브라우저라든지, 뉴스 리더,기타 메일 리더 프로그램들은 서버와 MIME-TYPE에 대해 정보를 주고받아 우리에게 이미지 또는 소리, 텍스트 형태로 우리에게 뷰잉 하고 있는것이다.
이 모듈에서는 서버가 전송하려고 하는 문서의 화일명 중 확장자를 참조해 어떤 종류의 문서인가를 클라이언트에게 알려 설정하고 해제하는 기능을 담당한다.
따라서 서버 설치자는 새로운 타입의 문서에 대해서 이부분을 참조한다면 어떤 종류의 MIME-TYPE 도 유동적으로 활용할 수 있을 것이다.
이 모듈에서 사용할 수 있는 다이렉티브는 아래와 같이 7가지가 있다.
하나씩 사용법을 알아보도록 하자.
Directives
--------------------------------------------------------------------------------
AddEncoding
Syntax: AddEncoding mime-enc extension extension...
Context: server config, virtual host, directory, .htaccess
Override: FileInfo
Status: Base
Module: mod_mime
새로운 타입의 확장자에 대해서 하위 MIME타입을 지정한다.
그리고 이 타입의 문서에 대해서는 비트 Encoding을 함을 의미한다.
통상 바로뒤에 엔코딩할 언어지정디렉터(AddLanguage)가 뒤에 따른다.
사용법: AddEncoding 하위 MIMI-TYPE 확장자
Example:
AddEncoding x-gzip gz
AddEncoding x-compress Z
위의 예는 확장자가 gz타입인 화일을 gzip방식으로 Encoding하라는 지정이다.
마찬가지로 확장자가 Z인 화일은 compress방식으로 Encoding하라는 지정이다.
*주의: x의 의미는 공식적으로 등록이 되지 않은 사용자 임의의 타입이기 때문이다.
공식적인 등록은 IANA를 통해서만이 등록이 가능하며 IETF측의 심의위원들과의
심의를 통해서 결정된다.
또한, 타입지정시 대소문자를 확실히 구별한다는 것을 유의하기 바란다.
--------------------------------------------------------------------------------
AddHandler
Syntax: AddHandler handler-name extension extension...
Context: server config, virtual host, directory, .htaccess
Status: Base
Module: mod_mime
Compatibility: AddHandler is only available in Apache 1.1 and later
이것은 특정확장자를 가진 문서를 ACCESS할때 실행되는 프로그램 지정에 사용한다.
보통 cgi핸들러지정에 많이 쓰이는 방법으로서 확장자가 cgi인 문서에 대해서
처리할 핸들러 프로그램을 지정할 때 쓰인다.
사용법: AddHandler 핸들러프로그램 확장자
Example:
AddHandler cgi-script cgi
위의 예는 확장자가 cgi화일을 cgi-script프로그램에 의해 처리하라는 지정이다.
--------------------------------------------------------------------------------
AddLanguage
Syntax: AddLanguage mime-lang extension extension...
Context: server config, virtual host, directory, .htaccess
Override: FileInfo
Status: Base
Module: mod_mime
엔코딩되는 문서의 언어 타입을 지정한다.
zip화일을 보면 간혹 en 또는 fr 이 확장자 앞에 붙어있는 경우를 보는데, 이것은 언어형식이 영어 또는 프랑스어임을 의미한다.
사용법: AddLanguage 언어타입 확장자
Example:
AddEncoding x-compress Z
AddLanguage en .en
AddLanguage fr .fr
위의 예에서는 확장자가 Z인 압축화일에서 .en이 포함된것은 영어로 Encoding하고 .fr로 된것은 프랑스어로 Encoding하라는 지정이다.
*참고: 언어타입에 대해서는 아파치메뉴얼을 참고하기 바란다.
우리나라는 kr이고 미국은 us,일본은 jp등등이다.
--------------------------------------------------------------------------------
AddType
Syntax: AddType mime-type extension extension...
Context: server config, virtual host, directory, .htaccess
Override: FileInfo
Status: Base
Module: mod_mime
말 그대로 새로이 지정한다.
사용법: AddType 상위MIME-TYPE/하위MIME-TYPE 확장자
Example:AddType image/gif GIF
위의 예는 확장자가 GIF인 화일을 image/gif로 지정한다는 의미가 된다.
이렇게 지정해놓으면 확장자가 GIF인 문서를 전송받는 클라이언트(브라우저 등의 소프트웨어)는 위에 지정한 타입인 image/gif를 먼저 전송받기 때문에 화일의 종류를 미리 알수 있게 된다.
gif화일을 보여주는 플러그인을 띄우던지 브라우저 내부에서 보여주든지 대처를 하게 된다는 것이다.
*참고: 상위 MIME-TYPE은 전에 제시한 7개의 타입중 한개가 되어야 하며, 하위 MIME-TYPE은 임의로 만들어진 타입명을 지정하면 된다.
(단,클라이언트가 위에 지정한 타입에 대해 적절히 대처하도록 설정이 되어 있지 않다면 디스크에 저장할지 어떤 핸들러 프로그램에게 넘길지 묻게 될것이다.)
그리고 확장자는 대소문자를 구별한다.
--------------------------------------------------------------------------------
ForceType
Syntax: ForceType media type
Context: directory, .htaccess
Status: Base
Module: mod_mime
Compatibility: ForceType is only available in Apache 1.1 and later.
이 디렉터는 지정한 타입에 대해 타입전송을 취소한다.
사용자 설정화일에서 섹션 또는 섹션에 위치한다.
사용법: ForceType MIME-type
가령 아래와 같이 지정되어 있다고 하자.
ForceType image/gif
image/gif타입의 문서들은 타입전송이 되지않는다.
특정 종류의 문서에 대해서 열람을 통제할 수 있는 좋은 방법으로 많이 쓰인다.
--------------------------------------------------------------------------------
SetHandler
Syntax: SetHandler handler-name
Context: directory, .htaccess
Status: Base
Module: mod_mime
Compatibility: SetHandler is only available in Apache 1.1 and later.
이것은 MIME-TYPE 과는 좀 동떨어진 디렉터이다.
이 디렉터의 기능은 URL입력시 실행되는 핸들러 프로그램의 지정에 있다.
또한 사용자 설정화일에서 주로 섹션에 위치한다.
사용법: SetHandler imap-file(핸들러 프로그램)
아래의 예를 들어 사용법을 익혀보자
Example:
<Location /status>
SetHandler server-status
</Location>
위의 예에서 사용자 메인 홈페이지 주소다음에 /status를 입력하면 server-status프로그램이 실행되라는 의미이다.
--------------------------------------------------------------------------------
TypesConfig
Syntax: TypesConfig filename
Default: TypesConfig conf/mime.types
Context: server config
Status: Base
Module: mod_mime
이 디렉터는 여러개의 확장자를 하나의 MIME-TYPE으로 묶어주는 역활을 해준다.
가령 text/html MIME-TYPE은 잘알려진 타입이다. html화일은 확장자가 htm일수도 있고
html일 수도 있다. 또한 대소문자를 구분하기 때문에 같은 의미일지라도 대소문자에 따라
서버가 인식할수도 인식하지 못할수도 있을 것이다.
그럴때 사용하는 디렉터가 이것이다.
사용법: TypesConfig 확장자 확장자 확장자 ....
--------------------------------------------------------------------------------
이 문서는 아파치 문서 한글화 작업에 의해 진행되어 졌습니다.
작성자 : 손종국
| [아파치 문서 기고 안내] |
작성하신 문서를 지금 아파치 사용자 커뮤니티와 공유해 주십시오. 공유하시는 글들은 여러분들의 이름으로 이곳에 등록되어 많은 분들이 도움을 받을 수 있습니다. 또한 계획중이신 글이 있으신가요? 계획중이신 글을 저희에게 알려주시거나 또는 공동작업할 수 있도록 도움을 드리도록 하겠습니다. 혹시 글이 내용이 작거나 부족하다고 생각하시나요? 정보는 공유할 수록 그 의미가 커집니다. 부족한 부분은 저희 아파치 커뮤니티 사용자들분과 채워가실 수 있습니다. 여러분들의 참여를 기다리겠습니다. 문서 기고 및 문의 사항은 submit (at) apache-kr.org 으로 해주세요. 추후 온라인에서 직접 문서를 등록하실 수 있도록 작업할 예정입니다. |
