Этапы создания веб-приложения. Основы РНР и MySQL

-Length: 22

name=Vasya&okbutton=OK

При использовании метода POST данные формы отправляются уже после "двух Enter -ов" - в теле запроса. Все, что выше - на самом деле заголовок запроса (и когда мы использовали метод GET , данные формы отправлялись в заголовке).

Для того, чтобы сервер знал, на каком байте закончить чтение тела запроса, в заголовке присутствует строка Content-Length ; о том же, что данные формы будут переданы виде параметр1=значение1&параметр2=значение2..., причем значения передаются в виде urlencode - то есть, точно так же, как и с помощью метода GET , но в теле запроса, - серверу сообщает заголовок "Content-Type: application/x-www-form-urlencoded" .

О том, что такое urlencode - чуть ниже.

Преимущество метода POST: отсутствие ограничения на длину строки с данными формы.

При использовании метода POST невозможно отправить форму, просто "зайдя по ссылке", как было с GET .

Для краткости изложения, введем термины "GET-форма" и "POST-форма", где префикс соответствует значению атрибута method тэга

.

При использовании POST -формы, в ее атрибуте action можно указать после знака вопроса и параметры GET -формы. Таким образом, метод POST включает в себя и метод GET .

Технология CGI

Мы разобрались, как создать HTML -форму, и как браузер отправляет введенные в нее данные на сервер. Но пока не понятно, что будет сервер делать с этими данными.

Сам по себе web-сервер умеет только отдавать запрошенную страницу, и ничего более того, и ему все переданные данные формы, в общем-то, совершенно безразличны. Для того, чтобы можно было обработать эти данные с помощью какой-либо программы и динамически сформировать ответ браузеру, и была изобретена технология CGI (Common Gateway Interface).

Взглянем на этот URL: http://www.example.com/cgi-bin/form_handler.cgi . Первое предположение, которое можно сделать на его счет, обычно такое: сервер отдает содержимое файла form_handler.cgi из каталога cgi-bin . Однако, в случае с технологией CGI дело обстоит по-другому. Сервер запускает программу form_handler.cgi и передает ей данные формы. Программа же формирует текст, который передается браузеру в качестве ответа на запрос.

Программу form_handler.cgi можно написать на любом языке программирования, главное - соблюдать в программе стандарт CGI . Можно использовать, например, популярный скриптовый язык Perl. А можно написать все на Си, или на shell-скриптах... Для примера, напишем эту программу на Си. Но сначала разберемся, как происходит обмен данными между web-сервером и CGI -программой:

1. Перед запуском CGI-программы, сервер устанавливает переменные окружения (Вам они наверняка знакомы по команде PATH). В каждый мало-мальски серьезном языке программирования есть средства для чтения переменных окружения. Стандарт CGI определяет весьма значительный набор переменных, которые должны быть определены перед запуском CGI-программы. Рассмотрим сейчас только три из них:

REQUEST_METHOD - метод передачи данных - GET или POST (есть и другие, но пока мы их не рассматриваем)

QUERY_STRING - содержит часть URL после вопросительного знака, или, другими словами, данные GET -формы.

CONTENT_LENGTH - длина тела запроса (данные POST -формы).

2. Сервер запускает CGI -программу. Тело запроса передается программе в виде стандартного ввода (stdin ) - будто бы эти данные были введены с клавиатуры.

3. Программа выдает ответ браузера на стандартный вывод (stdout ) - "на экран" . Этот вывод перехватывается веб-сервером и передается браузеру.

Это CGI -программа на Си , выводящая содержимое полученных от web-сервера параметров форм:

1. #include

2. #include

4. int main(void)

6. // Читаем переменные среды, установленные веб-сервером

7. char *query_string = getenv("QUERY_STRING");

8. char *request_method = getenv("REQUEST_METHOD");

10. char *post_data; // Буфер для данных POST-запроса

11. int post_length = 0; // Длина тела запроса

