на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


Реферат: Администрирование локальных сетей


Для указания http-серверу, какие документы считать содержащими SSI-директивы, в srm.conf, находящемся в /etc/httpd/conf надо раскомментировать следующие строки:

AddType text/html .shtml

AddHandler server-parsed .shtml

После этого все документы с расширением .shtml будут проверяться на SSI-директивы. Но удобнее будет определить чтобы все .html-файлы могли содержать SSI. Это делается добавление в srm.conf следующих строчек:

AddType text/html .html # не обязательно, т.к. он и так описан.

AddHandler server-parsed .html

Теперь надо разрешить выполнение SSI в каталоге, в котором лежат твои файла. Найди в access.conf описание каталога, в котором лежат твои html'ы и добавь в его Options директиву Includes:

#было так

Options Indexes

#стало так

Options Indexes Includes

Если твой каталог не прописан, его надо прописать. Почитай доку по Apache, чтоб узнать как это делается.  А если у тебя нет возможности изменять srm.conf или access.conf, т.е. ты не root, тогда за пивом, а потом к админу. 

SSI-директивы включаются в html-код в виде комментариев, но определенного формата:

<!--#SSI_директива="параметры" -->

Использовать можно следующие SSI-директивы:

echo var

Используется для вывода значения переменной окружения.

Твой IP - <!--#echo var="REMOTE_ADDR"--> <BR>

Твой браузер - <!--#echo var="HTTP_USER_AGENT"--> <BR>

Мой сервер - <!--#echo var="SERVER_NAME"--> <BR>

Ты пришел со страницы - <!--#echo var="HTTP_REFERER"--> <BR>

А вот вывод:

Твой IP - 193.125.78.114

Твой браузер - Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

Мой сервер - www.citforum.ru

Ты пришел со страницы - (none)

include file

include virtual

Включает в html-файл в месте, где идет вызов SSI, содержимое указанного файла. Отличие include file от include virtual в том, что в первом случает используется файл, находящийся в том же каталоге, что и html-файл, во втором случает указывается путь к файлу относительно текущего каталога. Если с помощью include file или include virtual включается cgi-скрипт, то в содержимое страницы попадет вывод cgi-скрипта, а не его содержание.

fsize file

Вставляет размер указанного файла.

Размер файла этой страницы:

<!--#fsize file="ssi.shtml"--> <BR>

Вывод:

Размер файла этой страницы: 12k

flastmod file

Вставляет время последней модификации указанного файла.

Время последней модификации файла этой страницы:

<!--#flastmod file="ssi.shtml"--> <BR>

Вывод:

Время последней модификации файла этой страницы: Wednesday, 21-Jun-2000 16:31:33 MSD

exec cmd

exec cgi

Запускает внешнюю программу (exec cmd) или cgi-скрипт (exec cgi) и вставляет в содержимое страницы вывод.

config errmsg

config sizefmt

config timefmt

Изменяет различный параметры конфигурации SSI. config errmsg изменяет стандартное сообщение об ошибке на введенное пользователем. Сообщение об ошибке возникает при неправильном выполнении SSI-директивы, например при отсутствии cgi-скрипта, который ты пытаешься запустить.

Это стандартная ошибка при запуске скрипта, которого нет: <BR>

<!--#exec cgi="/cgi-bin/nonexistence.pl"--> <BR>

А теперь заменим сообщение об ошибке и повторим: <BR>

<!--#config errmsg="Ошибка, пишите <a href=mailto:dh@null.ru>автору ошибки</a>"-->

<!--#exec cgi="/cgi-bin/nonexistence.pl"--> <BR>

Вывод:

Это стандартная ошибка, возникающая при запуске скрипта, которого нет:
[an error occurred while processing this directive]

А теперь заменим сообщение об ошибке и повторим:

Ошибка, пишите автору ошибки

Директива config sizefmt изменяет формат вывода размера файла.

