Взаимодействие программ и Windows. Во многих операционных системах взаимодействие между системой и программой инициализирует программа. Например, в DOS программа запрашивает разрешение на ввод и вывод данных. Говоря другими словами, не-Windows-программы сами вызывают операционную систему. Обратного процесса не происходит. В Windows все совершенно наоборот: именно система вызывает программу. Это осуществляется следующим образом: программа ожидает получения сообщения от Windows. Когда это происходит, то выполняется некоторое действие. После его завершения программа ожидает следующего сообщения.

Windows может посылать программе сообщения множества различных типов. Например, каждый раз при щелчке мышью в окне активной программы посылается соответствующее сообщение. Другой тип сообщений посылается, когда необходимо обновить содержимое активного окна. Сообщения посылаются также при нажатии клавиши, если программа ожидает ввода с клавиатуры. Необходимо запомнить одно: по отношению к программе сообщения появляются случайным образом. Вот почему Windows-программы похожи на программы обработки прерываний: невозможно предсказать, какое сообщение появиться в следующий момент.

Лекция 5. Введение в Интернет –технологии

План.

1. Основы работы сервера Web

2. Принципы работы HTTP-протокола

3. Обзор технологий Интернета

1. Основы работы сервера Web

Серверы Web хранят информацию в виде текстовых файлов, называемых также страницами сервера Web. Помимо текста, такие страницы могут содержать ссылки на другие страницы (расположенные на том же самом или другом сервере Web), ссылки на графические изображения, аудио - и видео­информацию, различные объекты ввода данных (поля, кнопки, формы и т. д.), а также другие объекты. Фактически страницы Web представляют собой неко­торое связующее звено между объектами различных типов. Их проектируют с применением специального языка разметки гипертекстов Hyper Text Markup Language, или сокращенно — HTML. Для доступа к информации, расположенной на серверах Web, пользователи применяют специальные клиентские программы — браузеры.

НЕ нашли? Не то? Что вы ищете?

Каждая страница сервера Web имеет свой так называемый универсальный адрес ресурса Universal Resource Locator (URL). Для того чтобы получить доступ к той или иной странице, пользователь должен указать ее адрес URL програм­ме браузера. Как правило, любой сервер Web имеет одну главную страницу, со­держащую ссылки на все другие страницы этого сервера. Поэтому просмотр со­держимого сервера Web обычно начинается с его главной страницы.

Когда пользователь указывает браузеру адрес страницы сервера Web, она начинает загружаться с сервера. При этом браузер устанавливает соединение с сервером Web, применяя протокол передачи данных Hyper Text Transfer Protocol (HTTP), получает нужную страницу и разрывает соединение. Принятая страница отображается в окне браузера.

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

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

2. Принципы работы HTTP-протокола

Протокол передачи гипертекста (HTTP) - протокол прикладного уровня для распределенных, совместных, многосредных информационных систем. HTTP используется в World Wide Web (WWW) начиная с 1990 года.

Все HTTP-транзакции имеют один общий формат. Каждый запрос клиента и ответ сервера состоит из трех частей: строки запроса (ответа), раздела заголовка и тела. Клиент инициирует транзакцию следующим образом:

1. Клиент устанавливает связь с сервером по назначенному номеру порта (по умолчанию - 80). Затем клиент посылает запрос документа, указав HTTP-команду, называемую методом, адрес документа и номер версии HTTP. Например, в запросе

GET /index. html HTTP/1.0

используется метод GET, которым с помощью версии 1.0 HTTP запрашивается документ index. html. Методы HTTP более подробно рассматриваются ниже.

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

User-Agent: Mozilla/4.05 (WinNT; 1)

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*

Завершается заголовок пустой строкой.

3. Послав запрос и заголовки, клиент может отправить и дополнительные данные. Эти данные используются главным образом теми CGI-программами, которые применяют метод POST. Клиенты (например, Netscape Navigator-Gold), также могут использовать их для помещения отредактированной страницы обратно на Web-сервер.

Сервер отвечает на запрос клиента следующим образом:

1. Первая часть ответа сервера - строка состояния, содержащая три поля: версию HTTP, код состояния и описание. Поле версии содержит номер версии HTTP, которой данный сервер пользуется для передачи ответа.

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

