Протокол http І способи передачі даних на сервер icon

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




Скачати 343.06 Kb.
НазваПротокол http І способи передачі даних на сервер
Дата29.05.2013
Розмір343.06 Kb.
ТипЛекция

Лекция №2

Основи клієнт-серверних технологій 
Протокол HTTP і способи передачі даних на сервер 
Форма запиту клієнта 
Методи 
Використання HTML-форм для передачі даних на сервер 
Для методу GET 
Для методу POST 
Обробка запитів за допомогою PHP 
Приклад обробки запиту за допомогою PHP 
Суперглобальні масиви 
PHP і Cookies 
Установка масиву Cookies і його читання 
Робота з сесією 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   З усіх типів серверів нас в основному цікавить сервер WWW. Часто його називають web-сервером, http-сервером або навіть просто сервером. Що являє собою web-сервер? По-перше, це сховище інформаційних ресурсів. По-друге, ці ресурси зберігаються і надаються користувачам відповідно до стандартів Internet (такими, як протокол передачі даних HTTP). Як надаються дані у відповідності з цим протоколом, ми розглянемо трохи пізніше. Робота з документами web-серверу здійснюється за допомогою браузера (наприклад, IE, Opera або Mozilla), який відсилає серверу запити, створені відповідно до протоколу HTTP. У процесі виконання завдання сервер може зв'язуватися з іншими серверами.

   В якості прикладів 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 ).

   Все, що ми коли-небудь будемо говорити про web-серверах, орієнтоване на Apache, якщо не вказано інший. Про те, як встановити його на свій комп'ютер, ми вже розповідали в самій першій лекції. А тепер, як було обіцяно, звернемося до протоколу HTTP.




^ Протокол 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) передавати дані без втрат.

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

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

  • адресу URI;

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

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

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

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

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

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




^ Форма запиту клієнта

   Клієнт відсилає серверу запит в одній з двох форм: у повній або скороченій. Запит у першій формі називається відповідно повним запитом, а в другій формі - простим запитом.

   Простий запит містить метод доступу та адресу ресурсу. Формально це можна записати так: 
   <Простий-Запит>: = <Метод> <символ пробіл> 
   <Запитуваний-URI> <символ нового рядка>

   В якості методу можуть бути вказані GET, POST, HEAD, PUT, DELETE та інші. Про найбільш поширені з них ми поговоримо трохи пізніше. В якості запитуваної URI найчастіше використовується URL-адресу ресурсу.

   ^ Приклад простого запиту: 
   GET http://phpbook.info/

   Тут GET - це метод доступу, тобто метод, який повинен бути застосований до запитуваного ресурсу, а http://phpbook.info/ - це URL-адреса запитуваного ресурсу.

   Повний запит містить рядок стану, кілька заголовків (заголовок запиту, загальний заголовок або заголовок запису) і, можливо, тіло запиту. Формально загальний вигляд повного запиту можна записати так: 
   <Повний запит>: = <Рядок Стану> 
    (<Загальний заголовок> | <Тема запиту> | 
    <Заголовок змісту>) 
    <Символ нового рядка> 
    [<Зміст запиту>]

   Квадратні дужки тут позначають необов'язкові елементи заголовка, через вертикальну риску перераховані альтернативні варіанти. Елемент <Рядок стану> містить метод запиту та URI ресурсу (як і простий запит) і, крім того, використовувану версію протоколу HTTP. Наприклад, для виклику зовнішньої програми можна задіяти наступний рядок стану: 
   POST http://phpbook.info/cgi-bin/test HTTP/1.0

   У даному випадку використовується метод POST і протокол HTTP версії 1.0.

   В обох формах запиту важливе місце займає URI запитуваного ресурсу. Найчастіше URI використовується у вигляді URL-адреси ресурсу. При зверненні до сервера можна застосовувати як повну форму URL, так і спрощену.

   Повна форма містить тип протоколу доступу, адреса сервера ресурсу та адресу ресурсу на сервері (рис 1).

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

http://www.lib.mdpu.org.ua/e-book/web/lec/lec2_01.png 
   Рис. 1. Повна форма URL