Размер файла этой страницы в килобайтах:

<!--#config sizefmt="abbrev"-->

<!--#fsize file="ssi.shtml"--> <BR>

Размер файла этой страницы в байтах:

<!--#config sizefmt="bytes"-->

<!--#fsize file="ssi.shtml"--> <BR>

Вывод:

Размер файла этой страницы в килобайтах: 12k

Размер файла этой страницы в байтах: 12,463

Директива config timefmt меняет формат вывода даты и времени.

Время модификации файла этой страницы в секундах с 01.01.1970:

<!--#config timefmt="%s"-->

<!--#flastmod file="ssi.shtml"--> <BR>

Время модификации файла этой страницы в читабельном виде:

<!--#config timefmt="%d.%m.%Y %H:%M:%S"-->

<!--#flastmod file="ssi.shtml"--> <BR>

Вывод:

Время модификации файла этой страницы в секундах с 01.01.1970: 961590693

Время модификации файла этой страницы в читабельном виде: 21.06.2000 16:31:33

printenv

Выводит все переменные окружения. Параметров не имеет.

Список переменных окружения:<BR>

<!--#printenv -->

Вывод:

Список переменных окружения:

DOCUMENT_ROOT=/webdata/citforum/htdocs HTTP_ACCEPT=*/* HTTP_ACCEPT_ENCODING=gzip, deflate HTTP_ACCEPT_LANGUAGE=uk HTTP_CACHE_CONTROL=max-age=432000 HTTP_HOST=www.citforum.ru HTTP_USER_AGENT=Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) HTTP_VIA=1.0 proxy.univ.kiev.ua:3128 (Squid/2.3.STABLE2) HTTP_X_FORWARDED_FOR=10.25.0.7 PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/home/andy/bin:/usr/local/pgsql/bin REMOTE_ADDR=193.125.78.114 REMOTE_HOST=red-gw.univ.kiev.ua REMOTE_PORT=2205 SCRIPT_FILENAME=/webdata/citforum/htdocs/internet/html/ssi.shtml SERVER_ADDR=195.230.75.98 SERVER_ADMIN=info@citforum.ru SERVER_NAME=www.citforum.ru SERVER_PORT=80 SERVER_SIGNATURE= SERVER_SOFTWARE=Apache/1.3.12 (Unix) UNIQUE_ID=OlXJbMPmS2IAAI-qcYQ GATEWAY_INTERFACE=CGI/1.1 SERVER_PROTOCOL=HTTP/1.0 REQUEST_METHOD=GET QUERY_STRING= REQUEST_URI=/internet/html/ssi.shtml SCRIPT_NAME=/internet/html/ssi.shtml DATE_LOCAL=05.01.2001 16:17:32 DATE_GMT=05.01.2001 13:17:32 LAST_MODIFIED=21.06.2000 16:31:33 DOCUMENT_URI=/internet/html/ssi.shtml DOCUMENT_PATH_INFO= USER_NAME=andreya DOCUMENT_NAME=ssi.shtml

set var

Устанавливает значение переменной окружения. Формат такой set var="ИМЯ_ПЕРЕМЕННОЙ" value="ЗНАЧЕНИЕ".

Значение переменной SERVER_NAME:

<!--#echo var="SERVER_NAME" --><BR>

Сменим значение:

<!--#set var="SERVER_NAME" value="www.dhls.ru" --><BR>

Значение переменной SERVER_NAME:

<!--#echo var="SERVER_NAME" --><BR>

Вывод:

Значение переменной SERVER_NAME:www.citforum.ru

Сменим значение:

Значение переменной SERVER_NAME: www.dhls.ru

if/else

Наличие такой команды не может не радовать...  Применяется для управления выводом страницы по условию. Синтаксис такой:

<!--#if expr="УСЛОВИЕ1" -->

HTML-код, который будет выводиться, если УСЛОВИЕ1 истинно

<--#elif expr="УСЛОВИЕ2" -->

HTML-код, который будет выводиться, если УСЛОВИЕ1 ложно, а УСЛОВИЕ2 истинно

<--#else -->

HTML-код, который будет выводиться, если все условия ложны

<--#endif -->

Условие - это либо строка, которая является истинной, если непустая, или набор операторов сравнения строк. Операторы могут быть =,!=,<,<=,> и >. Если вторая строка заключена в "/"(слэши), то условие истинно, если в первой строке встречается хоть одно вхождение второй строки. Можно объединять несколько операторов сравнения с помощью операторов &&(И) и ||(ИЛИ). Для группирования условий используются "()"(скобки).

Броузер:<b>

<!--#if expr="$HTTP_USER_AGENT=/Nav/ || $HTTP_USER_AGENT=/Mozilla/" -->

Netscape Navigator

<!--#elif expr="$HTTP_USER_AGENT=/MSIE/" -->

Internet Explorer

<!--#else -->

Неизвестный (<!--#echo var="HTTP_USER_AGENT" -->)

<!--#endif -->

</b>

Вывод:

Броузер: Netscape Navigator

  • CGI

CGI - Common Gateway Interface является стандартом интерфейса (связи) внешней прикладной программы с информационным сервером типа HTTP, Web сервер.
Обычно гипертекстовые документы, извлекаемые из WWW серверов, содержат статические данные. С помощью CGI можно создавать CGI-программы, называемые шлюзами, которые во взаимодействии с такими прикладными системами, как система управления базой данных, электронная таблица, деловая графика и др., смогут выдать на экран пользователя динамическую информацию.
Программа-шлюз запускается WWW сервером в реальном масштабе времени. WWW сервер обеспечивает передачу запроса пользователя шлюзу, а она в свою очередь, используя средства прикладной системы, возвращает результат обработки запроса на экран пользователя. Программа-шлюз может быть закодирована на языках C/C++, Fortran, Perl, TCL, Unix Schell, Visual Basic, Apple Script. Как выполнимый модуль, она записывается в поддиректорий с именем cgi-bin WWW сервера.
Передача данных шлюзам

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

Запросы для различных методов

Информация шлюзам передается в следующей форме:

имя=значение&имя1=значение1&..,

где имя - имя переменной (из оператора FORM, например), и значение - ее реальное значение. В зависимости от метода, который используется для запроса, эта строка появляется или как часть URL (в случае метода GET), или как содержимое HTTP запроса (метод POST). В последнем случае, эта информация будет послана шлюзу в стандартный поток ввода.

На файловый дескриптор стандартного потока ввода посылается CONTENT_LENGTH байт. Так же сервер передает шлюзу CONTENT_TYPE (тип передаваемых данных). Сервер не обязан посылать символ конца файла после отсылки CONTENT_LENGTH байт данных и после того, как шлюз их прочитает.

Пример

Возьмем результат работы формы с методом POST (METHOD="POST") в качестве примера. Пусть получено 7 байт, закодированных примерно так:
a=b&b=c.

В этом случае, сервер установит значение CONTENT_LENGTH равным 7 и CONTENT_TYPE в application/x-www-form-urlencoded. Первым символом в стандартном потоке ввода для шлюза будет "a", за которым будет следовать остаток закодированной строки.

Аргументы командной строки

Шлюз в командной строке от сервера получает:

  • остаток URL после имени шлюза в качестве первого параметра (первый параметр будет пуст, если присутствовало только имя шлюза), и
  • список ключевых слов в качестве остатка командной строки для скрипта поиска, или
  • чередующиеся имена полей формы с добавленным знаком равенства (на четных позициях) и соответствующих значений переменных (на нечетных позициях).

Ключевые слова, имена полей формы и значения передаются раскодированными (из HTTP URL формата кодирования) и перекодированными в соответствии с правилами кодирования Bourne shell, так что шлюз в командной строке получит информацию в том виде, как она есть, без необходимости осуществлять дополнительные преобразования.

Запросы оператора FORM

Запросы оператора FORM обрабатываются таким образом, что каждый параметр, отвечающий за имя поля, оканчивается знаком равенства, а остаток представляет собой значение этого параметра. Если присутствует что либо после имени скрипта (шлюза), то эта информация передается в качестве первого параметра. Иначе первый параметр будет пуст.

Примеры:

 /htbin/foo/x/y/z?name1=value1&name2=value2

вызывается как:

 /.../foo /x/y/z name1= value1 name2= value2

а

 /htbin/foo?name1=value1&name2=value2

вызывается как:

 /.../foo '' name1= value1 name2= value2

CGI переменные окружения

Следующие переменные окружения не являются специфичными по типу запросов и устанавливаются для всех запросов.

SERVER_SOFTWARE

Название и версия информационного сервера, который отвечает на запрос (и запускает шлюз). Формат: имя/версия

SERVER_NAME

Имя хоста, на котором запущен сервер, DNS имя, или IP адрес в том виде, в котором он представлен в URL.

GATEWAY_INTERFACE

Версия CGI спецификации на тот момент, когда компилировался сервер. Формат: CGI/версия

Следующие переменные окружения являются специфичными для разных запросов, и заполняются перед вызовом шлюза:

SERVER_PROTOCOL

Имя и версия информационного протокола, в котором пришел запрос. Формат: протокол/версия

SERVER_PORT

Номер порта, на который был послан запрос

REQUEST_METHOD

Метод, который был использован для запроса. Для HTTP, это "GET", "HEAD", "POST", и т.д.

PATH_INFO

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

PATH_TRANSLATED

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

SCRIPT_NAME

Виртуальный путь к шлюзу, который должен выполняться, используемый для получения URL.

QUERY_STRING

Информация, следующая за ? в URL, к которому относится данный шлюз. Это информация представляет собой строку запроса. Она не должна быть декодирована ни коим образом. Вне зависимости от командной строки эта переменная всегда должна быть установлена при наличии такой информации, .

REMOTE_HOST

Имя хоста, производящего запрос. Если сервер не имеет такой информации, он должен установить REMOTE_ADDR, а это поле оставить не установленным.

REMOTE_ADDR

IP адрес хоста, производящего запрос.

AUTH_TYPE

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

REMOTE_USER

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

REMOTE_IDENT

Если HTTP сервер поддерживает идентификацию пользователя согласно RFC 931, то эта переменная будет содержать имя пользователя, полученное от сервера.

CONTENT_TYPE

Для запросов, которые содержат дополнительную добавочную информацию, такие как HTTP POST и PUT, здесь содержится тип данных этой информации.

CONTENT_LENGTH

Длина данных, которую передает клиент.

В дополнение к этим, если запрос содержит дополнительные поля заголовка запроса, они помещаются в переменные окружения с префиксом HTTP_, за которым следует имя заголовка. Любые символы '-' в заголовке меняются на символы подчеркивания '_'. Сервер может исключить любые заголовки, которые он уже обработал, такие как Authorization, Content-type, и Content- length. Если необходимо, сервер может исключить любые (или вообще все) дополнительные поля заголовка в случае, когда их включение может привести к превышению предела размера переменных окружения. Примером такой переменной может служить переменная HTTP_ACCEPT, которая была определена в спецификации CGI/1.0. Другим примером может служить заголовок User-Agent.

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 обычно выносятся заголовки сайтов, элементы оформления нижней части страницы, а так же меню и вообще любые другие общие элементы сайта. Например, если мы выносим меню во включаемые файлы, то это позволит нам быстро добавлять в структуру сайта новые разделы, причем изменения придется делать и синхронизировать не во множестве страниц, а в одном файле описания меню, далее он автоматически включится во все страницы.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.