Сторінки у веб-технології форматуються з використанням HTML-розмітки. Для введення даних через робоче вікно браузера або через HTML-документ у 1991 році фахівцями NCSA були розроблені та реалізовані дві взаємопов'язані специфікації: HTML-форми та CGI.
Форми зробили справжню революцію в HTML-розмітці: автори документів отримали можливість створювати складні шаблони введення інформації в рамках HTML-сторінки, користувачі - ці шаблони заповнювати. При цьому автори форм опиралися на властивості HTTP-протоколу та універсальний локатор ресурсів URL з урахуванням того, що при HTTP-обміні можна використовувати різні методи доступу до ресурсів. Це дозволило зробити механізм інтерпретації форм розширюваним і легко пристосовуваним до подальшого розвитку веб-технології. Таким чином, окрім HTTP, можна було використовувати й інші протоколи, наприклад, mailto.
CGI (Common Gateway Interface) - це специфікація обміну даними між прикладною програмою, що виконується за запитом користувача, і HTTP-сервером, який дану програму запускає. До появи CGI нові функції потрібно було впроваджувати безпосередньо у сервер.
Обмін даними у веб-технології поділяється відповідно до типів методів доступу протоколу HTTP і видів запитів у специфікації CGI.
Види запитів CGI поділяють на два основних MIME-типи:
· application/x-www-form–urlencoded
· multipart/form-data.
Другий тип запиту спеціально створений для передачі великих зовнішніх файлів.
Основних методів доступу два: GET і POST. Крім них часто використовуються HEAD і PUT.
Цю класифікацію можна представити у вигляді таблиці:
Метод
| Клієнт à Сервер
| Клієнт ß Сервер
|
GET
| За замовчуванням
| Тільки HTTP-заголовок
| HTTP-заголовок і сторінка як тіло HTTP-повідомлення
|
isindex
| Тільки HTTP-заголовок (список ключових слів включений в URL; слова розділені символом "+"; кодування кирилиці не підтримується)
| HTTP-заголовок і сторінка як тіло HTTP- повідомлення
|
form-urlencoded
| Тільки HTTP-заголовок (дані з форми включені в URL сторінки; підтримується кодування спеціальних символів і кирилиці)
| HTTP-заголовок і сторінка як тіло HTTP- повідомлення
|
POST
| form-urlencoded
| Тільки HTTP-заголовок (дані з форми включені в URL сторінки; підтримується кодування спеціальних символів і кирилиці)
| HTTP-заголовок і сторінка як тіло HTTP- повідомлення
|
form-data
| HTTP-заголовок і складене тіло HTTP-повідомлення. Перша частина тіла - дані з форми, для яких виробляється кодування, друга частина тіла - приєднаний файл.
| HTTP-заголовок і сторінка як тіло HTTP- повідомлення
|
PUT
| HTTP - заголовок і документ, як тіло HTTP - повідомлення
| HTTP-заголовок. Як тіло можна передати коментар до коду повернення
|
HEAD
| HTTP -заголовок
| HTTP-заголовок
|
При реалізації нестандартних методів доступу, наприклад, DELETE, можуть бути дещо інші комбінації змісту відгуків і відповідей.