НТТР/OK

говорит о том, что сервер для ответа использует версию HTTP 1.0. Код состояния 200 означает, что запрос клиента был успешным и затребованные данные будут переданы после заголовков.

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

Date: Fri, 10 Jan 1998 08:17:58 GMT

Server: Apache/1.2.6

Last-modified: Mon, 12 Jun 1997 21:53:08 GMT

Content-type: text/html

Content-length: 2482

Завершает заголовок пустая строка.

3. Если запрос клиента успешен, то посылаются затребованные данные. Это может быть копия файла или результат выполнения CGI-программы. Если запрос клиента удовлетворить нельзя, передаются дополнительные данные в виде понятного для пользователя разъяснения причин, по которым сервер не смог выполнить данный запрос.

В HTTP 1.0 за передачей сервером затребованных данных следует разъединение с клиентом, и транзакция считается завершенной, если не передан заголовок Connection: Keep Alive. В HTTP 1.1 сервер по умолчанию не разрывает соединение и клиент может посылать другие запросы. Поскольку во многие документы встроены другие документы - изображения, кадры, апплеты и т. д., это позволяет сэкономить время и затраты клиента, которому в противном случае пришлось бы для получения всего одной страницы многократно соединяться с одним и тем же сервером. Таким образом, в HTTP 1.1 транзакция может циклически повторяться, пока клиент или сервер не закроет соединение явно.

HTTP не сохраняет информацию по транзакциям, поэтому в следующей транзакции приходится начинать все заново. Преимущество состоит в том, что HTTP сервер может обслужить в заданный промежуток времени гораздо больше клиентов, ибо устраняются дополнительные расходы на отслеживание сеансов от одного соединения к другому. Есть и недостаток: для сохранения информации по транзакциям более сложные CGI-программы должны пользоваться скрытыми полями ввода или внешними средствами, например "ключиками" (cookies) Netscape.
Методы

Метод - это HTTP-команда, с которой начинается первая строка запроса клиента. Метод сообщает серверу о цели запроса. Для HTTP определены три основных метода: GET, HEAD и POST. Определены и другие методы, но они не так широко поддерживаются серверами, как три перечисленных (хотя эти другие методы в будущем будут использоваться более часто). При задании имен методов учитывается регистр, поэтому GET и get различаются.

Метод GET

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

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

Тело информационного содержимого запроса GET всегда пустое. GET в переводе на человеческий язык означает примерно следующее: "Дайте мне этот файл". Для идентификации указанных в запросе клиента файла или программы обычно используется полное имя этого объекта на сервере.

Ниже приведен пример успешного запроса GET на получение файла. Клиент посылает запрос:

GET /index. html HTTP/1.О

Connection: Keep-Alive

User-Agent: Mozilla/4.05 (WinNT; 1)

Host: www.

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*

Сервер отвечает:

HTTP/Document follows

Date: Fri, 20 Jan 1998 08:17:58 GMT

Server: Apache/1.2.6

Last-modified: Mon, 20 Jun 1997 21:53:08 GMT

Content-type: text/html

Content-length: 2482

(далее следует тело документа)

Метод GET используется также для передачи входной информации в CGI-про - граммы посредством тегов форм. Поскольку тело запроса GET пусто, входные данные присоединяются к URL в строке GET запроса. Если в теге <form> задано значение атрибута method="GET", то пары ключ-значение, представляющие собой введенные данные из формы, присоединяются к URL после вопросительного знака. Пары отделяются друг от друга амперсандом (&). Например, по запросу

GET /cgi-bin/birthday. pl? month=august&date=24 HTTP/1.О

сервер передаст в CGI-программу birthday. pl значения month и date, указанные в форме, созданной на клиенте. Входные данные в конце URL кодируются в спецификации CGI. Чтобы специальные символы интерпретировались обычным образом, используются их шестнадцатиричные коды.

Аналогичным образом в методе GET может передаваться информация о дополнительных путях. При этом дополнительный путь указывается после URL, т. е. /cgi-bin/display. pl/cgi/cgi_doc. txt. Сервер определяет, где заканчивается имя программы (display. pl). Все данные, которые следуют за именем программы, интерпретируются как дополнительный путь.

