Смекни!
smekni.com

Администрирование локальных сетей (стр. 34 из 39)

HTTP_ACCEPT

Список MIME типов, которые клиент может обработать, как задано в HTTP заголовках. Другие протоколы должны получить эту информацию из других мест (если она им необходима). Каждый тип в этом списке должен быть отделен запятой согласно HTTP спецификации. Формат: тип/подтип, тип/подтип

HTTP_USER_AGENT

Просмотрщик, который использует клиент для посылки запроса. Общий формат: программа/версия библиотека/версия.

Вывод информации шлюзом

Основные концепции

Шлюз осуществляет свой вывод в стандартный поток вывода. Этот вывод может представлять собой или документ, сгенерированный шлюзом, или инструкции серверу, где получить необходимый документ.

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

Заголовок выходного потока

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

Заголовки с синтаксическим разбором

Вывод шлюза начинается с маленького заголовка. Он содержит текстовые строки, в том же формате, как и в HTTP заголовке и завершается пустой строкой (содержащей только символ перевода строки или CR/LF).

Любые строки заголовка, не являющиеся директивами сервера, посылаются непосредственно клиенту. В настоящий момент, CGI спецификация определяет три директивы сервера:

Content-type

MIME тип возвращаемого документа.

Location

Это поле используется в случае, когда необходимо указать серверу, что возвращается не сам документ, а ссылка на него.

Если аргументом является URL, то сервер передаст клиенту указание на перенаправление запроса. Если аргумент представляет собой виртуальный путь, сервер вернет клиенту заданный этим путем документ, как если бы клиент запрашивал его непосредственно.

    Status

Эта директива используется для задания серверу HTTP/1.0 строки-статус, которая будет послана клиенту. Формат: nnn xxxxx, где nnn - 3-х цифровой статус-код, и xxxxx строка причины, такая, как "Forbidden" (Запрещено).

Примеры

Предположим, имеется некоторый текстовый конвертер в HTML. Когда он оканчивает свою работу, он должен произвести следующий вывод в стандартный выходной поток:

--- начало вывода ---

Content-type: text/html

--- конец вывода ---

Теперь рассмотрим шлюз, который, в некоторых случаях, должен выдать документ /path/doc.txt с данного сервера, как если бы он был непосредственно востребован клиентом через http://server:port/path/doc.txt. В это случае вывод шлюза будет таков:

--- начало вывода ---

Location: /path/doc.txt

--- конец вывода ---

Наконец, предположим, что шлюз возвращает ссылки на gopher сервер, например на gopher://gopher.ncsa.uiuc.edu/. Вывод шлюза будет следующий:

--- начало вывода ---

Location: gopher://gopher.ncsa.uiuc.edu/

--- конец вывода ---

Non-parsed headers

Допустим теперь, что у нас имеется шлюз, который общается с клиентом непосредственно. Как уже отмечалось, его имя должно начинаться с префикса nph- и он должен возвращать допустимый HTTP заголовок. В этом случае, если доступ к шлюзу был осуществлен со значением SERVER_PROTOCOL равным HTTP/1.0, его вывод должен удовлетворять HTTP/1.0:

--- начало вывода ---

HTTP/1.0 200 OK

Server: NCSA/1.0a6

Content-type: text/plain

--- конец вывода ---

Примечание! Материал подготовлен на основе документа "CGI Specification at NCSA"

    PHP

PHP - язык написания сценариев, внедренный в HTML. Многое из синтаксиса заимствовано из C, Java и Perl, с добавлением специфичных для PHP возможностей. Задача языка состоит в том, чтобы дать возможность Web-разработчикам легко и быстро создавать динамично изменяемые html-страницы.

Что может делать PHP3?

Возможно самая сильная и значимая возможность в PHP3 - уровень интеграции с базами данных. Написание веб-страницы работающей с базой данных невероятно проста. В настоящее времени поддерживаются следующие базы данных:

Oracle

Adabas D

Sybase

FilePro

mSQL

Velocis

MySQL

Informix

Solid

dBase

ODBC

Unix dbm

PostgreSQL

Краткая История PHP

PHP был задуман где-то в конце 1994 года Расмусом Ледорфом(Rasmus Lerdorf). Ранние невыпущенные версии использовались на его домашней странице для того, чтобы следить за тем кто просматривал его интерактивное резюме. Первая используемая версия cтала доступна где-то в начале 1995 и была известна как Personal Home Page Tools. Она состояла из очень упрощенного движка синтаксического анализатора, который понимал только несколько специальных макрокоманд и ряд утилит, которые затем были в общем использовании на домашних страницах. Гостевые книги, счетчики и некоторые другие дополнения.