Методи

   Метод повідомляє про мету запиту клієнта. Протокол HTTP підтримує досить багато методів, але реально використовуються тільки три: POST, GET і HEAD. Метод GET дозволяє отримати будь-які дані, ідентифіковані за допомогою URI в запиті ресурсу. Якщо URI вказує на програму, то повертається результат роботи програми, а не її текст (якщо, звичайно, текст не є результат її роботи). Додаткова інформація, необхідна для обробки запиту, вбудовується в сам запит (у рядок статусу). При використанні методу GET у поле тіла ресурсу повертається власне затребувана інформація (текст HTML-документа, наприклад).

   Існує різновид методу GET - умовний GET. Цей метод повідомляє серверу про те, що на запит потрібно відповісти, тільки якщо виконуються умови, що міститься в полі if-Modified-Since заголовка запиту. Якщо говорити більш точно, то тіло ресурсу передається у відповідь на запит, якщо цей ресурс змінювався після дати, зазначеної в if-Modified-Since.

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

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

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




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

   Як передавати дані серверу? Для цього в мові HTML є спеціальна конструкція - форми. Форми призначені для того, щоб отримувати від користувача інформацію. Наприклад, вам потрібно знати логін і пароль користувача для того, щоб визначити, на які сторінки сайту його можна допускати. Або вам необхідні особисті дані користувача, щоб була можливість з ним зв'язатися. Форми якраз і застосовуються для введення такої інформації. У них можна вводити текст або вибирати підходящі варіанти зі списку. Дані, записані у форму, відправляються для обробки спеціальною програмою (наприклад, скрипту на PHP) на сервері. Залежно від введених користувачем даних ця програма може формувати різні web-сторінки, відправляти запити до бази даних, запускати різні додатки і т.п.

   Розберемося з синтаксисом HTML-форм. Можливо, багато хто з ним знайомі, але ми все ж повторимо основні моменти, оскільки це важливо.

   Отже, для створення форми в мові HTML використовується тег FORM. Всередині нього знаходиться одна або декілька команд INPUT. За допомогою атрибутів action і method тега FORM задаються ім'я програми, яка буде обробляти дані форми, і метод запиту, відповідно. Команда INPUT визначає тип і різні характеристики запитуваної інформації. Надсилання даних форми відбувається після натискання кнопки input типу submit. Створимо форму для реєстрації учасників заочної школи програмування. 
   

Форма для реєстрації учасників  
   
 
       відправці запиту буде використаний метод POST -> 
   Ім'я
    value = "Ваше ім'я">
 
   Прізвище

 
   E-mail

 
   
 
   Виберіть курс, який ви б хотіли відвідувати:
 
    PHP
 
    Lisp
 
    Perl
 
    Unix
 
   
Що ви хочете, щоб ми знали про вас?
 
   


Схожі:

Протокол http І способи передачі даних на сервер iconФормат опису модуля
Тср/ІР; основи ір- маршрутизації; якість обслуговування QoS; реалізація сучасних технологій маршрутизації І комутації в продуктах;...
Протокол http І способи передачі даних на сервер iconТип модуля: обов’язковий Семестр: VIII обсяг модуля
Загальні засади побудови комп'ютеризованих систем І мереж передачі даних. Технології локальних мереж (lan). Побудова локальних мереж...
Протокол http І способи передачі даних на сервер iconТип модуля: обов’язковий Семестр: VII обсяг модуля
Загальні засади побудови комп'ютеризованих систем І мереж передачі даних. Технології локальних мереж (lan). Побудова локальних мереж...
Протокол http І способи передачі даних на сервер iconФормат опису модуля
Теорія інформації; Основи збору, передавання та обробки інформації; Системи та мережі передачі даних; Прикладний аналіз даних
Протокол http І способи передачі даних на сервер iconРазработка Web-сервиса на основе php и Mysql
На платформе Microsoft. Net или J2ee web-сервис представляет собой развитый сервер на основе wsdl (Web Service Definition Language),...
Протокол http І способи передачі даних на сервер iconТема : Основні поняття бази даних. Типи даних, що зберігаються в базі даних. Проектування бази даних і створення структури бази даних. Введення і редагування даних
Мета. Ознайомити учнів з основними поняттями бази даних, з типами даних. Формувати навички створення та редагування структури бази...
Протокол http І способи передачі даних на сервер iconПерелік питань для проведення державної підсумкової атестації з інформатики в усній формі. 9 клас
Опишіть поняття про інформацію та способи її подання. Дайте означення даних. Охарактеризуйте різновиди інформаційних повідомлень,...
Протокол http І способи передачі даних на сервер icon1. Назва модуля
Структури баз даних, реляційна модель даних, er-моделі реляцій­них баз даних, нормалізація баз даних, мова структурованих запитів...
Протокол http І способи передачі даних на сервер iconОдеська національна академія зв`язку ім. О. С. Попова кільдішев Віталій Йосипович
Мовірнісно-часові характеристики систем передачі даних при сумісному використанні таймерних сигналів І блокових кодів
Протокол http І способи передачі даних на сервер iconE d u c a t I o n
Програма Education призначена для створення замовлень на виготовлення документів про освіту, студентських та учнівських квитків та...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації