반응형

Web 서버에 공개되는 파일은 텍스트 파일이나 HTML 파일만 가능한 것이 아니다. 이미지나 동영상 등 다양한 파일을 처리할 수 있다. 클라이언트에서 요청하는 파일에 대해 WWW 서버는 파일의 내용을 요청된 파일이 어떤 종류의 파일인지를 맞춰서 클라이언트에 반환을 하게 된다. 그에 따라 클라이언트는 받은 데이터를 적절한 표시 방법으로 처리를 하게 된다.

기본 MIME 타입 및 확장자의 조합은 기본적으로 'mime.types'파일에 등록되어 있다. 이 파일 이름과 설치 디렉토리는 "TypesConfig"로 설정되어 있다.

그러면 "httpd.conf"파일에서 "TypesConfig"로 검색해 보면, 다음과 같은 내용을 찾을 수 있을 것이다.

<IfModule mime_module>
    #
    # TypesConfig points to the file containing the list of mappings from
    # filename extension to MIME-type.
    #
    TypesConfig conf/mime.types

... 생략 ...

</ IfModule>

상대 경로로 지정되어 있기에 "ServerRoot"에 대한 상대 경로로 되어 있어, 실제의 파일은 "${SRVROOT}\conf\mime.types"이 된다.

C:\apache\Apache24\conf>dir
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: XXXX-XXXX

 C:\apache\Apache24\conf 디렉터리

2019-11-26  오후 10:39    <DIR>          .
2019-11-26  오후 10:39    <DIR>          ..
2019-08-09  오후 11:50             1,820 charset.conv
2019-11-26  오후 10:39    <DIR>          extra
2019-12-01  오후 11:41            20,686 httpd.conf
2019-08-09  오후 11:50            13,449 magic
2019-08-09  오후 11:50            62,702 mime.types <<<<<<<<<<<<<< 여기 있다.
2019-05-28  오후 10:12            11,259 openssl.cnf
2019-11-26  오후 10:39    <DIR>          original
               5개 파일             109,916 바이트
               4개 디렉터리  456,097,648,640 바이트 남음

C:\apache\Apache24\conf>

'mime.types'는 텍스트 파일이므로 텍스트 편집기에서 열어 일부분만 발췌해 보면 다음과 같다.

# MIME type (lowercased)            Extensions
# ============================================  ==========
application/json                json
text/css                    css
text/csv                    csv
text/html                   html htm
text/plain                  txt text conf def list log in

MIME 타입에 해당하는 확장자가 등록되어 있다. 예를 들어 ".html" 및 ".htm"확장자를 가진 파일은 MIME 형식이 "text/html"이 되고, ". txt" 및 ".log" 확장자를 가진 파일은 MIME 유형은 "text/plain"이 된다.

MIME 타입을 추가

이미 등록되어 있는 확장자 외에 다른 확장자에 대한 MIME 형식을 추가로 등록할 수 있다. 이 경우 "mime.types" 에 추가로 작성하는 대신에 "httpd.conf "파일에서 "AddType"를 사용하여 작성하는 것을 추천하고 있다.

AddType MIME 유형 확장명 MIME 타입 및 확장자를 세트로 지정다.

그러면 "httpd.conf"파일에서 "AddType"로 검색해 보면, 다음과 같은 내용을 찾을 수 있을 것이다.

<IfModule mime_module>

... 생략...

    #
    # AddType allows you to add to or override the MIME configuration
    # file specified in TypesConfig for specific file types.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding allows you to have certain browsers uncompress
    # information on the fly. Note: Not all browsers support this.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
        
... 생략...

</IfModule>

예를 들면, PHP 파일 인 ".php" 및 ".phps"에 대한 MIME 타입 설정하려면 다음과 같이 작성한다.

<IfModule mime_module>

... 생략 ...

    #
    # AddType allows you to add to or override the MIME configuration
    # file specified in TypesConfig for specific file types.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding allows you to have certain browsers uncompress
    # information on the fly. Note: Not all browsers support this.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

... 생략 ...

</IfModule>

참조


반응형

+ Recent posts