- •Минск, бгу,
- •Глава 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. Быстрая разработка Веб-приложений
- •Начало работы с сайтом
- •Создание контента
- •Установка нового модуля
- •Создание шаблона
- •Включение блока отображение популярных статей
- •Удаление
Протокол ssl
Прикладные протоколы HTTP, SMTP, POP3, IMAP были созданы во времена, когда в сети Интернет не существовало способов несанкционированного использования компьютеров. Сейчас Интернет нельзя представить без защиты данных. Имена пользователей, номера кредитных карт и другая информация, передаваемая в открытом формате, уязвимы для вмешательства. В целях безопасности используются протоколы HTTPS, SMTPS, POP3S, IMAPS, SSH и др., которые хранят конфиденциальную информацию с применением SSL-шифрования.
Шифрование данных
Протокол SSL использует как симметричные, так и ассиметричные ключи для шифрования данных.
Симметричный ключ, применяется для шифрования данных на клиенте и сервере. Шифрование симметричным ключом обычно используется для большого объема данных, так как этот процесс быстрый. Обычно делают это с помощью алгоритмов DES (Data Encryption Standard) и AES (Advanced Encryption Standard.
Как правило, алгоритмы ассиметричных ключей более стойкие, их практически невозможно взломать. Для шифрования с применением ассиметричного (открытого) ключа существуют два ключа. Один из них используется в качестве открытого, сертификационный центр публикует открытый ключ в самом сертификате. Секретный ключ держится в тайне. Эти ключи работают в паре: если открытый ключ предназначен для шифрования данных, то расшифровать их можно только секретным ключом. Если данные шифруются секретным ключом, то открытый ключ должен их расшифровывать. Открытый ключ для шифрования данных доступен любому пользователю и использовать его для шифрования данных, расшифровать которые может только пользователь, у которого есть секретный ключ. Если пользователь шифрует данные, с помощью своего секретного ключа, любой другой может расшифровать данные, применяя соответствующий открытый ключ. Это является основой для цифровых подписей. Протокол SSL использует шифрование с открытым ключом, чтобы подтвердить клиенту подлинность сервера, и наоборот.
Самый распространенный алгоритм, к которому прибегают при шифровании с ассиметричными ключами – RSA.
Протокол SSL, совместно разработанный Netscape Communications и RSA Data Security, обеспечивает установление безопасного соединения между клиентом и сервером и безопасность по установленному сетевому соединению. На основании протокола SSL 3.0 был разработан стандарт RFC, получивший имя TLS.
Протокол SSL обеспечивает конфиденциальность обмена данными между клиентом и сервером, использующими TCP/IP на основе протокола HTTPS (Hypertext Transfer Protocol Secure). Данные, которые передаются по протоколу HTTPS, «упаковываются» в криптографический протокол SSL или TLS. В отличие от HTTP, для HTTPS по умолчанию используется TCP-порт 443 вместо 80. Подключение по SSL инициируется вызовом URL-адреса, начинающегося с https:// вместо http:// .
SSL поддерживает 3 типа аутентификации:
• аутентификация и клиента и сервера;
• аутентификация сервера с не аутентифицированным клиентом;
• полная анонимность.
Когда сервер аутентифицируется, канал безопасен для попытки перехвата данных между веб-сервером и браузером. Аутентифицированный клиент должен предоставить сертификат серверу. Главная цель процесса обмена ключами – это создание секрета клиента (pre_master_secret), известного только клиенту и серверу и используемого для создания общего секрета (master_secret). Общий секрет необходим, чтобы создать сообщение для проверки сертификата, ключей шифрования, секрета MAC (Message Authentication Code) и сообщения «finished».
Анонимный обмен ключами. Полностью анонимная сессия может быть установлена при использовании алгоритмов RSA или Диффи –Хеллмана для создания ключей обмена. В случае использования RSA клиент шифрует секрет (pre_master_secret) с помощью открытого ключа несертифицированного сервера. Открытый ключ клиент узнает из сообщения обмена ключами от сервера. Результат посылается в сообщении обмена ключами от клиента. При использовании алгоритма Диффи-Хеллмана открытые параметры сервера содержатся в сообщении обмена ключами от сервера, и клиенту посылают их в сообщении обмена ключами.
Обмен ключами и аутентификация. Открытый ключ содержится в сертификате сервера или может быть использован временный ключ RSA, который посылается в сообщении обмена ключами от сервера. Сервер использует временный ключ RSA только однажды для создания сессии. После проверки сертификата сервера клиент шифрует секрет (pre_master_secret) при помощи открытого ключа сервера. После успешного декодирования секрета (pre_master_secret) создается сообщение «finished», тем самым сервер демонстрирует, что он знает частный ключ, соответствующий сертификату сервера.
Когда RSA применяется с целью обмена ключами, для аутентификации клиента используется сообщение проверки сертификата клиента. Клиент подписывается значением, вычисленным из master_secret и всех предшествующих сообщений протокола рукопожатия. Эти сообщения рукопожатия включают сертификат сервера, который ставит в соответствие сигнатуре сервера сообщение Server_Hello.random, которому ставит в соответствие сигнатуру текущему сообщению рукопожатия.
Протокол записи (Record Layer). Существует четыре протокола записи: протокол рукопожатия (handshake protocol), протокол тревоги (alert protocol), протокол изменения шифра (the change cipher spec protocol), протокол приложения (application data protocol).
Протокол рукопожатия (handshake). SSL-клиент и сервер договариваются об установлении связи с помощью процедуры рукопожатия. Во время рукопожатия клиент и сервер договариваются о различных параметрах, которые будут использованы для обеспечения безопасности соединения. Рукопожатие начинается тогда, когда клиент подключается к SSL-серверу. Запрос безопасного соединения представляет собой список поддерживаемых шифров и хэш-функций.
Из этого списка сервер выбирает самый сильный шифр и хэш-функцию, которую он также поддерживает, и отсылает это решение в виде цифрового сертификата. Сертификат обычно содержит имя сервера, доверенный Центр сертификации, и открытый ключ шифрования сервера. Клиент может связаться с сервером, который выдал сертификат и убедиться, что он подлинный.
Для того чтобы сгенерировать ключи сеанса, используется безопасное соединение. Клиент шифрует случайное число с помощью открытого ключа сервера и отправляет результат на сервер. Только сервер в состоянии расшифровать его с закрытым ключом, и этот факт делает ключи скрытыми от третьей стороны. Клиент знает открытый ключ и случайное число, а сервер знает закрытый ключ и случайное число. Из случайного числа обе стороны создают ключевые данные для шифрования и расшифровывания.
На этом рукопожатие завершается и начинается защищенное соединение, которое зашифровывается и расшифровывается с помощью ключевых данных. Если любое из перечисленных выше действий не удается, то рукопожатие SSL не удалось и соединение не создается.
Сообщение тревоги с критическим уровнем незамедлительно прерывает соединение.
Протокол приложения ADP (Application Data Protocol) применяется для шифрования данных на основе текущего состояния соединения.
Протокол SSL использует среду с несколькими слоями, что и обеспечивает безопасность обмена информацией. Конфиденциальность общения устанавливается за счёт того, что безопасное подключение открывается только целевым пользователям.
Безопасный SSL-протокол размещается между двумя протоколами: тем, который использует программа-клиент (HTTP, FTP, IMAP, LDAP и т.д.) и транспортным протоколом TCP/IP. Создавая заслонки с обеих сторон, он защищает и передает данные на транспортный уровень.
Хеширование. Во время подтверждения подключения согласовывается также хеш-алгоритм. Хеш-функция принимает на входе сообщение произвольной длины и возвращает значение фиксированной длины. Хеш-значения играют роль идентификационной отметки и являются уникальными. Популярные хеш-алгоритмы – MD5 (Message Digest 5) и SHA-1 (Standard Hash Algorithm). MD5 создает 128-битное хеш-значение, а SHA-1 – 160-битное хеш-значение. Хеш-значение применяется для проверки целостности переданных данных. Это значение создается с использованием MAC(Message Authentication Code) – код проверки сообщения. MAC гарантирует, что данные не были изменены во время передачи. SSL использует MAC.
