8. Программирование в web: доступ к бд на стороне клиента.
При разработке прикладных программ, работающих с БД на серверах используют 2 метода доступа к БД:
Доступ к БД на стороне сервера.
Доступ к БД на стороне клиента.
Эту возможность обеспечивает применение java-технологий. Получив доступ к документу, который содержит ссылки на апплеты, клиент запрашивает у web-серверов все коды этого апплета.
Эти коды м. начать выполняться сразу после размещения на компьютере-клиенте или же быть активизированными после выполнения специальных команд. Т.к. апплет представляет собой java-программу, то он м.б. специализирован для работы с внешними БД.
Для взаимодействия java-программ с внешним сервером БД разрешен спец. протокол JDBC, который фактически сочетает в себе функции шлюзования между интерпретатором java-кодов и ODBC.
Использование cgi-скриптов на стороне сервера позволяет иметь на стороне клиента сравнительно простые программы просмотра, т.к. вся логика работы с БД, обработка БД переходит на сторону web-сервера.
Разгрузку клиента от логики приложения называют решением проблемы толстого клиента. Т.е мы имеем предельно тонкого клиента при утолщении web-сервера.
При этом, если необходимо подключить новые cgi-скрипты, то требуется модификация кода сервера, но для включения нового апплета требуется лишь перекомпилировать код результирующего html-документа.
При этом web-сервер трогать не нужно, но в этом случае клиент д.б. достаточно толстым, чтобы в нужное время справиться с интерпретацией всех кодов апплета.
2 метода:
1. Query_String
2. Path_Info
Данные два метода помещают передаваемые данные за именем cgi-проги
3. Get
4. Post
Они указываются непосредственно в файле html как атрибут тега форм.
Query_String – простой метод передачи данных cgi-скрипта. Если к URL добавить знак ?, а после него указать данные, то они будут переданы в переменные окружения qustr. Например http://localhost/1.exe?param Используя qustr в url или ссылки можно передавать данные в скрипт без формы. Если в форме указывается метод get, то все данные из формы будут преобразованы в qustr и будут передаваться скрипту.
Недостатки qustr и метода get:
Ограничение на длину;
URL включающие qustr попадает в журнальные файлы доступа, которые ведут большинство серверов, в них фиксируется запрос к серверу и его ответ.
Прежде чем запустить скрипт, пользователь должен заполнить форму html. Данные формы состоят из отдельных элементов, каждый из которых имеет свое имя и значение. Броузер упаковывает данные формы, используя следующие правила:
Все передаваемые данные из формы объединяются в 1 строку парами вида: name=value; разделитель пар - знак &
Любые пробелы, встречающиеся в имени или значении, заменяются знаком «+». Это обусловлено тем, что URL не может содержать пробелы
Все др знаки, встречающиеся в имени или значении заменяются на $, за которым следует 2ух…16ричный код ascii заменяемого символа.
Path_Info в URL следует за именем скрипта, нач. с /, который показывает web-серверу, где заканчивается имя скрипта. http://localhost/1.exe/param.txt
Path_Info содержит некоторый логический путь к какому-либо файлу. Можно одновременно передавать path_info и qustr, но надо помнить, что первым передается Path_Info, а затем qustr, иначе qustr может поглотить Path_Info и передать как параметр.
Недостатки Path_Info:
Ограничение на длину
Фиксирование в журналах данных
Данный метод автоматически не кодируется в URL как qustr.
