Автор работы: Пользователь скрыл имя, 18 Октября 2013 в 13:11, курс лекций
1. Особенности программирования для Web. Различия в программировании на стороне клиента и сервера. Инструменты и технологии программирования.
Есть два типа программирования в веб-приложениях: на стороне клиента и на стороне сервера.
Программирование на стороне клиента означает использование языка программирования, который будет выполняться в веб-браузере пользователя. Стандартным языком программирования на стороне клиента, на сегодняшний день, является JavaScript. JavaScript может быть включён в отдельные текстовые файлы, на которые ссылаются файлы HTML, или же вы можете вставить его прямо в HTML в специальные теги HTML — script теги. Когда веб-браузер пользователя встречает эти теги, он выполняет код JavaScript, содержащийся либо в тегах, либо в файлах.
1. Особенности программирования
для Web. Различия в программировании
на стороне клиента и сервера.
Инструменты и технологии
Есть два типа программирования в веб-приложениях: на стороне клиента и на стороне сервера.
Программирование на стороне клиента
означает использование языка
Программирование на стороне клиента имеет некоторые ограничения, потому что код, который исполняется веб-браузером не имеет прямого доступа к базе данных или файлам на сервере. Программирование на стороне клиента также может иметь ограничения производительности, так как не все компьютеры пользователей одинаково мощные, а веб-браузеры, в свою очередь, имеют разную производительность.
Другие примеры
Программирование на стороне сервера,
говорит само за себя. На веб-сервере
размещаются файлы программ, которые
могут быть им исполнены. Запуск и
работа программы происходит после
того, как пользователь послал запрос
серверу, используя URL и перед тем,
как программное обеспечение
веб-сервера отправляет HTML страницу
обратно в веб-браузер
Существует множество средств,
которые делают возможным или
упрощают программирования на стороне
сервера. Чтобы они заработали, на
сервере требуется установить дополнительное
программное обеспечение. Часто
веб-приложение использует дополнительное
программное обеспечение в
Примером языка
Когда пользователь обращается к PHP-ресурсу, используя свой браузер, программное обеспечение сервера находит файл PHP в файловой системе веб-сервера. Затем интерпретатор выполняет PHP-скрипт, при этом обычно генерирует HTML-страницу, которая будет отправлена обратно в веб-браузер пользователя. Если же пользователь в ответ получает код PHP, это значит что интерпретатор не сработал — его либо нет на сервере, либо он настроен неправильно.
Вы можете использовать многие другие технологии и языки программирования для создания серверных веб-приложений. Например JavaServer Pages, Python, ASP.NET или Ruby.
2. Понятие Web-приложения. Типы, классификация, требования.
Веб-приложение — это веб система, позволяющая пользователю реализовать доступ к бизнес-логике через интернет с использованием веб-браузера. Такая система рассматривается как набор узлов с перекрестными ссылками. Программа состоит из нескольких логических частей, которые связаны между собой.
Типы веб-приложений
1. CGI приложения — приложения, работающие
на сервере и передающие
2. Веб-сервисы — программы или
программные модули, вызываемые
через интернет. Отличие в том,
что веб-сервис возвращает на
сторону клиента конкретный
3. Локальные приложения с
4. Одноранговые приложения —
автономные программы,
Классификация веб-приложений
1. По степени связанности (
Степень связанности — это степень, в которой каждый из компонентов зависит от других модулей системы.
1.1. Слабо связанные приложения.
Компоненты взаимодействуют
1.2. Сильно связанные приложения.
Работа одних компонентов
2. По количеству логических
2.1. Монолитные приложения. Реализованы все три уровня;
2.2. Двухуровневые приложения. БД
— отдельный уровень.
2.3. Многоуровневые приложения. Как
правило трехуровневые. Бизнес
логика выносится в отдельный
уровень. Клиент остается на
клиентской части с
3. По виду предоставляемой
3.1. Статические приложения. Содержат неизменяемое наполнение;
3.2. Динамические приложения. Содержат изменяемое наполнение.
Требования к веб-приложениям
От степени соответствия требованиям зависит качество веб-приложения.
Функциональные требования определяют функциональность системы, которую разработчики должны построить, чтобы пользователи могли выполнять свои задачи в рамках своих бизнес-процессов.
1. Надежность — свойство
2. Быстродействие — среднее время обработки запроса;
3. Безопасность — приложение должно отвечать требованиям безопасности;
4. Масштабируемость —
3. Понятие Web-сервера и Web-клинета. Протокол HTTP. Структура запросов и ответов.
Веб-сервер — сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, обычно вместе с HTML-страницей, изображением, файлом или другими данными.
Веб-сервером называют как программное обеспечение, выполняющее функции веб-сервера, так и непосредственно компьютер, на котором это программное обеспечение работает.
Клиент, которым обычно является веб-браузер, передаёт веб-серверу запросы на получение ресурсов, обозначенных URL-адресами. В ответ веб-сервер передаёт клиенту запрошенные данные. Этот обмен происходит по протоколу HTTP.
Клиент — аппаратный или программный компонент вычислительной системы, посылающий запросы серверу.
HTTP — протокол прикладного уровня передачи данных. HTTP для получения информации с веб-сайтов.
Обмен сообщениями идёт по обыкновенной схеме «запрос-ответ». В отличие от многих других протоколов, HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами «запрос-ответ». Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами (например, «куки» на стороне клиента, «сессии» на стороне сервера).
«Заголовок» = «Метод» «URL»
«Версия протокола»
«Пустая строка»
«Тело запроса» = [Параметр:Значение]...[,
Параметр:Значение]
Параметы:
• connection — сохранять или не сохранять связь
между запросами;
• useragent — информация о браузере клиента;
• referer — URL страницы, с которой была произведена
отправка запроса.
«Заголовок» = «Версия протокола»
«Кодовое обозначение успешности выполнения
запроса» «Расшифровка кода»
«Пустая строка»
«Тело ответа» = [Параметр:Значение]...[,
Параметр:Значение]
Параметры:
• content-type — тип передаваемого содержимого (text/html,
image/jpeg, image/gif и др.);
• content-length — длина содержимого (количество символов).
4. CGI. Способы передачи данных. Запоминание состояния.
Command Gateway Interface — набор правил, при помощи которых программы на сервере могут передавать данные клиентам при помощи веб-сервера.
Клиент - Веб-сервер - CGI-приложение
1. Использование переменных
2. Использование командной строки;
3. Использование стандартных устройств
ввода;
4. Использование стандартных устройств
вывода.
Веб-сервер всегда передает переменные
окружения. Сервер, получая информацию
в виде HTTP-запроса, формирует переменные
окружения. Переменных окружения достаточно
много. Некоторые из них:
• USER_AGENT — информация о браузере;
• CONTENT_LENGTH — количество символов в теле запроса;
• CONTENT_TYPE — тип содержимого;
• QUERY_STRING — параметры метода GET;
• REMOTE_ADDR — IP-адрес клиента;
• REMOTE_HOST — имя хоста;
• REQUEST_METHOD — метод (GET/POST);
Используется гораздо реже, поскольку менее удобна. Использует переменную окружения QUERY_STRING.
Используется чаще всего при методе POST. В случае метода POST тип данных и их количество помещаются в переменные CONTENT_TYPE и CONTENT_LENGTH, и эти данные передаются сервером на стандартные устройства ввода CGI-программы.
Любые данные, которые программа посылает на устройства вывода читаются веб-сервером и пересылаются клиентом. При этом эти данные должны содержать структуру HTTP-ответа.
CGI-скриптов является
Существует несколько методов
сохранения состояния:
• cookies - сохранение на компьютере клиента;
• скрытые поля - сохранение внутри формы, посылаемой
клиенту;
• сохранение в файле какого-либо формата
на сервере;
• сохранение в параллельно работающей
базе данных.
5. Технологии ActiveX. Общая характеристика. Сферы использования.
Элементы управления ActiveX — самостоятельные программные компоненты, которые можно использовать в разрабатываемых приложениях для реализации необходимых функциональных возможностей.
Delphi поддерживает использование компонентов объектов ActiveX в своих приложениях.
Объекты ActiveX создаются с использованием технологии COM (Component Object Model). Они не являются самостоятельными приложениями, выполняются только в приложениях, позволяющих встраивать ActiveX, являясь для них контейнером.
Технология COM позволяет использовать объекты со своими свойствами, методами и событиями, которые создаются не во время выполнения программы, а существуют в виде отдельных программных единиц, которые называются компонентами. При включении компонентов в разрабатываемую программу он раскрывает свои свойства и методы, которые можно использовать из вашей программы.
Для реализации какой-либо функциональности с помощью ActiveX можно разрабатывать свои, либо уже готовые компоненты.
Для подключения объекта ActiveX используется следующий код:
<object classid="clsid:XXXXXXXX-XXXX-
ActiveX используются не только
в веб-приложениях, но и как
структурные единицы при
Многие приложения для Microsoft Windows, включая такие, как Internet Explorer, Microsoft Office, Microsoft Visual Studio, Windows Media Player.
Технология ActiveX — средство, при помощи которого Internet Explorer (IE) использует другие приложения внутри себя. С помощью ActiveX IE загружает Windows Media Player, Quicktime и другие приложения, которые могут воспроизводить файлы, внедрённые в веб-страницы. Элементы управления ActiveX активизируются при щелчке по такому объекту на веб-странице, например, .WMV-файлу, чтобы загрузить его для отображения в окне браузера Internet Explorer.
6. Технология Java. Общая характеристика. Сферы использования.
Включает в себя язык программирования и платформу.
Объектно-ориентированный
Интерпретатор Java — приложение, предназначенное для конкретной аппаратно-программной платформы (Windows, Linux и др.). Обеспечивает архитектурную независимость и переносимость программ на этом языке программирования.