Техническая поддержка

Управление MIME types. Поддержка WAP

MIME (Multipurpose Internet Mail Extensions) - стандарт для определения типа передаваемой информации и механизмов ее обработки. Описан в следующих документах: RFC2045, RFC2046, RFC2047, RFC2048, RFC2049.

В основном, стандарт предназначен для идентификации нетекстовой информации. Тип информации определяется в следующем формате: type/subtype.

Как это работает

На данный момент существуют следующие зарегистрированные типы, используемые в системе WWW:

  • text - предназначен для описания всех "принципиально" текстовых форматов
  • image - предназначен для описания графических форматов
  • audio - предназначен для описания аудио форматов
  • video - предназначен для описания видео форматов
  • model - предназначен для описания форматов представления моделей (RFC2077)
  • application - предназначен для тех форматов, которые не подходят к другим категориям, а также для тех, которым необходима обработка сторонними приложениями

Более подробную информацию о зарегистрированных в IANA (The Internet Assigned Numbers Authority - www.iana.org) типах MIME можно получить по адресу: http://www.iana.org/assignments/media-types/.

Определение типов MIME используется для согласования работы веб-сервера и браузера.

Алгоритм следующий:

1. Клиент запрашивает в браузере документ по адресу http://www.zenon.net/index.html. Браузер делает запрос документа:

GET /index.html HTTP/1.1
Host: www.zenon.net

2. Сервер "знает", что /index.html является документом HTML и ему соответствует mime-type text/html. Об этом сервер сообщает в заголовках своего ответа браузеру в поле Content-Type:

HTTP/1.1 200 OK
Date: Wed, 27 Dec 2000 19:15:11 GMT
Server: Apache/1.3.14 (Unix) PHP/3.0.16 FrontPage/3.0.4.2
mod_perl/1.24 AuthMySQL/2.20
Cache-Control: max-age=1800
Expires: Wed, 27 Dec 2000 19:45:11 GMT
Connection: close
Content-Type: text/html; charset=windows-1251

3. Браузер, получая в поле Content-Type: значение text/html, использует соответствующий механизм отображения.

Для того, чтобы описанный механизм работал согласно Вашим потребностям, необходимо правильно настроить работу веб-сервера и веб-браузера.

Настройка веб-сервера

Дальнейшее описание настроек веб-сервера будет приведено в соответствии с условиями предоставления услуг хостинга компанией Зенон Н.С.П. При работе по определенным типам тарифов некоторые возможности по настройке сервера могут быть недоступны, что будет оговариваться отдельно. Если Вы используете хостинг другого провайдера, проконсультируйтесь в соответствующей технической службе о тонкостях настроек.

Основные типы MIME описываются в конфигурационном файле mime.types, информацию из которого сервер считывает при запуске. Формат описания типов следующий:

   MIME-type extension [extension] ...

Пример описания видео формата MPEG:

   video/mpeg mpeg mpg mpe

В файле mime.types представлены форматы:

графические:

   image/bmp                       bmp
   image/gif                       gif
   image/jpeg                      jpeg jpg jpe
   image/png                       png
   image/tiff                      tiff tif

аудио:

   audio/basic                     au snd
   audio/midi                      mid midi kar
   audio/mpeg                      mpga mp2 mp3
   audio/x-pn-realaudio            ram rm
   audio/x-pn-realaudio-plugin     rpm
   audio/x-realaudio               ra
   audio/x-wav                     wav

видео:

   video/mpeg                      mpeg mpg mpe
   video/quicktime                 qt mov
   video/x-msvideo                 avi
   video/x-sgi-movie               movie

модели:

   model/vrml                      wrl vrml

текстовые:

   text/css                        css
   text/html                       html htm
   text/plain                      asc txt
   text/richtext                   rtx
   text/rtf                        rtf
   text/sgml                       sgml sgm
   text/xml                        xml

архивы:

   application/x-gtar              gtar
   application/x-tar               tar
   application/zip                 zip

приложения Microsoft:

   application/msword              doc
   application/vnd.ms-excel        xls
   application/vnd.ms-powerpoint   ppt

типы MIME для корректной работы wap:

   application/vnd.wap.wbxml       wbxml
   application/vnd.wap.wmlc        wmlc
   application/vnd.wap.wmlscriptc  wmlsc
   image/vnd.wap.wbmp              wbmp
   text/vnd.wap.wml                wml
   text/vnd.wap.wmlscript          wmls

