Взаимодействие программ и 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 |


