Особенности работы СУБД в WEB


Возможность доступа к БД с помощью Web существенно изменила стратегии доступа к данным из-за того, что:
• Количество пользователей может не только существенно варьироваться, но и изменяться без предупреждения. В обычных клиент/серверных приложениях администраторы могут контролировать число пользователей и возможность их доступа к данным.

• Пользователей физически невозможно определить, они могут, не закрыв одного приложения, подключиться к другому, что не гарантирует правильного отключения от приложения.

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

• Посредником, реализующим доступ от клиента к БД, выступает специальная программа – Web-сервер, обеспечивающая функционирование пользовательского приложения, выполняющего непосредственный запрос к данным и возврат ответа в виде HTML-документа.

Доступ к БД на стороне сервера

Структурная схема доступа

Структурная схема доступа к базе данных

WEB сервер

Фактически Web-сервер включает несколько других серверов, реализующих необходимые протоколы.

Так IIS (Internet Information Services) включает серверы:
• HTTP (Hypertext Transfer Protocol) – протокол передачи гипертекста
• FTP (File Transfer Protocol) – протокол передачи файлов
• NNTP (Network News Transfer Protocol) – сетевой протокол передачи новостей
• SMTP (Simple Mail Transfer Protocol) – простой протокол передачи почты

Механизм доступа

Механизм доступа к БД на стороне сервера реализуется за счет наличия стандартизованных средств:
• Поддержки диалоговых форм на уровне гипертекстового документа (язык HTML – Hypertext markup Language). С каждым документом связан URL (Uniform Recourse Locator), для доступа к которым используется объектно-ориентированный протокол HTTP (Hypertext Transfer Protocol), предложенный в 1990 году.
• Возможности запуска серверных программ, взаимодействие которых происходит через стандартный интерфейс CGI или прикладные интерфейсы Web-сервера.

HTTP протокол

Для поддержки HTTP-протокола в составе Web-сервера имеется HTTP-сервер. HTTP-клиент/серверное взаимодействие состоит из одного обмена запрос/ответ. Это краткая транзакция между клиентом и сервером. Фактически HTTP – это PRC (Remote Procedure Call) в Web поверх TCP/IP. HTTP не имеет состояния, не помнит предыдущих состояний и обладает важным свойством передавать самоописывающиеся данные.

HTTP запрос

1) Структура запроса
HTTP-запрос состоит из:
• Строки запроса (request line)
• Одного или нескольких необязательных полей заголовка (request header fields)
• Необязательного тела (entity body)

2) Строка запроса
Строка запроса состоит из трех текстовых частей, разделенных пробелами.
Первая часть определяет метод (команду), который будет применен к серверному ресурсу. Наиболее общий метод – это GET, который просит сервер послать копию ресурса клиенту.
Вторая часть определяет имя целевого ресурса – URL, состоящего из протокола и имени домена сервера.
Третья часть определяет версию протокола, используемого клиента, например, HTTP/1.0.

3) Поле заголовка
Поле заголовка запроса передает дополнительные данные о запросе и самом клиенте серверу. Каждое поле заголовка состоит из имени с последующим двоеточием и значения поля.

4) Тело запроса и пример
Тело запроса используется клиентом для передачи данных серверу.
GET /path/file.html HTTP/1.0 //метод, ресурс и протокол
Accept: text/html //клиент может работать с текстом
Accept: audio/x //клиент может работать с аудиоданными
User-agent: MacWeb //имя реализации клиента
Название MIME-типа Тип данных
application/msword Файл Microsoft Word
application/pdf Документ Acrobat Reader
application/x-javascript JavaScript-модуль
application/x-shockwave-flash Flash-ролик
audio/mpeg Звук в формате MPEG (MP3, например)
audio/x-pn-realaudio Потоковые аудиоданные в формате Realaudio
image/bmp Точечный рисунок
image/gif GIF-изображение
mage/jpeg JPEG-изображение

HTTP ответ

1) Структура ответа
HTTP-ответ состоит из:
• Строки заголовка (статуса) ответа
• Одной или нескольких необязательных полей ответа
• Необязательного тела ответа

2) Строка заголовка (статус ответа)
Строка заголовка ответа возвращает версию HTTP, статус ответа и объяснение возвращенного статуса.
Версия-HTTP SP Статус-Код SP Фраза-Объяснение

3) Поля заголовка
Поля заголовка ответа возвращают сведения, описывающие атрибуты сервера и возвращенный HTML-документ для клиента и включает имя, двоеточие и значение.

Public | Retry-After | Server | WWW-Authenticate | extension-header

4) Тело ответа и пример
Тело ответа содержит собственно HTML-документ, запрашиваемый клиентом.
HTTP/1.0 200 OK //код 200 – ответ успешный
Server: NCSA/1.3 //имя сервера
Mime_version: 1.0 //Mime версии 1.0
Context_type: text/html //возвращается текст
Context_length: 2000 //возвращается 2000 байт
<HTML>
… //тело ответа
</HTML>

5) Коды ответов
1xx – не используется, 2xx – успешно, 3xx – переадресация, 4xx – ошибка клиента, 5xx – ошибка сервера.

Статус-Код = “200”; OK
=”201” ; Created
=”202” ; Accepted
=”203” ; Provisional Information
=”204” ; No Context
=”300” ; Multiple Choices
=”301” ; Moved Permanently
=”302” ; Moved Temporarily
=”303” ; Method
=”304” ; Not Modified
=”400” ; Bad Request
=”401” ; Unauthorized
=”402” ; Payment Required
=”403” ; Forbidden
=”404” ; Not Found
=”405” ; Method Not Allowed
=”404” ; None Acceptable
=”407” ; Proxy Authentication Required
=”408” ; Request Timeout
=”409” ; Conflict
=”410” ; Gone
=”502” ; Internal Server Error
=”501” ; Not Implemented
=”502” ; Bad Gateway
=”503” ; Service Unavailable
=”504” ; Gateway Timeout


Комментарии запрещены.




Статистика