
- •Минск, бгу,
- •Глава 1. Компьютерные сети и протоколы
- •Глава 2. Проектирование и разработка сайтов……………………….62
- •Глава 3. Краткий обзор основных технологий разработки Веб приложений…………………………………………………………..……......90
- •Глава 4. Информационный обмен, html и css.…..……………….132
- •Глава 5. Язык JavaScript………………………………………………..202
- •Глава 6. Язык серверных скриптов php…………...…………………286
- •Глава 7. Лабораторные работы……………………..………………….400
- •Введение Коротко об истории Интернет
- •Как работает Интернет?
- •Система адресации
- •Способы подключения к сети
- •Сервисы Интернет
- •Электронная почта
- •Передача файлов по ftp
- •Всемирная паутина www
- •Глава 1. Компьютерные сети и протоколы
- •Локальные сети
- •Распределенные и глобальные сети
- •Сеть vpn
- •Адресация в локальных сетях
- •Адресация в глобальных сетях и в Интернет
- •Адресация в iPv6
- •Доменные имена
- •Url адреса
- •Понятие и краткое описание протоколов
- •Соотношение между tcp/ip и osi/iso
- •Межсетевой протокол iPv4
- •Формат пакета iPv6
- •Формат заголовка пакета iPv6
- •Заголовки расширения iPv6
- •Маршрутный заголовок
- •Транспортный протокол tcp
- •Протокол дейтаграмм udp
- •Протоколы arp и rarp
- •Протоколы сетевого уровня
- •Протоколы электронной почты
- •Протоколы smtp и pop3
- •Протокол imap4
- •Протокол ftp
- •Протокол передачи гипертекстов
- •Клиентский запрос http
- •Ответ сервера
- •Развитие прикладных протоколов: rpc, rest, soap
- •Безопасность в сети
- •Протокол ssl
- •Шифрование данных
- •Установление подлинности участников
- •Реализация ssl
- •Как избежать блокирования сайтов
- •Проблемы с кодировкой и Unicode
- •Задания для подготовки рефератов
- •Адресация в iPv6.
- •Глава 2. Проектирование и разработка сайтов
- •2.1. Виды сайтов
- •2.2. Этапы проектирования и разработки сайта
- •2.3. Модели проектирования и управление проектами
- •2.3.1 Модель водопада для управления проектами
- •2.3.2 Итерационная (спиральная) модель
- •2.3.3 Технология Microsoft Solutions Framework (msf)
- •2.3.4 Другие технологии управления проектами
- •2.4. Программные средства управления проектами
- •2.5.1. Стили сайтов
- •2.6. Логическое проектирование дизайна сайта
- •2.7. Главная страница сайта
- •2.8. Внутренние страницы сайта
- •2.9. Оценки качества Веб-сайтов
- •2.9.1. Оценки качества для e-commerce
- •2.9.2. Ключевые индикаторы для e-commerce
- •2.9.3. Определение качества и рейтинга сайтов учебных заведений
- •2.9.4. Оценка качества и стоимости сайта
- •Глава 3. Краткий обзор основных технологий разработки Веб-приложений
- •3.1. Язык разметки гипертекста xml
- •3.1.1. Синтаксис xml
- •Объявление xml. Первая строка xml-документа называется объявление xml.
- •Конструкции языка xml. Повторим еще раз содержимое xml-документа: набор элементов, секций cdata, директив анализатора, комментариев, спецсимволов, текстовых данных.
- •3.1.2. Правильно построенные и действительные документы xml
- •Отображение xml-документа. Наиболее распространены три способа преобразования xml-документа в отображаемый для пользователя вид:
- •3.3. Язык ActionScript
- •3.3.1. Видео-, аудиопроигрыватели
- •3.5. Технология «клиент-сервер»
- •3.6. Программирование для серверов
- •Язык Java на клиентской и серверной странице
- •3.7. Базы данных и язык sql
- •Нормализация модели данных
- •3.8. Язык sql
- •Команды управления транзакциями
- •Извлечение данных, команда select
- •Секция where. Директива where содержит условия отбора (предикат). Синтаксис where выглядит следующим образом:
- •Групповые функции. Если нас интересуют не строки таблицы, а некоторые итоги, мы можем использовать в процессе выборки колонок таблиц групповые функции (табл. 3.5.).
- •Команда insert. Добавление новых записей в таблицу осуществляется посредством команды insert. Она имеет следующий синтаксис:
- •Глава 4. Информационной обмен, нтмl и css
- •4.1. Язык разметки гипертекста html
- •4.2. Ссылки
- •4.3. Списки
- •4.3. Формы html
- •4.2.2. Новые элементы форм html5
- •4.2.3. Новые возможности html5
- •Поддержка аудио
- •Поддержка видео
- •4.3. Каскадные таблицы стилей css
- •4.3.1. Способы включения каскадных таблиц стилей
- •Заголовок 1 Заголовок 2 Заголовок 3
- •4.4. Цвет и фон
- •Свойства таблиц
- •4.5. Псевдоклассы
- •Псевдоэлементы
- •4.5.1. Форматирование псевдоклассов и псевдоэлементов
- •Различные свойства
- •Отступы, поля, позиционирование
- •Границы элементов
- •Новое в css3
- •Глава 5. Язык JavaScript
- •5.1. Включение скриптов JavaScript в html-код
- •Создание простых сценариев
- •Комментарии.
- •Отладка скриптов. Ввод и вывод данных
- •5.2. Описание языка
- •5.2.1. Типы данных
- •Преобразование типа
- •5.2.2 Операторы и выражения
- •Оператор присваивания
- •Арифметические операторы
- •Операторы сравнения
- •Оператор with
- •Оператор switch
- •5.3. Функции
- •5.3.1. Стандартные функции.
- •Eval() : позволяет выполнить строку, содержащую выражение, как javascript-код. Это полезно когда код формируется в ходе выполнения скрипта. Пример реализации простейшего калькулятора приведен ниже:
- •5.3.2. Функции пользователя
- •5.3.3. Передача параметров по значению и по ссылке
- •5.3.4. Глобальные и локальные переменные
- •5.3.5. Модель событий
- •Ключевое слово this
- •5.3.6. Модель событий JavaScript 1.2 и объект Event.
- •5.4. Объектная модель
- •5.4.1. Пользовательские объекты
- •5.4.2. Прототипы
- •5.4.3. Исключения: throw/catch/finally
- •5.4.4. Встроенные объекты String, Array, Date, Math Объект String. Экземпляр объекта можно объявить двумя способами:
- •Объект Array
- •Объект Date (Дата)
- •Методы объекта Date
- •5.5.1. Коллекции
- •Свойства элемента innerHtml и outerHtml
- •Навигация по дереву документа
- •Создание новых узлов
- •Удаление и замена узлов в документе
- •Объект window
- •Свойства окна, передаваемые методу open()
- •Методы объекта window
- •Свойства и методы объекта navigator
- •Свойства и методы объекта history
- •Свойства и методы объекта location
- •Объект layer
- •Каскадные таблицы стилей и объект style
- •Модель ajax:
- •5.6.1 Класс xmlHttpRequest
- •Использование dom
- •Работа с cookie
- •5.7.2. Манипуляции с dom
- •5.5.3. Блочная верстка
- •5.7.3. Обработка событий
- •5.7.3. Обработка событий
- •5.8. Примеры на JavaScript
- •Глава 6. Язык серверных скриптов php
- •Инструменты для разработки
- •Как php работает
- •Описание языка Типы данных
- •Массивы и инициализация массивов
- •Операции и выражения
- •Операции сравнения
- •Логические операции
- •Строковые операции
- •Операторы управления
- •Функции
- •Рекурсивные функции
- •Область действия и время жизни переменных
- •Изменяемые (динамические) переменные
- •Внешние библиотечные функции
- •Функции для работы с массивами
- •Функции для работы со строками.
- •Функции форматных преобразований строк
- •Преобразование строк и файлов к формату html и наоборот
- •Преобразование html в простой текст
- •Установка локальных настроек
- •Регулярные выражения
- •Функции даты и времени
- •Математические функции
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и журнал error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из бд
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Организации работы с данными
- •Передача данных от клиента к серверу и обратно. Протокол http
- •Клиентские методы http
- •Обработка html-форм
- •Передача переменных из формы в скрипт.
- •Передача данных на сервер по методам get и post
- •Ввод данных из различных форм
- •Работа с e-mail
- •Cookies-наборы
- •Сессии (Сеансы)
- •Отмена регистрации сеансовых переменных
- •Сериализация объектов
- •Вывод графических данных с помощью рнр
- •Получение информации об изображении
- •Функции рисования прямых и кривых линий
- •Заливка изображений
- •Удаление и изменение цветов палитры
- •Создание прозрачности в изображениях
- •Рисование с помощью кистей
- •Использование шрифтов и вывод строк
- •Слияние изображений с помощью gd
- •Глава 7. Лабораторные работы Лабораторная работа 1 (4 часа). Инструменты и средства создания простых сайтов
- •Лабораторная работа 3 (4часа). Применение каскадных таблиц стилей css
- •Трехколоночный контейнерный макет сайта
- •Лабораторная работа 4. Применение каскадных таблиц стилей css
- •1. Свойства шрифтов.
- •2. Свойства текста.
- •3. Свойства цвета и фона.
- •4. Свойства рамки.
- •5. Свойства списков.
- •6. Свойства изображений.
- •Лабораторная работа 5 (4 часа). Динамика и JavaScript на Веб – странице.
- •Ответить на следующие вопросы
- •Лабораторная работа 6 по JavaScript (4 часа).
- •1.Проверка правильности заполнения формы на сайте
- •Методы объекта window
- •Задание 2. Функции
- •Задание 4. Работа с базами данных Выполнить одно из перечисленных ниже упражнений
- •Задание 5. Создание web-объектов Список заданий
- •Drupal: практические примеры
- •Приложение 1. Курсовые работы Курсовая работа 1. Создание клиентских приложений
- •Курсовая работа №2. Сайты клиент-сервер
- •Каталог товаров
- •Система вопрос/ответ
- •Курсовая работа №3. Технологии разработки Веб – приложений
- •Приложение 2. Быстрая разработка Веб-приложений
- •Начало работы с сайтом
- •Создание контента
- •Установка нового модуля
- •Создание шаблона
- •Включение блока отображение популярных статей
- •Удаление
3.5. Технология «клиент-сервер»
Приложения WWW работают по технологии «клиент-сервер», в которой все программное обеспечение разделяется на клиентскую и серверную части. Взаимодействие клиента и сервера происходит по принципу «запрос – ответ». Клиент посылает запрос, сервер обрабатывает его и посылает ответ. Рассмотрим, например, этапы соединения по протоколу http.
Запрос клиента. Браузер формирует запрос на основе данных из URL-пользователя, либо из данных формы.
Установка соединения клиента с сервером.
Посылка запроса клиента и ожидание ответа от сервера.
Обработка запроса сервером. Генерация ответа.
Прием ответа клиентом.
Разрыв соединения.
Пока нет обращений клиентов, HTTP-сервер просто «спит», установив прослушку заданного порта (по умолчанию 80). Когда клиент устанавливает соединение, сервер «просыпается» и, приняв данные запроса, вызывает скрипт для их обработки. Результат всех манипуляций – это выдача ответа, которого ожидает клиент. После того как сервер выдал ответ, он разрывает соединение и вновь «погружается в сон». В случае возникновения ошибки HTTP-транзакция может закончиться на любом из этих этапов.
Первой технологией, обеспечившей создание динамических веб-сайтов стал интерфейс CGI, который позволял обычным программам формировать содержимое веб-страницы и возвращать пользователю результат в виде HTML-документа. Этот способ создания веб-сайтов популярен до сих пор.
Следующим поколением в разработке динамических веб-сайтов стал интерфейс ISAPI. Он мало чем отличается от CGI, но благодаря ему решены многие проблемы с производительностью и масштабируемостью.
Гипертекстовые препроцессоры стали новой ступенью эволюции серверных технологий. Основное их отличие – возможность вставлять программный код прямо в HTML-страницу. Это позволило значительно упростить процесс разработки, а также частично отделить представление от программного кода. Самым популярным гипертекстовым препроцессором является PHP. Современный подход к созданию веб-приложений – это использование технологий JSP и ASP.NET. У JSP есть одно преимущество – кроссплатформенность (может работать и на Windows- и на Unix-серверах). В основном выбор технологии сводится к выбору связки: JSP+Linux или ASP.NET+Windows. Linux является бесплатной операционной системой, но много компаний и разработчиков выбирают именно ASP.NET+Windows.
Технологии CGI
Технология CGI (Common Gateway Interface) – стандартный шлюзовой интерфейс – была разработана для расширения возможностей WWW за счет подключения внешнего программного обеспечения – гостевых книг, баз данных, интернет-магазинов и т. д. При этом сервер взаимодействует с подключаемыми программами через стандартные потоки ввода/вывода. Входной информацией для таких приложений служит содержимое HTTP-заголовка (метод GET) либо тело запроса (метод POST). CGI-приложения генерируют HTML-код, который возвращается браузеру для отображения новой страницы.
Отметим, что вместе с CGI широко используется и термин «CGI-скрипты». Подобные приложения писались на скриптовом языке Perl и выполнялись на сервере. Основная проблема CGI-приложений заключается в том, что при каждом клиентском запросе сервер загружает данное приложение в отдельное адресное пространство, а затем инициирует его выполнение и выгрузку, а это ограничивает производительность приложений и возможность одновременной обработки большого количества клиентских запросов. CGI – это способ общения между http-сервером и программой-скриптом. CGI-приложения можно создавать с помощью любого средства разработки, генерирующего консольные приложения для операционной системы, под управлением которой функционирует Web-сервер, а не только на языке Perl. Программа, которая читает get-данные из системных переменных, post-данные из stdin и пишет результирующий html-код в stdout, может быть написана на любом языке. CGI-скрипт получает данные от пользователя и в зависимости от этих данных выполняет какие-либо действия, например, формирует HTML-страницу. Допустим, вы вводите в браузере строку
http://bbbb.by/cgi-bin/prr.cgi
Ваш браузер соединяется по протоколу HTTP с указанным сервером и просит у него нужный файл. Серверу передается строка
GET http://bbbb.by/cgi-bin/prr.cgi HTTP/1.1
Дальше идет посылаемая браузером информация о себе. Если такой файл есть, то сервер отошлет браузеру ответ:
HTTP/1.1 200 Ok Content-Type: text/html
Если в запрашиваемом URL указать специальную CGI-программу, то в результате эта программа запустится на сервере и браузер получит то, что выдала эта программа на выходе. При этом программа может выполнить какие-то другие действия, например, записать данные в базу данных.
При запуске CGI-скрипта сервер создает в системе набор переменных окружения, через которые и передаются данные от пользователя
REQUEST_METHOD – это поле, применяемое для определения метода запроса HTTP. Протокол HTTP использует методы GET и POST для запроса к серверу.Они отличаются тем что при методе GET запрос является как-бы частью URL т. е. http://www..../my.cgi?request, а при методе POST данные передаются в теле HTTP-запроса. Следовательно, для CGI при GET запрос идет в переменную QUERY_STRING а при POST подается на STDIN скрипта.
Пример: REQUEST_METHOD=GET
QUERY_STRING
Это строка запроса при методе GET. Так как не все символы разрешены в URL, а только символы латинки, то запрос из формы кодируется браузером. При этом некоторые символы получают специальное назначение методом urlencode(). Так, все пробелы заменяются на %20, а все специальные и непечатные символы на %hh, где hh-шестнадцатеричный код символа. Разделителем полей формы служит знак '&'. При обработке форм надо произвести декодирование.
При методе POST необходимо считать со стандартного входа STDIN CONTENT_LENGTH байт, а потом производить их обработку. Обычно методом POST пользуются для передачи форм, содержащих потенциально большие области ввода текста TEXTAREA.
Браузер посылает на сервер и информацию о себе, чтобы CGI-скрипт мог представить информацию с учетом этого.
Что такое скрипт
CGI-скрипт – это программа, которая выполняется на web-сервере по запросу клиента. CGI – это специализированный интерфейс, при посредстве которого производится запуск скрипта и дальнейшая работа. Если посетитель сайта заполнит форму и нажмет кнопку "Отправить", данные поступят на сервер, запускается cgi-скрипт и происходит обработка информации. Например, текст сообщения и прочие значения считываются скриптом из формы отправки и записываются в файл гостевой книги. Взамен этого на браузер посетителя отправляется сообщение.
Серверы, функционирующие под управлением Windows, могут работать с CGI-скриптами на на разных языках и часто доступны для скачивания. Скачанный скрипт необходимо подстроить под себя – в начале скрипта потребуется указать кое-какие данные. Например, путь к интерпретатору Perl (чаще всего – /usr/local/bin/perl/ или /usr/bin/perl/), адрес сайта, название файла, в который должны записываться результаты выполнения скрипта и т. д. Вдобавок ко всему, скрипт следует поместить в специальный каталог. Классический пример: имя скрипта Perl должно иметь расширения .cgi, а сам он будет находиться в каталоге cgi-bin. Но это необязательно: скрипт может располагаться где угодно, при этом большинство веб-серверов требуют специальной настройки. В веб-сервере Apache, например, такая настройка может производиться при помощи общего файла настроек httpd.conf или с помощью файла .htaccess в том каталоге, где содержится этот скрипт.
Пример скрипта Hello World на языке Python:
#!/usr/bin/python
print("""Content-Type: text/plain
Hello, world!""")
Пример программы Hello World на языке C:
#include <stdio.h>
int main(void) {
printf("Content-Type: text/plain;charset=us-ascii\n\n");
printf("Hello, world!\n\n");
return 0;
}
Использование CGI имеет ряд недостатков: сложность отделения программного кода от HTML-представления, отсутствие встроенных средств для создания пользовательского интерфейса. При создании сайта приходится либо все писать самому, либо использовать готовое решение, которое нелегко приспособить к другим условиям.
ISAPI и Apache DSO. Проблему ограниченной производительности CGI-приложений, которые выполняются в отдельном адресном пространстве, можно решить, создав приложение в виде библиотеки, загружающейся в адресное пространство Web-сервера и при необходимости остающейся там для обработки последующих запросов от других клиентов. Web-сервер должен поддерживать загрузку таких библиотек. Подобные приложения для Microsoft Internet Information Servise носят название ISAPI (Internet Server Application Program Interface), а для Web-сервера Apache такие библиотеки называются Apache DSO (Dynamic Shared Objects).
ASP, JSP, PHP. Очередным шагом в развитии технологий создания интернет-приложений было появление средств, позволяющих отделить задачи Web-дизайна от задач, связанных с реализацией функциональности приложений. Такой технологией стала Active Server Pages (ASP), построенная на основе ISAPI. Основная идея ASP заключается в создании Web-страниц с внедренными в них фрагментами кода на скриптовых языках. Однако указанные фрагменты кода интерпретируются не браузером, а сервером (ISAPI-библиотекой). Результат выполнения замещает сам фрагмент кода в версии страницы, которая передается в пользовательский браузер. Вскоре появились и другие технологии, реализующие идею размещения внутри Web-страницы кода, выполняемого Web-сервером. Известной является технология JSP (Java Server Pages), основная идея которой – однократная компиляция Java-кода (сервлета) при первом обращении к нему, выполнение методов этого сервлета и помещение результатов выполнения этих методов в набор данных, отправляемых в браузер. Еще одной популярной технологией подобного типа является PHP (Personal Home Pages), которая использует CGI-приложения, интерпретирующие внедренный в HTML-страницу код на скриптовом языке.