другие приложения:

   application/octet-stream        bin dms lha exe class
   application/pdf                 pdf
   application/postscript          ai eps ps
   application/x-shockwave-flash   swf

В случае, если в приведенном выше списке Вы не нашли нужного Вам формата или Вам не подходят текущие описания форматов, Вы можете внести собственные изменения. Как это сделать и как воспользоваться возможностями, облегчающими выполнение некоторых задач, описано ниже.

Не для всех тарифов на хостинге "Зенон Н.С.П." возможно изменение файла mime.types, а также и остальных конфигурационных файлов, использующихся при запуске web-сервера. Стандартный файл mime.types, используемый по умолчанию, можно посмотреть, зайдя в Unix-Shell и выполнив команду:

less /www/conf/mime.types

Стоит также упомянуть о директивах, относящихся к типам MIME и используемых в httpd2.conf:

TypesConfig - определяет полный или относительный путь к файлу mime.types. Путь по умолчанию: conf/mime.types. Формат директивы:

   TypesConfig path

DefaultType - определяет тип MIME по умолчанию, то есть для тех файлов, тип которых не определен в файле mime.types. Значение по умолчанию - text/plain. Формат директивы:

   DefaultType MIME-type

Применение данной директивы удобно в тех случаях, когда на Вашем сервере возможно появление файлов с незарегистрированными расширениями. В таком случае для этого файла сервером будет выдаваться тип MIME согласно установкам директивы. Следует также отметить, что, если формат таких файлов не текстовый, то предпочтительнее устанавливать тип MIME application/octet-stream. В этом случае не будут производиться перекодировки, возможные при неправильном типе MIME, и пользователь получит файл в первоначальном виде.

Пример:

   DefaultType application/octet-stream

Директива DefaultType, как и все директивы, которые будут описаны далее, также может быть использована в файле .htaccess. Соответственно, они могут быть использованы при работе по любому тарифу.

AddType - добавление типа MIME для файлов с определенными расширениями. Может также использоваться для переопределения типа MIME для ранее описанных расширений. Формат директивы:

   AddType MIME-type extension [extension] ...

Директива используется как альтернатива изменения файла mime.types. Удобна в том случае, когда необходимо добавить новый или переопределить имеющийся тип MIME для файлов в определенной директории.

Например, в стандартном файле mime.types тип MIME application/x-gzip не связан ни с каким расширением, хотя стандартным расширением для файлов такого типа является gz. Эту ситуацию легко исправить, прописав в файле .htaccess директиву:

   AddType application/x-gzip .gz

До последнего времени ярким примером использования директивы являлось "включение поддержки протокола wap". Вся процедура состояла из добавления определенного набора типов MIME:

AddType text/vnd.wap.wml .wml
AddType application/vnd.wap.wmlc .wmlc
AddType text/vnd.wap.wmlscript .wmls
AddType application/vnd.wap.wmlscriptc .wmlsc
AddType image/vnd.wap.wbmp .wbmp

На данный момент все эти типы MIME уже присутствуют в стандартных настройках серверов по тарифам хостинга.

Еще один пример. Возможно возникновение ситуации, когда необходимо предоставить wap-доступ к какой-либо директории с находящимися в ней html-файлами. Для этого в файле .htaccess, находящемся в этой директории, прописывается директива:

   AddType text/vnd.wap.wml .html

После этого все файлы отдаются с корректным типом MIME. Следует учесть, что доступ к этой директории стандартными браузерами будет невозможен.

ForceType - переопределение типа MIME для всех файлов в директории. Формат директивы:

   ForceType MIME-type

Пример: в какую-либо директорию нужно будет разместить текстовые файлы и не хотелось бы думать об их расширениях, а DefaultType установлен не text/plain. Для этой директории нужно установить:

   ForceType text/plain

RemoveType - удаляет определение типа MIME для файлов с определенными расширениями. То есть для этих файлов тип MIME определяется согласно установкам директивы DefaultType. Формат директивы:

   RemoveType extension [extension] ...

В продолжение последнего примера для директивы AddType. После переопределения типа MIME для файлов с расширением html можно вернуть тип MIME для этих файлов комбинацией следующих директив:

RemoveType text/vnd.wap.wml .html
DefaultType text/html