Веб-сервер - Веб-сервер (WWW- Web-сервер) является по сути программой. Как, например, всеми любимый MS Word или Internet Explorer и т.п.
У этой программы одна задача: получить по сети запрос и послать на него ответ. Что есть запрос? Формально, запрос - это указание веб-серверу, какой ресурс вы бы хотели получить. Под ресурсом я подразумеваю документ HTML. Итак, вы, набирая в адресной строке броузера какой-либо адрес на самом деле формируете запрос веб-серверу.
Веб-сервер должен принять запрос. Понять его и обработать. Обработка означает передачу запрошенного ресурса или объяснение, почему ресурс не может быть предоставлен.
Если вы не ошиблись в запросе и таковой ресурс имеются в наличии и вы его можете получить, то веб-сервер "берет" нужный документ HTML и передает его по сети вам. Причем, передает он его "как есть", т.е. без каких-либо модификаций.
Так работает стандартный веб-сервер. Как видите, он, в сущности, очень похож на кладовщика. Что ему сказали - то он и выдал.
Теперь мы немного пофантазируем. Пусть веб-сервер работает на компьютере под управлением одной из операционных систем семейства UNIX. Как мы уже знаем, русскоязычные HTML документы на таком компьютере созданы в одной из соответствующих кодировок ( iso-8859-5 или koi8-r ).
Пусть, также, один из этих документов запрашивает человек, компьютер которого управляется операционной системой Windows.
Внимание, вопрос. Сможет ли человек прочитать полученный от веб-сервера HTML документ если веб-сервер работает по вышеописанному алгоритму?
Все зависит от самого документа. Если он соответствует общеизвестным спецификациям в плане интернационализации, то человек его прочитает. В противном случае ничего конкретного сказать нельзя...
Соответствие спецификациям означает, что внутри HTML документа сказано, в какой он кодировке (какая кодовая таблица использовалась при его создании). Существует еще один нюанс. Ответ WWW-сервера состоит из двух частей: заголовка со служебной информацией и запрашиваемого вами ресурса. Среди служебной информации может присутствовать указание кодировки передаваемого ресурса (документа). В этом случае броузер будет ориентироваться именно на эту информацию. А если кодировка также указана внутри самого ресурса (документа)? Броузер это указание проигнорирует. Например, указанная WWW-сервером кодировка ресурса koi8-r, внутри документа стоит windows-1251. Допустим также, что и сам документ создан в кодировке windows-1251. Сможет ли броузер отобразить читабельный текст? Нет. Потому что он будет исходить из информации, полученной от WWW-сервера (koi8-r).
Чтобы не ошибиться, надо знать установки нашего сервера по умолчанию (для персональных страниц!). Вот они:
Файлы, имеющие расширения .html и .shtml отдаются с указанием кодировки koi8-r
Файлы, имеющие расширения .htm и .shtm отдаются с указанием кодировки windows-1251
Следите, чтобы кодировки ваших HTML-документов соответствовали этим настройкам.
Для виртуальных хостов все документы отдаются с указанием кодировки windows-1251
Для особо продвинутых сообщаю, что вы имеет возможность переопределять эти настройки в своих файлах .htaccess. Используйте директиву AddCharset: AddCharset windows-1251 .html .htm .shtml .shtm
Здесь я полностью перекрыл установки по умолчанию и теперь все мои документы будут отдаваться с указанием кодировки windows-1251.
<<назад