Програмування на стороні сервера. Протокол HTTP. CGI. Передача параметрів серверу. Запам'ятовування стану. Заходи безпеки. CGI і бази даних
Основні завдання.
Як і більшість акронімів, Common Gateway Interface (CGI - загальний шлюзовий інтерфейс) мало що говорить по суті. Інтерфейс з чим? Де цей шлюз? Про яку спільність мова? Аби відповісти на ці питання, повернемося назад і кинемо погляд на WWW в цілому.
Тім Бернерс-Лі, фізик, що працював в CERN, придумав Web в 1990 році, хоча план виник ще в 1988. Ідея полягала в тому, аби дати можливість легко і швидко обмінюватися мультимедійними даними - текстом, зображеннями і звуком - через інтернет. WWW складалася з трьох основних частин: HTML, URL і HTTP. HTML - мова форматування, використовувана для представлення вмісту в Web. URL - це адреса, використовувана для здобуття вмісту у форматі HTML (або якому-небудь іншому) з веб-сервера. HTTP - це мова, яка зрозуміла веб-серверу і дозволяє клієнтам запрошувати в сервера документи.
Протокол HTTP.
Робота по протоколу HTTP відбувається таким чином: програма-клієнт встановлює TCP-з’єднання з сервером (стандартний номер порту-80) і видає йому HTTP-запрос. Сервер обробляє цей запит і видає HTTP-відповідь клієнтові.
Структура HTTP-запиту.HTTP-запит складається із заголовка запиту і тіла запиту, розділених порожнім рядком. Тіло запиту може бути відсутнім. Заголовок запиту складається з головного (першою) рядка запиту і подальших рядків, що уточнюють запит в головному рядку. Подальші рядки також можуть бути відсутніми. Запит в головному рядку складається з трьох частин, розділених пропусками:
1. Метод (інакше кажучи, команда HTTP):
· GET - запит документа. Метод, що найбільш часто вживається; у HTTP/0.9, говорять, він був єдиним.
· HEAD - запит заголовку документа. Відрізняється від GET тим, що видається лише заголовок запиту з інформацією про документ. Сам документ не видається.
· POST - цей метод застосовується для передачі даних CGI-скриптам. Самі дані слідують в подальших рядках запиту у вигляді параметрів.
· PUT - розмістити документ на сервері. Використовується рідко. Запит з цим методом має тіло, в якому передається сам документ.
2. Ресурс - це шлях до певного файлу на сервері, який клієнт хоче отримати (або розмістити - для методу PUT). Якщо ресурс - просто який-небудь файл для прочитування, сервер повинен по цьому запиту видати його в тілі відповіді. Якщо ж це шлях до якого-небудь CGI-скрипту, то сервер запускає скрипт і повертає результат його виконання. До речі, завдяки такій уніфікації ресурсів для клієнта практично байдуже, що він є на сервері.
3. Версія протоколу - версія протоколу HTTP, з якою працює клієнтська програма.
Таким чином, простий HTTP-запрос може виглядати таким чином:
GET / HTTP/1.0 - запрошується кореневий файл з кореневої директорії web-сервера.
Рядки після головного рядка запиту мають наступний формат: Параметр: значення.
Таким чином задаються параметри запиту. Це є необов'язковим, всі рядки після головного рядка запиту можуть бути відсутніми; в цьому випадку сервер набуває їх значення за замовчуванням або за результатами попереднього запиту (при роботі в режимі Keep-Alive).
Перерахуємо деякі найбільш вживані параметри HTTP-запиту:
§ Connection (з'єднання) - може приймати значення Keep-Alive і close.
§ Keep-Alive ("залишити в живих") означає, що після видачі даного документа з'єднання з сервером не розривається, і можна видавати ще запити. Більшість браузерів працюють саме в режимі Keep-Alive, оскільки він дозволяє за одне з'єднання з сервером "викачати" HTML-сторінку і малюнки до неї. Будучи одного дня встановленим, режим Keep-Alive зберігається до першої помилки або до явної вказівки в черговому запиті Connection: close.
§ close ("закрити") - з'єднання закривається після відповіді на даний запит.
§ User-Agent - значенням є "кодове позначення" браузеру, наприклад: Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; DigExt)
§ Accept - список підтримуваних браузером типів вмісту в порядку їх переваги даним браузером, наприклад, для IE5: Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*. Значення цього параметра використовується в основному CGI-скриптами для формування відповіді, адаптованої для даного браузеру.
§ Referer - URL, з якого перейшли на цей ресурс.
§ Host - ім'я хоста, з якого запрошується ресурс. Корисно, якщо на сервері є декілька віртуальних серверів під одною IP-адресою. В цьому випадку ім'я віртуального сервера визначається по цьому полю.
§ Accept-Language - підтримувана мова. Має значення для сервера, який може видавати один і той же документ в різних мовних версіях.
Дата добавления: 2016-04-02; просмотров: 809;