Метод HEAD

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

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

·  время изменения документа (эти данные полезны для запросов, связанных с кэш-памятью);

·  размер документа (необходим для компоновки страницы, оценки времени передачи, определения необходимости запроса более компактной версии документа);

·  тип документа (позволяет клиенту изучать документы только определенного типа);

·  тип сервера (позволяет создавать специализированные запросы).

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

Ниже приведен пример HTTP-транзакции с использованием запроса HEAD. Клиент посылает запрос:

HEAD /index. html HTTP/1.0

Connection: Close

User-Agent: Mozilla/4.05 (WinNT; 1)

Host: www.

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*

Сервер отвечает:

HTTP/Document follows

Date: Fri, 20 Jan 1998 08:17:58 GMT

Server: Apache/1.2.6

Last-modified: Mon, 17 Jun 1996 21:53:08 GMT

Content-type: text/html

Content-length: 2482

(Тело содержимого в ответе на запрос HEAD не передается.)


Метод POST

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

·  сетевых служб (таких как телеконференции);

·  программ с интерфейсом в виде командной строки;

·  аннотирования документов на сервере;

·  выполнения операций в базах данных.

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

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

POST /cgi-bin/birthday. pl HTTP/1.0

User-Agent; Mozilla/4.05 (WinNT; 1)

