ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.05.2024

Просмотров: 36

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

4. Лекція

Тема: Обробка запитів за допомогою PHP

Мета: Лекція присвячена вивченню способів відправки даних на сервер і їх обробці за допомогою PHP. Розглядаються основні поняття клієнт-серверних технологій. Розглядається поняття HTML-форми і відправка даних з її допомогою. Дається коротка характеристика методів Post і Get. Розглядається механізм отримання даних з HTML-форм і їх обробка за допомогою PHP. Приклад – створення форми для реєстрації користувачів на сайті, відправка "універсального листа" що всім реєструвався.

ПЛАН

1 Основи клієнт-серверних технологій

2 Типи серверів

3 Протокол HTTP і способи передачі даних на сервер

4 Методи

5 Використання HTML-форм для передачі даних на сервер

6 Обробка запитів за допомогою PHP

1 Основи клієнт-серверних технологій

На самому початку курсу ми вже говорили про те, що PHP – це скриптовий язик, оброблюваний сервером. Зараз необхідно уточнити, що ж таке сервер, які функції він виконує і які взагалі бувають сервери. Якщо йдеться про сервер, мимовільно спливає в пам'яті поняття клієнта. Все тому, що ці два поняття нерозривно зв'язані. Об'єднує їх комп'ютерна архітектура клієнт-сервер. Звичайно, коли говорять " сервер ", мають на увазі сервер в архітектурі клієнт-сервер, а коли говорять " клієнт " – мають у вигляді клієнт в цій же архітектурі. Отже ж це за архітектура?

Суть її в тому, щоб розділити функції між двома підсистемами: клієнтом, який відправляє запит на виконання яких-небудь дій, і сервером, який виконує цей запит. Взаємодія між клієнтом і сервером відбувається за допомогою стандартних спеціальних протоколів, таких як TCP/IP і z39.50. Насправді протоколів дуже багато, вони розрізняються по рівнях. Ми розглянемо тільки протокол прикладного рівня HTTP (трохи пізніше), оскільки для вирішення наших задач програмування потрібен тільки він. А поки повернемося до клієнт-серверної архітектури і розберемося, що ж таке клієнт і що таке сервер.

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


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

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

Послугами одного серверу частіше за все користується декілька клієнтів одночасно. Тому кожний сервер повинен мати достатньо велику продуктивність і забезпечувати безпеку даних.

Логічніше за все встановлювати сервер на комп'ютері, що входить в яку-небудь мережу, локальну або глобальну. Проте можна встановлювати сервер і на окремому комп'ютері (тоді він буде одночасно і клієнтом і сервером ).


2 Типи серверів

Існує безліч типів серверів. Ось лише деякі з них.

Відеосервер

Такий сервер спеціально пристосований до обробки зображень, зберігання відеоматеріалів, відеоігор і т.п. У зв'язку з цим комп'ютер, на якому встановлений відеосервер, повинен мати високу продуктивність і велику пам'ять.

Пошуковий сервер призначений для пошуку інформації в Internet.

Поштовий сервер надає послуги у відповідь на запити, прислані по електронній пошті.

Сервер WWW призначений для роботи в Internet.

Сервер баз даних виконує обробку запитів до баз даних.

Сервер захисту даних призначений для забезпечення безпеки даних (містить, наприклад, засоби для ідентифікації паролів).

Сервер додатків призначений для виконання прикладних процесів. З одного боку взаємодіє з клієнтами, одержуючи завдання, а з іншою – працює з базами даних, підбираючи необхідні для обробки дані.

Сервер віддаленого доступу забезпечує колективний видалений доступ до даних.

Файловий сервер забезпечує функціонування розподілених ресурсів, надає послуги пошуку, зберігання, архівації даних і можливість одночасного доступу до них декількох користувачів.

Звичайно на комп’ютері-сервері працює відразу декілька програм-серверів. Одна займається електронною поштою, інша розподілом файлів, третя надає web-сторінки.

Зі всіх типів серверів нас в основному цікавить сервер WWW. Часто його називають web-сервером, http-сервером або навіть просто сервером. Що є web-сервером?

По-перше, це сховище інформаційних ресурсів.

По-друге, ці ресурси зберігаються і надаються користувачам відповідно до стандартів Internet (такими, як протокол передачі даних HTTP ). Як надаються дані відповідно до цього протоколу, ми розглянемо трохи пізніше. Робота з документами web-серверу здійснюється за допомогою браузера (наприклад, IE, Opera або Mozilla), який посилає серверу запити, створені відповідно до протоколу 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/.

Мал. 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 Протокол http і способи передачі даних на сервер

Internet побудований за багаторівневим принципом, від фізичного рівня, пов'язаного з фізичними аспектами передачі двійкової інформації, і до прикладного рівня, що забезпечує інтерфейс між користувачем і мережею.

HTTP (HyperText Transfer Protocol, протокол передачі гіпертексту ) – це протокол прикладного рівня, розроблений для обміну гіпертекстовою інформацією в Internet.

HTTP надає набір методів для зазначення цілей запиту, що відправляється серверу. Ці методи засновані на дисципліні посилань, де для вказівки ресурсу, до якого повинен бути застосований даний метод, використовується універсальний ідентифікатор ресурсів (Universal Resource Identifier) у вигляді місцезнаходження ресурсу (Universal Resource Locator, URL ) або у вигляді його універсального імені (Universal Resource Name, URN ).

Повідомлення по мережі при використовуванні протоколу HTTP передаються у форматі, схожому з форматом поштового повідомлення Internet (RFC-822) або з форматом повідомлень MIME (Multipurpose Internet Mail Exchange).

HTTP використовується для комунікацій між різними призначеними для користувача програмами і програмами-шлюзами, що надають доступ до існуючих Internet-протоколів, таким як SMTP (протокол електронної пошти), NNTP (протокол передачі новин), FTP (протокол передачі файлів), Gopher і WAIS. HTTP розроблений для того, щоб дозволяти таким шлюзам через проміжні програми-сервери (proxy) передавати дані без втрат.

Протокол реалізує принцип запит/відповідь. Запитуюча програма–клієнт ініціює взаємодію з відповідаючою програмою–сервером, і посилає запит, що містить:

  • метод доступу;

  • адреса URL;

  • версію протоколу;

  • повідомлення (схоже формою на MIME) з інформацією про тип передаваних даних, інформацією про клієнта, що послав запит, і, можливо, із змістовною частиною (тілом) повідомлення.

Відповідь серверу містить:

  • рядок стану, в який входить версія протоколу і код повернення (успіх або помилка);

  • повідомлення (у формі, схожій на MIME), в яке входить інформація серверу, метаінформація (тобто інформація про зміст повідомлення) і тіло повідомлення.

В протоколі не указується, хто повинен відкривати і закривати з'єднання між клієнтом і сервером. На практиці з'єднання, як правило, відкриває клієнт, а сервер після відправки відповіді ініціює його розрив.