Довольно трудно дать какую-либо жесткую статистику, но отмечено, что к 1996 г. PHP/FI был использован по крайней мере на 15,000 веб-сайтах во всем мире. В середине 1997г. эта цифра выросла до более чем 50,000. В середине 1997г. также наблюдалось изменение в разработке PHP. Из частного любимого проекта Расмуса, которому способствовала горстка людей , это превратилось в намного более организованную рабочую группу. Синтаксический анализатор был заново переписан Зевом Сураски(Zeev Suraski) и Анди Гутмансом(Andi Gutmans), и этот новый синтаксический анализатор стал основой для PHP Версии 3.

Сегодня ( в середине -1998г.) как PHP/FI так и PHP3 поставляется с рядом коммерческих продуктов типа C2's StrongHold web server и RedHat Linux и консервативной оценкой, основанной на экстрaполяции чисел, предоставленных NetCraft было бы то, что PHP используется на 150,000 cайтах во всем мире. В перспективе, их больше чем сайтов, запущенных на Netscape's flagship Enterprise server в Интернете.

Модульность и ортогональность с использованием существующих технологий.

Ортогональность и модульность кода сайта логично взаимосвязаны. Разработка сайта, изначально предусматривающая модульность, скорее всего будет подразумевать так же его ортогональность.

При создании сайта сразу следует предусмотреть в его структуре возможность модульности, как, например, все JavaScript-сценарии следует выносить во внешние файлы, которые можно разместить в отдельной директории сайта, к которой будет ограничен доступ, что значительно повысит безопасность сайта, сделает его структуру более простой у удобочитаемой. Далее, все общие элементы дизайна и стилевого оформления лучше всего описать в виде CSS и так же вынести во внешний файл или файлы. В этом плане CSS наиболее продвинутая технология в плане разграничения контента и его оформления, здесь четко различается иерархическая структура оформления и само содержание, CSS содержания не касается.

При разработке PHP-скриптов и приложений рекомендуется для наиболее часто используемых участков кода создавать функции и выносить их в отдельные библиотеки функций, а так же серверно-зависимые настройки, хосты баз данных, пароли и имена для аутентификации выносить в конфигурационные файлы, для которых следует определить отдельный определенный класс. Таким образом мы получаем масштабируемый, модульный и легко переносимый код.

Следующая технология, которая позволяет разделить содержание и оформление сайта – SSI. После CSS это наиболее приближенная к идее независимости контента от его представления технология. Во включаемые файлы посредством SSI обычно выносятся заголовки сайтов, элементы оформления нижней части страницы, а так же меню и вообще любые другие общие элементы сайта. Например, если мы выносим меню во включаемые файлы, то это позволит нам быстро добавлять в структуру сайта новые разделы, причем изменения придется делать и синхронизировать не во множестве страниц, а в одном файле описания меню, далее он автоматически включится во все страницы.

Веб-приложения.

Под веб-приложениями понимается все, что не относится к простому гипертекстовому документу, как то, апплеты, флэш-приложения, презентации, скрипты, ActiveX компоненты и сценарии, а так же обычные программы и модули и плагины браузера. Кроме этого под веб-приложениями так же могут пониматься интерфейсы, интерфейсы к базам данных, интернет-магазины, системы новостей и многое другое. Практически все что требует программирования может быть отнесено к приложениям.

Общие требования к страницам сайта.

Общие требования к страницам сайта не содержат ничего специфического и подробно нигде не описаны. Следует выделить такие общие требования.

  • размер одной страницы. Средний размер страницы рекомендуется в среднем делать не более 60Кб, для сплэш-страниц и презентационных страниц размер может быть до70-90Кб.
  • Графика. Не рекомендуется перегружать страницу графикой и флэш-презентациями сверх необходимого, а так же излишней графикой.
  • Прозрачная навигация. Навигация на сайте должна быть прозрачной, т.е. интуитивно понятной и достаточно простой. В графическом меню обязательно должен быть прописан альтернативный текст для пользователей текстовых браузеров и для тех кто любит отключать графику на страницах.
  • Разбивка текста. Большие текстовые блоки следует разбивать на страницы, которые содержат 3-4 экрана, опять же из соображений размера – они быстро выкачиваются, а так же удобочитаемости.

4.б.8. Мета-теги.

Метатеги есть эквивалент соответствующих полей HTTP-заголовка и широко используются для переопределения стандартных записей.

META-таги имеют два возможных атрибута

- <META HTTP-EQUIV="имя" CONTENT="содержимое">

- - <META NAME="имя" CONTENT="содержимое">

META-таги должны находиться в заголовке HTML-документа между <HEAD> и </HEAD> (особенно это важно для документов, использующих фреймы).

Наиболее полезные с точки зрения применения метатеги следующие:

<META HTTP-EQUIV="Refresh" Content="3, URL=http://www.name.com/page.html">