Accept: image/gif, iinage/x-xbj. tmap, image/jpeg, J. mage/pjpeg, */*

Host: www.

Content-type: application/x-www-form-ur. lencoded

Content-Length: 20

nionth=august&date=24


Другие методы

Приведенные ниже методы также определены, хотя и используются не столь часто:

LINK Связывает информацию заголовка с документом на сервере.

UNLINK Отменяет связь информации заголовка с документом на сервере.

PUT Помещает тело содержимого запроса по указанному URI.

DELETE Удаляет данные, находящиеся на сервере по заданному URI.

OPTIONS Запрашивает информацию о коммуникационных параметрах сервера. Чтобы запросить данные обо всем сервере в целом, вместо URI запроса следует использовать символ *.

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

Ответы сервера

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

Коды ответов HTTP сервера

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

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

Диапазон кодов

Значение ответа

100-199

Информационный

200-299

Запрос клиента успешен

300-399

Запрос клиента переадресован, необходимы дальнейшие действия

400-499

Запрос клиента является неполным

500-599

Ошибки сервера

В HTTP в каждом диапазоне определены лишь несколько кодов, хотя для сервера при необходимости могут определяться собственные коды. Клиент при получении кода, который он не может распознать, интерпретирует его в соответствии с диапазоном, к которому этот код принадлежит. Коды в диапазонах 100-199, 200-299 и 300-399 большинство Web-броузеров обрабатывают без извещения пользователя, а некоторые коды ошибок из диапазонов 400-499 и 500-599 отображаются для пользователя (например, 404 Not Found).
Примеры

Информационные ответы

Ответы в диапазоне 100-199 - информационные; они показывают, что запрос клиента принят и обрабатывается.

100 Continue

Начальная часть запроса принята, и клиент может продолжать передачу запроса.

Успешные запросы клиента

Ответы в диапазоне 200-299 означают, что запрос клиента обработан успешно.

200 OK

Запрос клиента обработан успешно, и ответ сервера содержит затребованные данные.

203 Non-Authoritative Information

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

Переадресация

Код ответа в диапазоне 300-399 означает, что запрос не выполнен и клиенту нужно предпринять некоторые действия для удовлетворения запроса.

301 Moved Permanently

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

Неполные запросы клиента

Коды ответов в диапазоне 400-499 означают, что запрос клиента неполный. Эти коды могут также означать, что от клиента требуется дополнительная информация.

400 Bad Request

Означает, что сервер обнаружил в запросе клиента синтаксическую ошибку.

404 Not Found

Документ по указанному URI не существует.

Ошибки сервера

Коды ответов в диапазоне 500-599 показывают, что сервер столкнулся с ошибкой и, вероятно, не сможет выполнить запрос клиента.

500 Internal Server Error

При обработке запроса на сервере один из его компонентов (например, CGI-программа) выдал аварийный отказ или столкнулся с ошибкой конфигурации.

505 HTTP Version not supported

Сервер не поддерживает версию протокола HTTP, использованную в запросе.

2.1.1  3. Обзор технологий Интернета

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

Язык разметки гипертекстов HTML.

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

Динамический язык гипертекстовой разметки DHTML. Он позволяет создавать динамические интерактивные страницы. Несмотря на то, что объектные модели наиболее популярных браузеров сильно разли­чаются, интенсивное применение DHTML оправдано в первую очередь в тех случаях, когда на компьютере пользователя установлен браузер Microsoft Internet Explorer. Это возможно в интрасетях или при создании администра­тивных приложений Web, когда разработчик может установить на компью­тере пользователя заранее выбранный браузер.

Языки сценариев JavaScript и VB Script.

Сценарии, написанные на языках JavaScript и VB Script, применяются как на стороне клиента, так и на стороне сервера Web. Клиентские сценарии встро­ены в документы HTML (или DHTML), загружаемые пользователем в окно браузера. Эти интерпретируемые программы, исполняемые браузером, спо­собны оживить статические документы HTML; они связывают различные объекты, расположенные внутри таких документов. Серверные сценарии исполняются на сервере и служат для динамического формирования доку­ментов HTML, отправляемых пользователю.

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

Активные страницы Active Server Pages (ASP).

Технология активных серверных страниц ASP является ключевой для созда­ния приложений Web на базе сервера Microsoft Internet Information Server. Приложения Web на базе Microsoft Internet Information Server основаны на наборе текстовых файлов с расширением имени asp. В первом приближении это документы HTML, в которые встроены серверные сценарии JScript (вер­сия JavaScript, созданная Microsoft) или VB Script. Именно эти сценарии осу­ществляют обращение к базе данных или к другим активным серверным объектам.

Технология ActiveX Data Objects (ADO).

Эта технология имеет самое непосредственное отношение к базам данных. Посредством объектов ADO серверные сценарии ASP обращаются к базе данных. Объект­ная модель ADO фактически предоставляет в распоряжение разработчика простой набор объектов и методов для доступа к базам данных. Объекты ADO вызываются не только из сценариев, но и из обычных приложений Windows, расширений CGI и ISAPI сервера Web, а также из других объектов ActiveX.

Расширения CGI и ISAPI сервера Web.

Расширения CGI и ISAPI сервера Web широко применяются вместе с ASP при создании активных серверов Web. Они представляют собой специальным образом составленные программы, выполняющиеся на компьютере сервера Web. Расширения сервера Web способны принимать данные от пользовате­ля, динамически создавать новые документы HTML и отправлять их обратно.

ActiveX.

Как и сценарии JavaScript и VB Script, элементы управления ActiveX приме­няют как на стороне сервера, так и на стороне клиента. Фактически они пред­ставляют собой библиотеки динамической компоновки DLL, работающие либо на компьютере пользователя, либо на сервере.

Если элемент управления ActiveX работает на стороне клиента, то он может быть встроен в документ HTML и иметь или не иметь собственное окно. Об­ладая неограниченным доступом к ресурсам локального компьютера, элемент управления ActiveX способен получить и передать на сервер Web практичес­ки любую информацию. Эта возможность не всегда используется при пере­даче данных через Интернет из соображений их безопасности, однако в интрасетях она иногда оказывается очень полезной.

Элемент управления ActiveX допустимо также устанавливать на сервере Web, дабы расширить его возможности.

Аплеты Java.

Язык Java, разработанный Sun Microsystems, должен обеспечивать работо­способность приложений на различных платформах без перекомпиляции. В проектах для сети Интернет чаще всего применяются аплеты Java. Они представляют собой одну из разновидностей приложений Java. Аплеты Java встраиваются в документы HTML и работают под управлением браузера. В отличие от органов управления ActiveX, возможности доступа аплетов к локальным ресурсам компьютера пользователя практически сведены к нулю, поэтому их применение не угрожает безопасности данных. Однако есть и обратная сторона — такие ограничения во многом снижают пользу от аплетов. Как правило, аплеты применяются для создания динамичного интерактивного пользовательского интерфейса на стороне клиента. Помимо этого, они способны взаимодействовать с расширениями CGI и ISAPI сервера Web, с кото­рого они загружены.

Лекция 6 Основы РНР

План

1. История создания PHP

2. Характеристика языка

3. Принципы работы PHP

4. Основные возможности PHP

Содержание

PHP - язык описания сценариев, выполняемых на сервере, встроенный в HTML.

История РНР начинается с 1995 года, когда независимый программист-контрактник по имени Расмус Лердорф (Rasmus Lerdorf) написал сценарий Perl/CGI для подсчета количества посетителей сайта, прочитавших его онлайновое резюме. Его сценарий решал две задачи: регистрацию данных посетителя и вывод количества посетителей на web-странице. Развитие WWW еще только начиналось, никаких специальных средств для решения этих задач не было, и к автору хлынул поток сообщений с вопросами. Лердорф начал бесплатно раздавать свой инструментарий, названный Personal Home Page (РНР) или Hypertext Processor (гипертекстовый процессор). Шумный успех инструментария РНР заставил Лердорфа приступить к разработ­ке расширений РНР. Одно из расширений преобразовывало данные, введенные на форме HTML, в символические переменные, что позволяло экспортировать их в другие системы. Чтобы добиться поставленной цели, Лердорф решил в даль­нейших разработках перейти с Perl на С. Расширение существующего инструмен­тария РНР привело к появлению РНР 2.0, или PHP-FI (Personal Home Page — Form Interpretator). В усовершенствовании версии 2.0 принимали участие про­граммисты со всего мира.

Новая версия РНР пользовалась исключительной популярностью, и вскоре об­разовалась основная команда разработчиков. Они сохранили исходную концеп­цию внедрения программного кода прямо в HTML и переписали заново механизм лексического анализа, что привело к появлению РНР 3.0. К моменту выхода вер­сии 3.0 в 1997 году свышепользователей применяли РНР для улучшения своих web-страниц.

В течение следующих двух лет стремительное развитие РНР продолжалось. В язык добавлялись сотни новых функций, а количество пользователей стремительно росло. В начале 1999 года служба Netcraft сообщила о том, что, по минимальным оценкам, число пользователей РНР превысило 1 в результате чего РНР стал одним из самых популярных сценарных языков в мире.

В начале 1999 года было объявлено о предстоящем выходе РНР 4.0. Хотя одной из сильнейших сторон РНР была эффективность выполнения сценариев, при первоначальных разработках не предполагалось, что на базе РНР будут строить­ся крупномасштабные приложения. По этой причине была начата работа над бо­лее устойчивым механизмом лексического анализа, больше известным под на­званием Zend. Работа шла быстро и завершилась 22 мая 2000 года выпуском РНР версии 4.0.

Кроме лексического анализатора Zend, компания Zend Technologies рас­пространяет оптимизатор Zend, который повышает выигрыш в быстродействии от применения лексического анализатора Zend. Тесты показывают, что ускорение работы программы в результате использования оптимизатора составляет от 40 до 100 %. Будущее РНР выглядит светлым, поскольку продукт продолжает активно использоваться как на крупных web-сайтах, так и на компьютерах отдельных пользователей.

РНР лучше всего охарактеризовать как работающий на стороне сервера встроен­ный язык сценариев Web, позволяющий разработчикам быстро и эффективно строить динамические web-приложения. С позиций грамматики и синтаксиса РНР напоминает язык программирования C, хотя разработчики не постеснялись вклю­чить в него средства из других языков, в том числе из Perl, Java и C++. Среди ценных заимствованных возможностей — поддержка регулярных выражений, мощные средства работы с массивами, объектно-ориентированная методология и обширная поддержка работы с базами данных.

При написании приложений, выходящих за рамки традиционной, статической методологии разработки web-страниц (то есть HTML), РНР также может послу­жить ценным инструментом для создания и управления динамическим содержа­нием, который используется наряду с JavaScript, стилями, и другими полезными языками. Благодаря наличию сотен стандарт­ных функций РНР в состоянии решить практически любую задачу, которая мо­жет придти в голову разработчику. В нем имеется обширная поддержка создания графики и операций с ней, математических вычислений, средств электронной ком­мерции и таких популярных технологий, как XML (Extensible Markup Language), ODBC (Open Database Connectivity) и Macromedia Shockwave. Широкий выбор возможностей избавляет от необходимости рутинной и непростой работы по под­ключению сторонних модулей, поэтому многие разработчики со всего мира оста­навливают свой выбор на РНР.

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

<html>

<title><? print "Hello world!": ?></title>

</html>

Сообщение "Hello world!" выводится в заголовке web-страницы. Интересно то, что команда print внутри конструкции, которая обычно называется экранирую­щими последовательностями РНР (<?...?>), представляет собой законченную про­грамму. Ни длинного кода инициализации, ни включения библиотек — программа состоит лишь из того кода, который непосредственно решает поставленную зада­чу!

2. Характеристика языка

Главным фактором при проектировании языка РНР является практичность. РНР должен предоставить программисту средства для быстрого и эффективного решения поставленных задач. Практический характер РНР обусловлен пятью важными характеристиками:

·  традиционностью;

·  простотой;

·  эффективностью;

·  безопасностью;

·  гибкостью.

Существует еще одна «характеристика», которая делает РНР особенно привлека­тельным: он распространяется бесплатно!

Традиционность

Язык РНР кажется знакомым программистам, работающим в разных областях. Многие конструкции языка позаимствованы из С и Perl, а нередко код РНР прак­тически неотличим от того, что встречается в типичных программах С или Pascal. Это заметно снижает начальные усилия при изучении РНР.

Простота

Сценарий РНР может состоять изстрок или из одной строки — все зави­сит от специфики вашей задачи. Механизм РНР просто начинает выполнять код после первой экранирующей последователь­ности (<?) и продолжает выполнение до того момента, когда он встретит парную экранирующую последовательность (?>). Если код имеет правильный синтаксис, он исполняется в точности так, как указал программист.

Эффективность

Эффективность является исключительно важным фактором при программирова­нии для многопользовательских сред, к числу которых относится и WWW. В РНР 4.0 был реализован механизм выделения ресурсов и обеспечена улучшен­ная поддержка объектно-ориентированного программирования, а также средства управления сеансом. В последней версии появился и механизм подсчета ссылок (reference counting), предотвращающий выделение лишней памяти.

Безопасность

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

Принципы работы PHP

PHP - это серверный язык сценариев, разработанный специально для WEB. В html-страницу можно внедрить PHP-код, который будет выполняться при каждом ее посещении. PHP-код интерпретируется web-сервером (Apache (работает и под UNIX, а MS Internet Information Server только под Windows), MS Internet Information Server).

Разработка PHP была начата в 1994 году и вначале осуществлялась одним человеком – Расмусом Лердорфом. Этот язык претерпел 5 основных редакци. PHP – это продукт с открытым исходным кодом (имеет открытый доступ к его коду, его можно использовать, изменять и свободно распространять). Сейчас распространением и поддержкой PHP занимается компания Zend.

Рассмотрим основные этапы работы Web-приложений от запроса пользователя до предоставления ему требуемой информации.

1. Web-броузер пользователя отправляет http-запрос определенной Web-странице. При этом браузер устанавливает соединение с сервером Web, применяя протокол передачи данных HTTP.

2. Web-сервер принимает запрос на генерирование страницы, извлекает нужный файл и передает его на обработку интерпретатору PHP.

3. Интерпретатор PHP начинает синтаксический анализ сценария. Сценарий может содержать команду подключения к БД и выполнения запроса. PHP открывает соединение с сервером БД и отправляет ему соответствующий запрос.

4. Сервер БД принимает запрос к БД, обрабатывает его и отправляет результаты PHP-машине.

5. PHP – интерпретатор завершает выполнение сценария, обычно в виде построения HTML-станицы. Затем результаты возвращаются в понятном Web-серверу HTML-формате.

6. Web-сервер пересылает браузеру HTML-станицу, в которой пользователь может просмотреть результирующую информацию.

7. Браузер получает нужную страницу и разрывает соединение. Принятая страница отображается в окне браузера.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5