Подскажите спецификацию формата Accept-Language HTTP

O
На сайте с 29.05.2008
Offline
195
1264

Здравствуйте.

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language uk,ru;q=0.8,en-us;q=0.5,en;q=0.3

Каким законам оно вообще поддается? В первую очередь интересует заголовок Accept-Language. Желательно ссылку на спецификацию формата.

Может у кого-то есть регулярное выражение под этот формат?

И еще один вопрос, не в тему. Стоит ли возвращать Content-Language? HTTP заголовок (в т.ч. для кодировки) или HTML атрибуты charset и lang?

siv1987
На сайте с 02.04.2009
Offline
427
#1
ortegas:
Может у кого-то есть регулярное выражение под этот формат?

Да ну, http://seolab.ru/add/rfc2068/154.html

http://www.cyberforum.ru/php-beginners/thread263459.html

O
На сайте с 29.05.2008
Offline
195
#2

siv1987, ух спасибо. Ко мне только дошло, что вначале просто q=1.0 вырезана для экономии. А так да, все читабельно.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#3

Насколько мне известно, все эти заголовки попадают в $_SERVER.

Правда на некоторых хостингах бывают исключения. У меня на джино нету Accept-Encoding нигде, хотя браузер этот заголовок отправляет. А вот на локалке есть $_SERVER['Accept-Encoding'].

Подпись))
O
На сайте с 29.05.2008
Offline
195
#4

Милованов Ю.С, спасибо, именно из SERVER я их и вытягиваю.

Есть ли смысл возвращать Content-Language и Content-Encoding (когда уже установлен meta charset)?

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#5

Немного про кодировки и способы передачи:

1) Через httpd.conf/.htaccess AddDefaultCharset utf-8

2) Скриптом header('content-type: text/html; charset=utf-8')

3) ХТМЛьными мета-тэгами.

Есть такой кривой сайт(пример):

1) Из скрипта отправляет header('content-type: text/html; charset=utf-8')

2) htaccess: AddDefaultCharset windows-1251

3) А в хтмл шаблоне еще указано <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-5">

В итоге браузер будет думать(если не стоит фича "я понимаю, что это кракозябры и сам подберу кодировку"), что страница в utf-8' кодировке. Так как сервер увидев что скрипт посылает заголовок с кодировкой уже не будет отсылать то, что написано в штакессе. Ну а для браузера приоритет имеют заголовки, нежели тэги в ХТМЛе.

Как-то так.

Так что я за "AddDefaultCharset по умолчанию, а при необходимости header из скрипта";)

Чуть-чуть непонял вопрос, но все равно путь будет, может кому пригодится.

Content-Encoding возвращается сервером насколько я помню, а вот если Вы руками(в скрипте ГЗИПуете к примеру), то тогда надо header'om слать обязательно.

O
На сайте с 29.05.2008
Offline
195
#6
Милованов Ю.С:
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-5">

Я имел ввиду <meta charset=""> :) . Http-equiv это по-моему и есть HTTP заголовок. Но все-равно спасибо. Раз HTML имеет приоритет ниже, значит в принципе нету смысла прописывать этот META вообще, а лучше все контролировать через header.

IL
На сайте с 20.04.2007
Offline
435
#7
ortegas:
Раз HTML имеет приоритет ниже, значит в принципе нету смысла прописывать этот META вообще, а лучше все контролировать через header.

Можно оказаться в неприятной ситуации в случае, например, просмотра "сохраненной копии" в поисковике или "на рабочем столе"..

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
O
На сайте с 29.05.2008
Offline
195
#8

ivan-lev, точно. Думаю поисковик кодировку отдаст в заголовке такую как получал. А вот сохраненная копия, да. Но может еще форматировать DOM дерево, чтобы пользователь мог как спарсить, так еще и переделать верстку? :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий