Сервис WWW работает по технологии клиент-сервер.

Сервер

Веб-сервер – это программное обеспечение, установленное на компьютере, при помощи которого по протоколу HTTP предоставляется доступ к веб-страницам. Наиболее распространенными веб-серверами являются Apache, работающий на платформе Unix/Linux и IIS (Internet Information Service), работающий под управлением Windows. Также веб-сервером называется и сам компьютер, на котором установлено это программное обеспечение и хранятся файлы веб-сайтов. Для защиты сервера от атак и взлома обычно устанавливается межсетевой экран и соответсвующее програмное обеспечение.

Функции сервера:

  • на сервере хранятся различные ресурсы (например веб-страницы)
  • для каждого ресурса устанавливаются права доступа
  • сервер обрабатывает запросы клиентов, которым необходим тот или иной ресурс
  • сервер осуществляет обмен информацией с клиентами и другими серверами

Клиент

В качестве клиента используется браузер. Наиболее распространенными браузерами являются Internet Explorer (www.microsoft.com), FireFox (www.mozilla.org), Opera (www.opera.com).

Функции клиента:

  • браузер осуществляет запрос требуемого ресурса
  • браузер обрабатывает полученный ресурс 

 

web-сервер←(передача веб-страницы)Клиент-Браузер→(запрос)DNS-сервер→(ответ)→Клиент+браузер


Схема доступа клиента (браузера) к веб сайту

  • в строке адреса браузера набирается адрес сайта, на который хочет попасть пользователь (например http://www.eucp.com )
  • браузер отправляет запрос специальному компьютеру, которые носит название DNS-сервер (Domain Name System)
  • DNS-сервер преобразует набранный адрес в числовой (IP-адрес) адрес сервера, на котором расположен сайт (например 212.147.139.162) и возвращает его браузеру
  • браузер отправляет запрос на полученный адрес и в ответ получает запрашиваемый ресурс
  • после того, как ресурс передан, соединение между клиентом и сервером разрывается

 

  1. независимо от того, один вызов клиентской библиотеки выполняет запрос, или несколько, gds32.dll всегда начинает с Prepare. Prepare означает отправку запроса на сервер. При этом сервер
    • проверяет синтаксическую корректность запроса
    • проверяет наличие всех объектов, указанных в запросе, и права доступа к ним.
    • формирует список возвращаемых столбцов и параметров (если таковые есть)
    • передает клиенту результат prepare (ok, error), и списки столбцов и параметров (если есть)
      после выполнения prepare от сервера можно получить план запроса - для примера см. код IBX.
  2. Раз запрос корректен, и вся информация для получения данных, возвращаемых запросом, получена от сервера, запрос можно выполнить. Вызывается Execute. Собственно, только в этот момент сервер начинает выполнять запрос.
    На данном этапе, пока запрос не выполнится целиком, клиент не получит никакого сообщения. Под "выполнением" запроса означает готовность сервера к выдаче первой записи, возвращаемой запросом, или успешного/неуспешного выполнения запроса (например выполнение операторов ddl или процедур, не возвращающих результат, а также update, insert, delete).
    Время выполнения запроса зависит от метода его обработки на сервере. Если это прямое считывание данных с диска (в натуральном порядке или по индексу), то ответ сервера на Execute придет быстро. Если это группировка или сортировка без использования индекса, то чем больше обрабатывается данных, тем дольше будет выполняться запрос.
  3. Запрос выполнен, и теперь клиент может начать получать записи (если они есть). Для этого клиент вызывает функцию Fetch. С точки зрения клиента (и приложения) Fetch - это получение одной записи. Но сервер всегда (кроме select for update) передает клиенту целый пакет записей. Поэтому первый Fetch приводит к получению пакета записей, а очередные Fetch - к выборке из полученного пакета (фактически буфера) до тех пор, пока записи в пакете не кончатся.
  4. Если в момент очередного Fetch клиент вместо данных записи получает EOF (End Of File), то значит на сервере данные кончились, и запрос можно закрыть.

 

 

eTXT