Apache Версия 2.0 Сервера HTTP
Description: | предусматривает content negotiation |
---|---|
Status: | основа |
Module Identifier: | negotiation_module |
Source File: | mod_negotiation.c |
удовлетворить переговоры, или более точно удовлетворить выбор, - выбор документа что лучшие спички способности клиентов, от одного из нескольких доступных документов. Есть два выполнения этого.
type-map
), который явно перечисляет файлы, содержащие варианты.
MultiViews
Options
), где сервер делает неявное состязание образца имени файла, и выбирать из среди результатов.
карта типа имеет формат, подобный ударам головой почты RFC822. Это содержит описания документа, отделенные чистыми линиями, с линиями, начинающимися с характера мешанины ('#') рассматривал как комментарии. Описание документа состоит из нескольких отчетов удара головой; отчеты могут быть продолжены на многократных линиях, если линии продолжения начинаются с мест. Ведущее место будет удалено, и линии связаны. Отчет удара головой состоит из названия ключевого слова, которое всегда заканчивается в двоеточии, сопровождаемом ценностью. Whitespace позволяется между названием удара головой и ценностью, и между символами ценности. Разрешенные удары головой:
Content-Encoding:
AddEncoding
директива. Это обычно включает зашифровывания
x-compress
для compress'd файлов, и
x-gzip
для gzip'd файлов.
x-
приставка игнорируется для того, чтобы кодировать сравнения.
Content-Language:
en
, значение английского языка. Если вариант содержит больше чем один язык, они отделены запятой.
Content-Length:
Content-Type:
name=value
. общие параметры включают:
level
text/html
это неплатежи к 2, иначе 0.
qs
qs
ценности являются поэтому определенными для данного ресурса.
Content-Type: image/jpeg; qs=0.8
URI:
Body:
Body:----xyz----
<html>
<body>
<p>Content of the page.</p>
</body>
</html>
----xyz----
поиск Мультипредставлений позволяется
MultiViews
Options
. если сервер получает запрос о
/some/dir/foo
и
/some/dir/foo
делает
нет
существовать, тогда сервер читает справочник, ищущий все названные файлы
foo.*
, и эффективно фальсифицирует карту типа, которая называет все те файлы, назначая их теми же самыми видами средств рекламы и довольными зашифровываниями, которые это имело бы, если клиент спросил одного из них по имени. Это тогда выбирает лучшее состязание к требованиям клиента, и возвращениям тот документ.
MultiViewsMatch
директива формирует, рассмотрит ли Apache файлы, которые не имеют довольной информации Меты переговоров назначенной на них, выбирая файлы.
Description: | позволяют довольно-договорные документы прятаться про запас по доверенности серверы |
---|---|
Syntax: |
CacheNegotiatedDocs On|Off
|
Default: |
CacheNegotiatedDocs Off
|
Context: | сервер config, действительный хозяин |
Status: | основа |
Module: | mod_negotiation |
Compatibility: | синтаксис изменился в версии 2.0. |
если установлено, эта директива позволяет довольно-договорным документам прятаться про запас по доверенности серверы. Это могло означать, что клиенты позади тех proxys могли восстановить версии документов, которые не лучшее состязание для их способностей, но это сделает кэширование более эффективным.
эта директива только обращается к запросам, которые прибывают от браузеров HTTP/1.0. HTTP/1.1 обеспечивает намного лучший контроль над кэшированием договорных документов, и эта директива не имеет никакого эффекта в ответах на запросы HTTP/1.1.
до версии 2.0,
CacheNegotiatedDocs
не брал аргумент; это было включено присутствием директивы отдельно.
Description: | действие, чтобы взять, если единственный приемлемый документ не найден |
---|---|
Syntax: |
ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]
|
Default: |
ForceLanguagePriority Prefer
|
Context: | сервер config, действительный хозяин, справочник, .htaccess |
Override: | FileInfo |
Status: | основа |
Module: | mod_negotiation |
Compatibility: | доступный в версии 2.0.30 и позже |
ForceLanguagePriority
директива использует данный
LanguagePriority
удовлетворять negotation, куда сервер не мог иначе возвратить единственный документ соответствия.
ForceLanguagePriority Prefer
использования
LanguagePriority
служить одному действительному результату, вместо того, чтобы возвратить HTTP заканчиваются 300 (МНОГОКРАТНЫЕ ВЫБОРЫ), когда есть несколько одинаково действительных выборов. Если директивы ниже давались, и пользователь
Accept-Language
назначенный удар головой
en
и
de
каждый как качество
.500
(одинаково приемлемый) тогда первый вариант соответствия,
en
, будет служиться.
LanguagePriority en fr de
ForceLanguagePriority Prefer
ForceLanguagePriority Fallback
использования
LanguagePriority
служить действительному результату, вместо того, чтобы возвратить HTTP заканчиваются 406 (НЕ ПРИЕМЛЕМЫЙ). Если директивы ниже давались, и пользователь
Accept-Language
только разрешенный
es
языковой ответ, но такой вариант не найден, тогда первый вариант от
LanguagePriority
упомянуть ниже будет служиться.
LanguagePriority en fr de
ForceLanguagePriority Fallback
оба варианта,
Prefer
и
Fallback
, может быть определен, таким образом любой первый вариант соответствия от
LanguagePriority
будет служиться, если больше чем один вариант будет приемлем, или сначала доступному документу будут служить, если ни один из вариантов не соответствовал приемлемому списку клиента языков.
Description: | precendence языковых вариантов для случаев, где клиент не выражает предпочтение |
---|---|
Syntax: |
LanguagePriority
MIME-lang
[
MIME-lang
] ...
|
Context: | сервер config, действительный хозяин, справочник, .htaccess |
Override: | FileInfo |
Status: | основа |
Module: | mod_negotiation |
LanguagePriority
устанавливает предшествование языковых вариантов для случая, где клиент не выражает предпочтение, обращаясь с запросом Мультипредставлений. Список
ПАНТОМИМА-LANG
являются в порядке уменьшения предпочтения.
LanguagePriority en fr de
для запроса о
foo.html
, где
foo.html.fr
и
foo.html.de
оба существовали, но браузер не выражал языковое предпочтение, тогда
foo.html.fr
был бы возвращен.
отметить, что эта директива только имеет эффект, если 'лучший' язык не может быть определен никакими другими средствами или
ForceLanguagePriority
директива не
None
. вообще, клиент определяет языковое предпочтение, не сервер.