Опубликован: 01.03.2005 | Доступ: свободный | Студентов: 33897 / 4520 | Оценка: 4.31 / 4.06 | Длительность: 16:41:00
ISBN: 978-5-9556-0026-0
Лекция 4:

Обработка запросов с помощью PHP

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >
Аннотация: Лекция посвящена изучению способов отправки данных на сервер и их обработке с помощью PHP. Рассматриваются основные понятия клиент-серверных технологий. Рассматривается понятие HTML-формы и отправка данных с ее помощью. Дается краткая характеристика методов Post и Get. Рассматривается механизм получения данных из HTML-форм и их обработка с помощью PHP. Пример – создание формы для регистрации пользователей на сайте, отправка "универсального письма" всем зарегистрировавшимся.
Ключевые слова: PHP, сервер, клиент, архитектура клиент-сервер, архитектура, запрос, TCP/IP, Z39.50, HTTP, определение процессов, сеанс, производительность, безопасность данных, сеть, компьютер, сервер WWW, сервер приложений, файловый сервер, архивирование, Web-сервер, http-сервер, Internet, протокол передачи данных, Apache, information, server, IIS, SUN, application server, IBM, Oracle, статистика, интерфейс, hypertext transfer protocol, протокол передачи гипертекста, идентификатор ресурса, URL, URN, MIME, multipurpose, internet mail, exchange, доступ, smtp, NNTP, FTP, gopher, WAIS, proxy, принцип запрос/ответ, программа, код возврата, тело сообщения, полный запрос, простой запрос, GET, POST, head, метод отправки запросов, HTML, пароль, html-форма, тег, form, input, Action, method, имя программы, команда, отправка, submit, файл, методы передачи данных, строка запроса, radio button, стандартный ввод, переменная окружения, REMOTE_ADDR, REMOTE_HOST, имя хоста, HTTP_REFERER, REQUEST_METHOD, QUERY_STRING, SCRIPT_NAME, HTTP_USER_AGENT, PHP-скрипт, имя переменной, значение, переменная, $HTTP_POST_VARS, $HTTP_GET_VARS, массив, $_REQUEST, $_POST, $_GET, директива, register_globals, файл настроек, параметр, адрес, getenv(), пустой элемент, пользователь, Хакер

Основы клиент-серверных технологий

В самом начале курса мы уже говорили о том, что PHP – это скриптовый язык, обрабатываемый сервером. Сейчас мы хотим уточнить, что же такое сервер, какие функции он выполняет и какие вообще бывают серверы. Если речь идет о сервере, невольно всплывает в памяти понятие клиента. Все потому, что эти два понятия неразрывно связаны. Объединяет их компьютерная архитектура клиент-сервер. Обычно, когда говорят " сервер ", имеют в виду сервер в архитектуре клиент-сервер, а когда говорят " клиент " – имеют в виду клиент в этой же архитектуре. Так что же это за архитектура? Суть ее в том, чтобы разделить функции между двумя подсистемами: клиентом, который отправляет запрос на выполнение каких-либо действий, и сервером, который выполняет этот запрос. Взаимодействие между клиентом и сервером происходит посредством стандартных специальных протоколов, таких как TCP/IP и z39.50. На самом деле протоколов очень много, они различаются по уровням. Мы рассмотрим только протокол прикладного уровня HTTP (чуть позднее), поскольку для решения наших программистских задач нужен только он. А пока вернемся к клиент-серверной архитектуре и разберемся, что же такое клиент и что такое сервер.

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

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

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

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

Логичнее всего устанавливать сервер на компьютере, входящем в какую-либо сеть, локальную или глобальную. Однако можно устанавливать сервер и на отдельно стоящий компьютер (тогда он будет являться одновременно и клиентом и сервером ).

Существует множество типов серверов. Вот лишь некоторые из них.

  • Видеосервер

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

  • Поисковый сервер предназначен для поиска информации в Internet.
  • Почтовый сервер предоставляет услуги в ответ на запросы, присланные по электронной почте.
  • Сервер WWW предназначен для работы в Internet.
  • Сервер баз данных выполняет обработку запросов к базам данных.
  • Сервер защиты данных предназначен для обеспечения безопасности данных (содержит, например, средства для идентификации паролей).
  • Сервер приложений предназначен для выполнения прикладных процессов. С одной стороны взаимодействует с клиентами, получая задания, а с другой – работает с базами данных, подбирая необходимые для обработки данные.
  • Сервер удаленного доступа обеспечивает коллективный удаленный доступ к данным.
  • Файловый сервер обеспечивает функционирование распределенных ресурсов, предоставляет услуги поиска, хранения, архивирования данных и возможность одновременного доступа к ним нескольких пользователей.

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

Из всех типов серверов нас в основном интересует сервер WWW. Часто его называют web-сервером, http-сервером или даже просто сервером. Что представляет собой web-сервер? Во-первых, это хранилище информационных ресурсов. Во-вторых, эти ресурсы хранятся и предоставляются пользователям в соответствии со стандартами Internet (такими, как протокол передачи данных HTTP ). Как предоставляются данные в соответствии с этим протоколом, мы рассмотрим чуть позже. Работа с документами web-сервера осуществляется при помощи браузера (например, IE, Opera или Mozilla Firefox), который отсылает серверу запросы, созданные в соответствии с протоколом HTTP. В процессе выполнения задания сервер может связываться с другими серверами.

Далее в ходе лекции, говоря " сервер ", мы будем подразумевать web-сервер.

В качестве примеров web-серверов можно привести сервер Apache группы Apache, Internet Information Server (IIS) компании Microsoft, SunOne фирмы Sun Microsystems, WebLogic фирмы BEA Systems, IAS (Inprise Application Server) фирмы Borland, WebSphere фирмы IBM, OAS (Oracle Application Server).

На рис. 4.1 и в таблице 4.1 приведена статистика использования различных серверов среди всех доменов Internet от NetCraft http://news.netcraft.com/.

Статистика использования ведущих web-серверов

Рис. 4.1. Статистика использования ведущих web-серверов
Таблица 4.1. Ведущие разработчики web-серверов
Разработчик Февраль 2004 Проценты Март 2004 Проценты Изменение
Apache 31703884 67.21 32280582 67.20 -0.01
Microsoft 9849971 20.88 10099760 21.02 0.14
SunONE 1657295 3.51 1651575 3.44 -0.07
Zeus 755227 1.60 762716 1.59 -0.01

Как видно из приведенной таблицы, сервер Apache занимает лидирующие позиции. Все, что мы когда-либо будем говорить о web-серверах, ориентировано на Apache, если не указано иное. О том, как установить его на свой компьютер, мы уже рассказывали в самой первой лекции. А теперь, как было обещано, обратимся к протоколу HTTP.

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >
Дарья Федотова
Дарья Федотова
Сергей Березовский
Сергей Березовский

В рамках проф. переподготовки по программе "Программирование"

Есть курсы, которые я уже прошел. Но войдя в курс я вижу, что они не зачтены (Язык Ассемблера и архитектура ЭВМ, Программирование на С++ для профессионалов). Это как?

Евгений Устинов
Евгений Устинов
Россия, Рязань, Рязанский радиотехнический университет, 2006
Игорь Хан
Игорь Хан
Узбекистан, Ташкент, Ташкентский педагогический институт иностранных языков, 1990