13. if (strcmp(request_method, "POST") == 0) {// Если получен POST-запрос,

14. post_length = atoi(getenv("CONTENT_LENGTH")); // сначала читаем из

15. // переменной среды его длину,

16. if (post_length) {// если она не нулевая,

17. post_data = (char*)malloc(post_length+1); // выделяем память для буфера,

18. fread(post_data, post_length, 1, stdin); // читаем со стандартного ввода тело запроса,

19. post_data = 0; // завершаем строку нулевым байтом.

23. // Выводим заголовок ответа...

Часть 6. World Wide Web

WWW (World Wide Web — Всемирная паутина) — самый популярный сервис Интернета. Именно он, благодаря своей относительной простоте и наглядности для пользователей, сделал столь массовыми обращения к ресурсам Сети. Итак, что же такое WWW и как работает данная служба?

Самом общем плане WWW — это система Web-серверов, поддерживающая документы, форматированные специальным образом. Служба WWW реализована в виде клиент-серверной архитектуры. Пользователь с помощью клиентской программы (браузера) осуществляет запрос той или иной информации на сервере, а Web-сервер обслуживает запрос браузера. Браузер — это программа, обеспечивающая обращение к искомому ресурсу на сервере по его URL (универсальному адресу ресурса), интерпретирующая полученный результат и демонстрирующая его на клиентском компьютере (рис. 1).

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

Протокол, по которому происходит доставка Web-сервером документа Web-браузеру, носит название HTTP (Hypertext Transfer Protocol — Протокол передачи гипертекста). Для того чтобы подробнее объяснить механизм просмотра документов на Web-сервере, необходимо ввести несколько понятий, и прежде всего понятие гипертекста.

Гипертекст

ипертекст (Hypertext) — это текст, содержащий гиперссылки, связывающие слова или картинки документа с другим ресурсом (с каким-нибудь еще документом или с иным разделом этого же документа), при этом подобные «связанные» слова или картинки документа, как правило, выделяются, обычно с помощью подчеркивания. Пользователь может активировать эту связь щелчком мыши. В большинстве случаев подобная активизация ссылки приводит к тому, что вызываемый таким образом ресурс замещает текущий документ. Связать гиперссылкой можно не только слово, но и целый раздел документа и даже область конкретной формы на какой-либо картинке документа.

Некоторые авторы определяют гипертекстовый документ как документ, содержащий меню для перехода к другим ресурсам. Идею гипертекстовой организации документа можно проиллюстрировать на примере справочников. Если художественную книгу мы обычно читаем с начала и до конца (линейно), то справочную литературу мы чаще всего читаем нелинейно: например, встретив незнакомое слово, ищем его в приложении или в толковом словаре, затем вновь возвращаемся к начатому тексту и так далее. Иными словами, мы обращаемся к разным разделам справочника по мере необходимости.

В принципе, идея нелинейного прочтения текста возникла задолго до появления компьютеров. Известно, например, что в толковании на книгу псалмов Гильберта Порретанского (около 1150 года н.э.) применялись специальные пометки на полях, которые отсылали читателя на страницы в других местах книги.

Практическое применение идеи и сам термин «гипертекст» появились с возникновением электронных документов, хотя и существенно раньше, чем сама служба WWW. Впервые термин «гипертекст» был употреблен Тедом Нельсоном (Ted Nelson) в 1965 году. Существенный вклад в развитие гипертекстовых систем внесла фирма Apple.

Поскольку современные электронные документы содержат не только текст, но и любую мультимедийную информацию (текст, графика, звук), в качестве ссылок стали использовать не только текстовые, но и графические объекты. Со временем понятие гипертекста было расширено до понятия гипермедиа. Гипермедиа — это метод организации мультимедийной информации на основе ссылок на разные типы данных. Гипермедиадокументы используются не только в WWW. Типичным примером гипермедиа является мультимедийная информация, содержащаяся в электронной энциклопедии. Читая, к примеру, текст о певчих птицах в CD-ROM-энциклопедии, вы можете перейти на соответствующую ссылку и послушать пение выбранной птицы, а затем посмотреть видеоролик с записью ее полета.

Особенно продуктивной идея гипертекста оказалась применительно к объединению цифровой информации, распределенной на серверах во всем мире. Вот здесь мы непосредственно подходим к понятию Всемирной паутины.

Всемирная паутина

WW — это глобальная гипертекстовая система, организованная на базе Интернета. WWW представляет собой механизм, при помощи которого связывается информация, доступная посредством многочисленных Web-серверов во всем мире. Web-сервер — это программа, которая «умеет» получать http-запросы и выполнять в соответствии с этими запросами определенные действия, например запускать приложения и генерировать документы.

Документ, доступный через Web, называют Web-страницей, а группы страниц, объединенные общей темой и навигационно, — Web-узлами, или Web-сайтами. Один аппаратный Web-сервер может содержать несколько Web-сайтов, но возможна и обратная ситуация, когда огромный Web-сайт может поддерживаться группой Web-серверов (компьютеров).

Для того чтобы лучше понять идею организации Всемирной паутины, обратимся к рис. 2 , на котором показан пример использования WWW для поиска информации о новостях. Предположим, что пользователю, проживающему в США, необходимо узнать последние московские новости, и он не знает адреса сервера, на котором можно найти эту информацию. Вполне вероятно, что для того, чтобы получить необходимые данные, он набирает известный ему адрес Web-сайта, который физически расположен на компьютере в США и посвящен теме «Новости в мире». Очевидно, что на одном сервере не могут храниться данные о местных новостях всех уголков земного шара. При этом возможно, что у наиболее важных новостей мирового значения на сервере есть ссылки на новостные сайты, актуальные для разных регионов. Вполне вероятно, что, выбрав ссылку «Европа», пользователь соединится уже с другим компьютером, расположенным где-то в Европе (рис. 2). Предположим, что на странице европейского сайта есть ссылка на Россию. По ссылке «Россия» можно соединиться с сервером в России. Вероятно, по ссылке «Москва» на этом сайте пользователь получит необходимую информацию, а возможно, соединится с четвертым сервером, который представит необходимую ему информацию. Таким образом, уточняя и детализируя информацию, можно получить новости конкретного района. Важно отметить, что в представленном на рисунке примере пользователь обращается с запросами к разным серверам и при переходе с одного сервера на другой ему не нужно каждый раз задавать адреса серверов и тем более знать о том, где они физически находятся. В этом случае говорят, что процедура происходит прозрачно для пользователя, то есть пользователь воспринимает весь процесс так, как если бы все полученные им страницы находились на его собственном компьютере. Таким образом, процесс просмотра информации можно сравнить с перелистыванием страниц огромной книги на одном рабочем столе по принципу «нажми и получи». Процесс перемещения по документам с помощью гипертекстовых ссылок получил в обиходе название навигации, или серфинга .

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

Браузеры

ак мы уже отмечали, в браузерах реализованы две основные функции: запрос информации у Web-сервера и отображение ее на клиентском компьютере. Кроме того, браузеры обладают дополнительными сервисными функциями, такими как упрощение поиска, хранение закладок, указывающих на избранные страницы, и др.

Во многом развитие браузеров определялось конкуренцией двух компаний-разработчиков — Netscape и Microsoft.

В середине 1990-х годов компания Netscape захватила большую долю рынка благодаря своему продукту Netscape Navigator, а Microsoft начала активно продвигать разработанный ею Internet Explorer. История противоборства этих двух программ получила название войны браузеров, которая фактически свелась к появлению у них новых возможностей. Благодаря интеграции Internet Explorer с операционной системой Windows и предложению браузера в качестве бесплатной программы, Microsoft удалось одержать победу в этой войне. В результате рынок браузеров стал достаточно специфичным: сегодня наиболее популярные программы Internet Explorer и Netscape Navigator распространяются бесплатно, в то время как некоторые альтернативные и значительно менее распространенные программы являются платными.

Постепенно браузеры из устройств для просмотра HTTP-документов стали универсальными Интернет-клиентами. Более подробно о работе браузеров мы поговорим после того, как расскажем о строении Web-страницы.

Web-страница

опулярность WWW обусловлена тем, что можно не только просматривать чужие страницы и иметь доступ к огромному количеству информации, представленной на сотнях миллионов компьютеров, но и создать собственные ресурсы и таким образом донести любую информацию до всех будущих посетителей сайта. Иными словами, WWW — это глобальный механизм обмена информацией: одни люди помещают информацию на Web-серверы, а другие ее просматривают. Создав Web-сайт, владелец может поместить туда различного рода информацию: текст, графику, звук, анимацию, которая станет доступной для всех посетителей этого ресурса. С появлением в Сети вашей страницы информация о вас или о вашей фирме станет доступна сотням миллионов пользователей круглосуточно семь дней в неделю. Количество информации, которое может быть предоставлено посетителю, практически не ограничено по времени, в отличие от радио или телевидения. Для того чтобы ваш сайт был наиболее посещаемым, необходимо обеспечить быстрый доступ к нему. Если вы попытаетесь создать Web-сайт на домашнем компьютере, подключив его к Интернету через обычный модем и телефонную линию, вы не сможете обеспечить к нему быстрый доступ и, скорее всего, отпугнете потенциальных посетителей. Как показывает опыт, больше всего посетителей раздражает долгая загрузка страницы, поэтому сервер, на котором вы хотите разместить свой сайт, должен иметь высокоскоростное подключение к Интернету.

Для того чтобы обеспечить надлежащую скорость доступа к вашему ресурсу, желательно воспользоваться услугами так называемого провайдера хостинга. Хостинг (от англ. host — хозяин) — это предоставление качественной услуги по размещению сайта на физическом Web-сервере провайдера или собственном сервере, размещенном на площадке провайдера. Обычно хостинг-провайдер взимает плату, которая тем выше, чем больше арендуемое дисковое пространство и интенсивность трафика. Однако существуют и бесплатные услуги хостинга. Если вы захотите получить доменное имя третьего уровня (например, www.ivanov.narod.ru: (доменное имя первого уровня — ru, доменное имя второго уровня — narod, доменное имя третьего уровня — ivanov), то, скорее всего, это будет бесплатно. Доменные имена третьего уровня предоставляются многими компаниями, предлагающими бесплатный «народный» хостинг. Например, имя www.your-name.narod.ru (где your-name — это имя, которое вы можете дать своему ресурсу) предоставляет компания Яндекс. Однако солиднее иметь домен второго уровня — лучше всего подойдет имя вида «ваша _фамилия.ru или ваша_компания.ru». В этом случае вам придется как минимум оплатить регистрацию вашего доменного имени. Зато при наличии у вас подобного имени ваши коллеги смогут найти вас в Интернете, даже не зная точного имени вашего сайта. Например, сайт можно легко найти просто по названию журнала. При этом следует отметить, что сегодня найти незанятый домен довольно сложно.

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

Говорить о создании собственных страниц не имеет смысла до тех пор, пока мы не рассмотрим их устройство. Поэтому далее мы расскажем, из чего состоят Web-страницы, и для начала поговорим об основах языка гипертекстовой разметки HTML (Hypertext Markup Language), который предназначен для создания гипертекстовых документов.

HTML

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

Вместо того чтобы указывать, как должен выводиться документ на том или ином оборудовании, разработчики пошли иным путем: предложили использовать специальный язык функциональной разметки — HTML. HTML-документ состоит из собственно текста и разметки, к которой относятся все записи, не являющиеся информационным наполнением документа. Разметка HTML позволяет определить ссылки на внешние документы или на внутренние разделы того же самого документа, а также несет информацию о форматировании документа.

Для того чтобы пояснить идею организации HTML-документа, уместно привести аналогию с работой технического редактора, который готовит текст для верстки. Редактор делает разметку текста, отмечая, каким должен быть формат, как набрать заголовки, где что расположить. Например, это могут быть пометки типа: «Данный абзац напечатать жирным шрифтом, такое-то предложение выделить красным цветом, а после такого-то абзаца вставить текст со страницы такой-то». Для того чтобы комментарии редактора читались корректно, существуют специальные правила разметки. Верстальщик читает комментарии технического редактора и заверстывает текст в соответствии с ними.

Аналогичные комментарии записываются в HTML-документе, затем они прочитываются браузером, чтобы он «знал», как нужно отображать данные на экране компьютера. Язык HTML был разработан в конце 1980-х годов в физической лаборатории CERN (Швейцария) и поначалу использовался в локальной сети лаборатории. Однако вскоре он завоевал популярность и стал широко применяться в Интернете.

Следует отметить, что понятие функциональной разметки шире, чем понятие форматирования документа. Например, гипертекстовая разметка дает возможность определить, что тот или иной текст в документе является названием страницы (title). Очевидно, что это уже не форматирование, а именно определение функциональности конкретной части документа.

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

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

Например, если на вашем компьютере нет шрифта, которым предписывается отобразить ту или иную надпись, будет использован другой, ближайший к нему из доступного набора.

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

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

Команды HTML (или управляющие маркеры гипертекстового документа) называют тэгами (от англ. tag — ярлык, маркер), они вставляются непосредственно в текст документа и заключаются в угловые скобки <...>.

Унифицированный набор заранее определенных тэгов позволяет пользоваться различными браузерами. Несмотря на тот факт, что HTML используется для представления Web-страниц, он также может применяться и для других целей, например для представления документов, размещенных на CD-ROM.

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

Наличие средств визуальной разработки Web-страниц позволяет создавать HTML-документы, даже не запоминая назначения тех или иных тэгов. Визуальной разработкой называется процесс, при котором пользователь оперирует объектами, которые при разработке выглядят почти так же, как и при отображении браузером, а HTML-код создается при этом автоматически.

Существует более сотни тэгов для разметки информации на Web-странице. Большинство тэгов используется в парах. Открывающий и закрывающий тэги начинаются и завершаются знаками < и >. Закрывающий тэг отличается от открывающего наличием символа / (слэш) перед ключевым словом. Например, пара тэгов (см. таблицу) используется для того, чтобы дать команду браузеру, что текст, помещенный между тэгами, должен быть отображен жирным шрифтом, а тэги показывают, что при отображении текста должен быть применен курсив. Открывающий и закрывающий тэги воздействуют на часть документа, заключенную между ними. Расположение парных тэгов выполняется так, чтобы соблюдались правила вложения.

Кроме парных, бывают непарные тэги, которые определяют разовый эффект в конкретном месте или оказывают воздействие на весь документ. Например, тэг
часто используется для обозначения необходимости разрыва строки.

Эффект применения тэга может видоизменяться путем добавления атрибутов. Атрибут (от лат. attributum — присоединенное) показывает признак объекта, определяющий его состояние. Применение некоторых атрибутов подразумевает указание значения атрибута, которое отделяется от ключевого слова атрибута знаком равенства и заключается в кавычки.

Тэг присваивания цвета тексту (в таблице он показан в третьей строке) является примером тэга с атрибутом.

Одним из важнейших является тэг, определяющий гиперссылки. При определении гиперссылки необходимо связать элемент Web-страницы, по которому будет происходить переход, с адресом данного перехода. Тэг обозначается по первой букве слова «anchored», что в переводе с английского означает «привязанный».

Адрес перехода определяется значением атрибута Href и представляет собой URL того ресурса, на который указывает ссылка. Таким образом, формат определения гиперссылки можно представить в виде:

HTML-документ начинается с тэгов (название страницы, указание кодовой страницы, указание типа документа) и заканчивается тэгами . Почти все наполнение, которое вы хотите включить в страницу, помещается между тэгами и .

Стандарт HTML — это набор формальных рекомендаций, определенных консорциумом W3C (World Wide Web Consortium) и обрабатываемых браузерами ведущих производителей, такими как Microsoft Internet Explorer и Netscape Navigator. Последний стандарт языка — это HTML 4.0. Однако Internet Explorer и Netscape Navigator интерпретируют отдельные конструкции языка по-разному, а также используют некоторые нестандартные расширения, специфические только для данного браузера. Поэтому, в принципе, нет гарантии, что отображение страниц, использующих расширенные возможности HTML, будет одинаково осуществлено в разных браузерах. В связи с этим разработчики Web-страниц вынуждены проверять функциональность создаваемых сайтов как минимум в двух вышеназванных браузерах.

Механизм работы Web-сервера

осле того как мы ввели понятие языка HTML, можно подробнее описать механизм работы Web-сервера и браузера. Рассмотрим пример.

Предположим, ваш товарищ создал свой сайт по адресу www.petrov.ru и расположил на нем свое резюме по адресу http://www.petrov.ru/resume.htm. Что происходит, когда вы просматриваете данное резюме со своего компьютера?

Как только вы набираете в своем браузере вышеуказанный URL, браузер получает информацию об используемом протоколе (http), имени сервера (www.petrov.ru) и запрашиваемом файле (resume.htm). Браузер обращается к DNS-серверу, чтобы перевести имя сервера www.petrov.ru в IP-адрес, который служит для нахождения нужного сервера, устанавливает связь с Web-сервером и, используя протокол http, запрашивает искомый ресурс. Сервер посылает браузеру HTML-страницу, чтобы он мог отобразить данный документ. Браузер считывает HTML-тэги, воссоздает страницу на экране вашего компьютера, и вы видите результат своего запроса.

Обычно даже простая Web-страница содержит не только текст, но и графику. Иными словами, страница состоит из нескольких файлов, то есть в общем случае передаваемый на ваш компьютер файл может быть не только текстовым, но и графическим или еще каким-либо. Как же браузер распознает эти файлы? Вначале сервер посылает текстовое сообщение, которое информирует клиента о том, какой файл он будет отправлять: что это будет — текст в формате HTML, или графика в формате jpg, или что-нибудь другое, и только после этого передает содержание данного файла. Несмотря на то что обычно Web-страница состоит из многих файлов, за время одного запроса Web-сервер посылает только один файл. То есть, получив HTML-текст и найдя в нем, например, ссылку на графический элемент, браузер посылает новый запрос на сервер, и при этом не обязательно на тот же самый, с которого пришел HTML-текст. Вероятно, большинству пользователей Интернета знакома ситуация, когда загрузка страницы происходит с задержкой и вначале отображается текст, а потом начинают появляться картинки. Данная ситуация как раз отражает последовательность загрузки элементов Web-страницы. Для того чтобы скачать каждый новый файл, браузер должен установить новую сессию. При этом, поскольку современные серверы и браузеры работают в многопоточном режиме, одновременно могут выполняться несколько сессий, но для скачивания каждого нового файла инициируется своя сессия.

Если запрашиваемого ресурса по данному адресу нет, то Web-сервер выдаст сообщение, которое вы, вероятно, не раз видели на своем экране: 404/File not found (файл не найден).

Статические и динамические страницы

татические страницы представляют собой точную копию файлов, лежащих в каталогах Web-cервера, и не изменяются до тех пор, пока разработчик сам в них что-то не поменяет. Однако страницы могут формироваться динамически, то есть во время обработки запроса по какой-то программе, а не из готового файла на диске. Существует несколько способов формирования такой страницы:

  • формирование по запросу непосредственно на Web-сервере. Для реализации возможности динамического формирования Web-страниц необходимо дать серверу указания, какие файлы являются «обычными», а какие содержат инструкции по их программной обработке. Так, все файлы в соответствующем каталоге Web-сайта, в списке прав доступа к которым есть «выполнение», считаются динамическими, а сервер сам подбирает средство для формирования конкретной страницы при обращении к такому файлу на основе его атрибута и/или расширения его имени. При этом страницу может сформировать либо сам сервер (при помощи специальных команд), либо внешняя программа, запускаемая непосредственно или через CGI-интерфейс (common gateway interface — общий шлюзовой интерфейс). Программа для формирования динамической страницы может быть написана на компилируемом или интерпретируемом языке. Текст программы, содержащий команды для динамического формирования страниц, называется скриптом. Список соответствия атрибутов скриптов внешним программам для их обработки задается в разделе Web-сервер/Обработчики скриптов. Например, по умолчанию скрипты с расширениями *.pl и *.cgi обрабатываются интерпретатором языка Perl;
  • формирование на компьютере пользователя. В этом случае тексты программ для формирования динамических Web-страниц передаются сначала на локальный компьютер пользователя, где уже браузер должен вызвать для них соответствующее средство для обработки и получения Web-страницы. Программа для формирования динамической страницы также может быть написана как на компилируемом, так и на интерпретируемом языке.

Технология CGI

Вы наверняка сталкивались со страницами, которых ранее не существовало и которые были созданы по вашему запросу динамически — сформированы, как говорится, «на лету».

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

Одна из технологий, позволяющая добавить динамическое содержание в Web-страницы, называется CGI. Она позволяет ассоциировать с тем или иным URL не просто статический документ, а программу, в результате работы которой могут быть сформированы данные в реальном времени.

Рассмотрим пример с предоставлением сведений о погоде. Метеорологическая сводка о погоде меняется каждый день, и ежедневно может создаваться новая статическая страница с прогнозом. Однако, если вы хотите предоставлять мгновенные данные, вы должны каждый раз генерировать новую страницу. Это может быть реализовано на основе CGI-технологии. В момент обращения на сервер на нем запускается CGI-программа, которая обращается к цифровому измерительному устройству и выдает сведения о температуре, давлении и т.д. Когда вы в очередной раз обратитесь на этот адрес, вы получите новые сведения.

Другой пример: когда вы заполняете некоторый запрос, например запрос в поисковой системе, то в ответ получаете результаты работы СGI-программы в виде набора искомых адресов.

CGI-программу можно представить как часть Web-сервера, которая запускается Web-сервером в реальном времени. Сервер передает запросы пользователя CGI-программе, которая их обрабатывает и возвращает результаты своей работы на экран пользователя (рис. 3). На большинстве Web-серверов CGI-механизм организован следующим образом: создается специальная поддиректория, в которой хранятся подобные программы, и администратор Web-сервера настраивает доступ к ней таким образом, чтобы файлы из нее не считывались, а запускались на выполнение. Результат работы программы отсылается браузеру в ответ на запрос. С точки зрения клиента нет никакой разницы, что находится по адресу данного URL — статический документ или CGI-программа. Браузер воспринимает информацию одинаково независимо от того, сформирована ли она «на лету» или речь идет о статической странице. Результат работы CGI-программы имеет тот же формат, что и статический документ.

Аббревиатура CGI наверняка попадалась вам в строке вашего браузера во время путешествия по Всемирной паутине, и вы, скорее всего, видели ссылку на /cgi-bin/ — директорию, в которой обычно и лежат cgi-программы. Множество интерактивных сервисов, таких как гостевая книга, форум и т.д., построены именно на cgi-программах.

Под термином «CGI» понимают не только программу, но и протокол. В этом смысле CGI — это стандартный для Web-сервера способ передать пользовательский запрос прикладной программе и получить данные назад для передачи их пользователю. Протокол CGI для пересылки данных между сервером и приложением является частью протокола HTTP.

Следует отметить, что если вы собираетесь разместить свою страницу на серверах бесплатного хостинга, то вполне возможно, что cgi-скрипты на этих серверах не поддерживаются.

Альтернативой CGI является технология компании Microsoft Active Server Page (ASP), построенная по тому же принципу: скрипт, включенный в Web-страницу, выполняется на сервере до того, как страница отсылается пользователю.

Существуют и другие технологии, работающие по тому же принципу.

Merсedes-Benz — это немецкий концерн-производитель автомобилей премиум сегмента. Если кто-то упоминает в разговоре автомобили Merсedes, то все понимают, что имеется в виду престиж, комфорт и неоспоримое качество, которое предоставляет компания во всех своих моделях. Владельцы автомобилей этой марки могут быть уверены, что их авто произведено согласно всем действующим нормам, что оно укомплектовано устройствами необходимыми для комфортного и безопасного вождения.

Даже в нынешнее время далеко не все производители могут похвастаться наличием тех или иных опций, которые были предложены компанией Merсedes, к примеру, еще 5-7 лет назад. Инженеры концерна ведут постоянную разработку новинок в автомобилестроении.

Последнее время у многих любителей автомобилей немецкого концерна возник вопрос — что такое Mercedes CGI ? Давайте разберемся детально — что такое CGI Mercedes. CGI это аббревиатура, которой Merсedes обозначает свои автомобили, оснащенные бензиновым двигателем с прямым впрыском топлива и 4 цилиндрами. Использование данной технологии позволяет получить большую динамику автомобиля, при более низком расходе топлива.

Для компенсации силы инерции, возникающей при перемещении поршней, и устранения колебаний второго порядка в двигателе, установлен балансир Ланчестера. Он помещен в собственный корпус и прикручен к блоку цилиндров с помощью болтов. Через специальное отверстие на элементы балансира подается масло. Благодаря изобретению Ланчестера в 4-х цилиндровом С 180 CGI мы слышим такой мягкий шум.

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

Можно уверенно сказать о Mercedes CGI что это – автомобиль, у которого увеличение передаточного числа на 13 % становится возможным благодаря крутящему моменту уже на холостом ходу. На автомобилях установлен компрессор фирмы EATON, приводимый в движение с помощью коленвала и оборудованный на входе и выходе воздуха глушителями шума.

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

Следует помнить о CGI Mercedes что это двигатель (как и все двигатели с системой прямого впрыска) который очень требовательный к качеству топлива. Во избежание проблем с мотором вашего авто, покупайте топливо только на проверенных АЗС.

| | | | | | Основы web-технологий

Другие web-технологии

JAVA

Язык программирования Java, разработанный около восьми лет назад компанией Sun Microsystems и напоминающий по структуре и синтаксису хорошо знакомый многим программистам С, существует сегодня в Интернете в двух вариантах: JavaScript и собственно Java. Первый вариант языка является всего лишь надстройкой стандарта HTML и значительно расширяет возможности документа, созданного в этом формате. Модуль, написанный на JavaScript, интегрируется в файл HTML как подпрограмма и вызывается на исполнение из соответствующей строки HTML-кода стандартной командой. Встроенный в броузер интерпретатор языка воспринимает и скрипт, и сам код гипертекста как единый документ, обрабатывая те и другие данные одновременно. Модуль Java в отличие от JavaScript не интегрируется в использующую его страницу, а существует как самостоятельное приложение с расширением.classили, выражаясь научным языком, апплет. При использовании этого варианта языка апплет также вызывается из html-файла соответствующей командой, но загружается, инициализируется и запускается на исполнение в виде отдельной программы, в фоновом режиме.

С помощью технологии Java можно придать своей странице элементы интерактивности, формировать, компоновать и полностью контролировать формат всплывающих окон и встроенных фреймов, организовывать такие активные элементы, как часы, бегущие строки и иную анимацию, создать чат. Большинство web-камер, передающих на сайт живое изображение, также работают на базе соответствующих приложений Java.

Среди достоинств этой технологии следует отметить отсутствие необходимости устанавливать и настраивать на сервере какие-либо дополнительные модули, обеспечивающие работу Java-программ. Главный недостаток Java заключается в том, что пользователи броузеров старых версий, не поддерживающих компиляцию данного языка, воспринимать объекты, созданные при помощи Java и JavaScript, не смогут.

CGI

Технология CGI (Common Gateway Interface) подразумевает использование в составе ресурса Интернет интерактивных элементов на базе приложений, обеспечивающих передачу потока данных от объекта к объекту. Именно так организовано во Всемирной сети большинство чатов, конференций, досок объявлений, гостевых книг, поисковых машин и систем подсчета рейтинга. В общем случае принцип работы CGI выглядит следующим образом: пользователь заполняет на web-страничке ту или иную форму и нажимает на кнопку, после чего встроенная в код HTML строка вызова CGI-скрипта запускает соответствующую программу CGI и передает ей управление процессом обработки информации. Введенные пользователем данные отсылаются этой программе, а она, в свою очередь, встраивает их в другую страницу, отправляет по почте или

трансформирует каким-либо иным способом, Скрипты CGI размещаются на сервере в специально отведенной для этих целей директории, которой, как правило, назначается имя CGI-BIN. Следует помнить, что подключение, отладка и запуск таких программ требуют соответствующих прав доступа к http-серверу,а также определенных знаний и навыков.

Технология CGI обычно реализуется двумя методами: либо с использованием программ, написанных на языке PERL (Practical Extraction and ReportLanguage), - такие файлы имеют расширение.pi, либо с помощью приложений, созданных обычно с применением языка С и откомпилированных непосредственно на сервере, поскольку большинство UNIX-совместимых платформ включают в себя встроенный транслятор этого языка. Подобные программы имеют расширение.cgi. Необходимо отметить, что PERL, как и HTML, является интерпретируемым языком. Иными словами, для того чтобы запустить подобный скрипт на исполнение, не требуется дополнительной компиляции. Помимо упомянутых возможностей с помощью данной технологии можно организовать систему показа последовательности рекламных баннеров или автозагрузки файлов на сервер, создать форму отправки электронного письма непосредственно со страницы сайта или службу виртуальных открыток. Среди достоинств CGI следует отметить их независимость от клиентского программного обеспечения - эту технологию сможет применять каждый пользователь, просматривающий содержимое сервера при помощи броузера практически любой версии. Главный недостаток заключается в том, что для установки и на- стройки приложений CGI на сервере нужно обладать как минимум правами администратора, поскольку эти программы при запуске способны нарушить нормальное функционирование серверного компьютера и дестабилизировать работу сети.

SSI

SSI (Server Side Includes) - технология, тесно переплетенная с упомянутой выше CGI. На основе макроязыка, очень напоминающего С, SSI позволяет реализовать такие возможности, как вывод в документе того или иного текста в зависимости от определенных условий или согласно заданному алгоритму, формировать файл HTML из динамически изменяющихся фрагментов или встраивать результат работы CGI в какой-либо его участок. Достоинства и недостатки SSI аналогичны описанным в предыдущем абзаце.

CSS

Зачастую у web-дизайнера возникает необходимость применить в процессе создания html-документа сложное форматирование - от абзаца к абзацу менять шрифт, расположение текста, его цвет, формировать различные таблицы данных. Можно решить эту проблему с помощью стандартных средств HTML: описывать каждый абзац отдельным набором команд, но в этом случае итоговый документ будет иметь большой размер, да и само создание кода становится весьма трудоемкой работой. Можно пойти другим путем: подключить к странице внешний файл, выполненный в стандарте CSS - Cascading Style Sheets (каскадные таблицы стилей), в котором с помощью специального макроязыка один раз жестко задать форматирование страницы. Другими словами, файл CSS выполняет роль некоего шаблона, применяемого для форматирования текста, таблиц и иных элементов в документе HTML. Есть возможность подключать один и тот же физический файл CSS к различным web-страницам сайта. CSS можно использовать практически на любом сервере без каких-либо ограничений. Крупные недостатки у данной технологии также практически отсутствуют. О каскадных таблицах стилей CSS мы подробно побеседуем в восьмом уроке.

РНР

РНР (Personal Home Page tools) - это еще один интерпретируемый язык, напоминающий PERL, предназначенный для придания web-страницам элементов интерактивности. Код, написанный на языке РНР, встраивается в документ HTML подобно подпрограмме: в тот участок документа, где необходимо разместить интерактивный элемент, просто вставляется сценарий РНР. Мнемоника данного языка базируется на синтаксисе PERL, Java и С, благодаря чему не вызывает каких-либо трудностей при изучении. Методики, которые позволяют серверам корректно распознавать файлы, содержащие скрипты РНР, различны и зависят в первую очередь от типа конкретного сервера. Считается достаточным назначить такому файлу расширение.php, иногда - с добавлением номера версии используемого языка, например.php2 или.php3.

Технология РНР позволяет организовать на web-странице счетчик посещений, подсчитывать статистику обращений к тем или иным разделам сайта, защитить доступ к какому-либо html-документу паролем и многое другое. Среди недостатков РНР следует отметить то, что данная технология поддерживается далеко не всеми серверами Интернета.

ASP

ASP (Active Server Pages, активные страницы сервера) - еще одна технология, аналогичная JavaScript и РНР. Для того чтобы сделать web-страницуинтерактивной с применением технологии ASP, необходимо встроить в ее код соответствующий скрипт, написанный на макроязыке, отдаленно напоминающем Java и С. Скрипт интерпретируется и исполняется непосредственно на сервере, после чего пользовательскому броузеру отправляется уже готовый html-документ с результатами работы сценария ASP. Отсюда следует вполне справедливое заключение о том, что для страниц, содержащих ASP, не имеет значения, какое программное обеспечение установлено на пользовательском компьютере. Зато принципиальное значение имеет тип сервера, на котором вы планируете использовать ASP, поскольку отнюдь не все они поддерживают данную технологию.

Содержание

Вы наверняка сталкивались со страницами, которых ранее не существовало и которые были созданы по вашему запросу динамически – сформированы, как говорится, «на лету».

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

Одна из технологий, позволяющая добавить динамическое содержание в Web-страницы, называется CGI. Она позволяет ассоциировать с тем или иным URL не просто статический документ, а программу, в результате работы которой могут быть сформированы данные в реальном времени.

Рассмотрим пример с предоставлением сведений о погоде. Метеорологическая сводка о погоде меняется каждый день, и ежедневно может создаваться новая статическая страница с прогнозом. Однако, если вы хотите предоставлять мгновенные данные, вы должны каждый раз генерировать новую страницу. Это может быть реализовано на основе CGI-технологии. В момент обращения на сервер на нем запускается CGI-программа, которая обращается к цифровому измерительному устройству и выдает сведения о температуре, давлении и т.д. Когда вы в очередной раз обратитесь на этот адрес, вы получите новые сведения.

Другой пример: когда вы заполняете некоторый запрос, например запрос в поисковой системе, то в ответ получаете результаты работы СGI-программы в виде набора искомых адресов.

CGI-программу можно представить как часть Web-сервера, которая запускается Web-сервером в реальном времени. Сервер передает запросы пользователя CGI-программе, которая их обрабатывает и возвращает результаты своей работы на экран пользователя (рис. 3). На большинстве Web-серверов CGI-механизм организован следующим образом: создается специальная поддиректория, в которой хранятся подобные программы, и администратор Web-сервера настраивает доступ к ней таким образом, чтобы файлы из нее не считывались, а запускались на выполнение. Результат работы программы отсылается браузеру в ответ на запрос. С точки зрения клиента нет никакой разницы, что находится по адресу данного URL – статический документ или CGI-программа. Браузер воспринимает информацию одинаково независимо от того, сформирована ли она «на лету» или речь идет о статической странице. Результат работы CGI-программы имеет тот же формат, что и статический документ.

Аббревиатура CGI наверняка попадалась вам в строке вашего браузера во время путешествия по Всемирной паутине, и вы, скорее всего, видели ссылку на /cgi-bin/ – директорию, в которой обычно и лежат cgi-программы. Множество интерактивных сервисов, таких как гостевая книга, форум и т.д., построены именно на cgi-программах.


Под термином «CGI» понимают не только программу, но и протокол. В этом смысле CGI – это стандартный для Web-сервера способ передать пользовательский запрос прикладной программе и получить данные назад для передачи их пользователю. Протокол CGI для пересылки данных между сервером и приложением является частью протокола HTTP.

Следует отметить, что если вы собираетесь разместить свою страницу на серверах бесплатного хостинга, то вполне возможно, что cgi-скрипты на этих серверах не поддерживаются.

Альтернативой CGI является технология компании Microsoft Active Server Page (ASP), построенная по тому же принципу: скрипт, включенный в Web-страницу, выполняется на сервере до того, как страница отсылается пользователю.

Существуют и другие технологии, работающие по тому же принципу.

Как видно на рис. 3, CGI-программа работает на стороне сервера.

Однако возможно также организовать динамические страницы за счет передачи на клиентский компьютер программ, которые генерируют динамическое содержание страниц уже на стороне клиента (рис. 4).

Рис. 4

Эта технология реализована следующим образом: активные документы хранятся на Web-серверах и скачиваются на локальный компьютер так же, как и статические страницы, но после того, как программа активного документа оказывается на локальном компьютере, она запускается и выполняет определенные вычисления на компьютере пользователя, опираясь на локальные вычислительные ресурсы. А результаты этих вычислений уже отображаются на экране. Соответственно скорость отображения данных на экране не зависит от скорости связи с удаленным сервером, поскольку вывод активного документа происходит только после его загрузки на локальный компьютер. Для создания активных документов могут использоваться различные технологии: приложения, написанные на JavaScript, Java-аплеты и элементы управления ActiveX.