Закрытие соединение с Web-сервером закрывается.

Отклик Web-сервер посылает клиенту ответ (HTMl-документ).

Запрос клиент посылает Web-серверу сообщение-запрос.

 

Протокол HTTP является протоколом, не запоминающем состояния, т.е. каждое подключение закрывается сразу же после того, как сервер отправит ответ клиенту. Таким образом, Web-сервер не запоминает никаких сведений о предыдущих запросах. Для большинства приложений свойство отсутствия запоминания состояния является достоинством, поскольку при этом клиенты и серверы могут иметь простую логику и работать со "скромными" ресурсами без привлечения дополнительной оперативной и дисковой памяти для хранения информации о предыдущих запросах. К сожалению, присущее данному протоколу свойство отсутствия запоминания состояния затрудняет поддержку концепции сеанса, которая является базовым элементом понятия транзакции в СУБД. С целью компенсации этого недостатка протокола HTTP предлагались самые разные схемы, например возврат клиентом Web-страниц со скрытыми полями, содержащими указатели транзакций, а также использование Web-форм, в которых вся информация вводилась локально, а затем пересылалась на сервер в пределах одной транзакции. Все эти схемы могут применяться для поддержки ограниченного круга приложений и требуют специальных расширений Web-сервера.

В протоколе HTTP задан набор команд-транзакций, передающийся посредством строк текста в формате ASCII. Программа-клиент устанавливает TCP-соединение с официальным портом HTTP (80) на удаленном компьютере.

В большинстве случаев клиент HTTP запрашивает сервер HTTP послать файл с гипертекстом (файл типа HTML) или файл с гипермедиа (например, изображение, видео, звук или файл с мультипликацией). В большинстве случаев ответ сервера состоит из передачи запрошенного файла потоком байтов в локальный порт протокола клиента.

 

•универсальный интерфейс шлюзов CGI -Common Gateway Interface – стандартный интерфейс обмена данными.

Спецификация CGI предложена группой NCSA (Национальный Центр Суперкомпьютерных приложений). CGI - спецификация на передачу информации между Web-сервером и CGI-программой. Интерфейс CGI был специально разработан для расширения возможностей WWW за счет подключения всевозможного внешнего программного обеспечения. Такой подход логично продолжал принцип публичности и простоты разработки и наращивания возможностей WWW. Если команда CERN предложила простой и быстрый способ разработки баз данных, то NCSA развила этот принцип на разработку программных средств.

Надо отметить, что в общедоступной библиотеке CERN были модули, позволяющие программистам подключать свои программы к серверу HTTP, но это требовало использования этой библиотеки. Предложенный и описанный в CGI способ подключения не требовал дополнительных библиотек и буквально ошеломлял своей простотой. Сервер взаимодействовал с программами через стандартные потоки ввода/вывода, что упрощает программирование до предела. Методы доступа, описанные в протоколе HTTP, заняли чрезвычайно важное место при реализации CGI.

Для отображения запрашиваемого документа Web-браузеру нужно знать о нем совсем немного. После отправки требуемого URL-адреса Web-браузер попросту отображает полученный ответ таким, каким он есть. Для того чтобы браузер попросту смог отличить одни полученные компоненты от других, сервер предоставляет специальные коды, присваиваемые отдельным элементам сообщения на основе спецификации MIME (Multipurpose Internet Mail Extensions). Это, в частности позволяет браузеру установить, что данный файл является графическим и его следует отобразить на экране, а другой файл является архивным и его следует (в случае необходимости) сохранить на диске.

Сервер умеет посылать документы клиенту и информировать браузер об их типах. Кроме того, сервер знает, как запускать другие программы. Если сервер распознает, что поступивший URL-адрес указывает на некоторую программу, которую называют сценарием (script), то в таком случае он посылает браузеру результат выполнения этого сценария, представленный в виде содержимого некоторого файла. CGI-сценарием называются любой сценарий, который может принимать и передавать данные в соответствии с спецификацией CGI. Таким образом, CGI- сценарий может повсеместно использоваться для предоставления информации, независимо от типа конкретного сервера.