- •Минск, бгу,
- •Глава 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. Быстрая разработка Веб-приложений
- •Начало работы с сайтом
- •Создание контента
- •Установка нового модуля
- •Создание шаблона
- •Включение блока отображение популярных статей
- •Удаление
Установление подлинности участников
Для определения подлинности участников обмена данными, протокол подтверждения подключения использует сертификат стандарта Х.509. Сертификат – это цифровой способ идентификации, который выпускает центр сертификации. В сертификате содержится идентификационная информация, период действия, публичный ключ, серийный номер, и цифровые подписи.
Цифровые сертификаты в основном служат двум целям:
• установить личность владельца;
• сделать доступным первичный ключ владельца.
Цифровой сертификат выпускается проверенной полномочной организацией-источником сертификатов и выдается на ограниченное время. После истечения срока действия сертификата его необходимо заменить. Протокол SSL использует цифровые сертификаты для обмена ключами, аутентификации серверов и, при необходимости, аутентификации клиентов.
Протокол SSL использует сертификаты для проверки соединения. Эти SSL-сертификаты расположены на безопасном сервере и служат для шифрования данных и идентификации Web-сайта. Сертификат SSL помогает подтвердить, что сайт действительно принадлежит тому, кто об этом заявляет, и содержит информацию о держателе сертификата, домена, для которого был выдан сертификат, и название источника, выдавшего сертификат.
Реализация ssl
Библиотеки SSL содержат функции для шифрования, вычисления хэш-функций, и средства для работы с сертификатами. Наиболее известные библиотеки для работы с SSL:
RSARef – исходный код библиотеки, который может быть использован в бесплатных и некоммерческих приложениях;
BSAFE 3.0 – коммерческая реализация RSARef;
SSLPlus – коммерческий пакет с исходным пакетом от Consensus Development Corp., улученный SSLRef 3.0;
SSLjava – реализация SSL 3.0 на языке Java от Phaos Technology;
OpenSSL – некоммерческая реализация SSL 3.0 и TLS 2.0.
Предупреждения системы безопасности web-браузера. Веб-браузер имеет собственную встроенную систему безопасности. При попытке зайти на web-сайт, который имеет проблемы с сертификатом, система безопасности выдает предупреждение. При посещении web-сайта с действующим сертификатом пользователь будет проинформирован о том, что данный сайт имеет цифровой сертификат от центра сертификации, и все данные, которые пользователь предоставляет этому сайту, будут зашифрованы.
Как избежать блокирования сайтов
Все сайты в сети имеют DNS-имя и IP-адрес. Когда пользователь набирает в строке браузера www.bsu.by, компьютер соединяется с DNS-сервером провайдера, чтобы узнать IP-адрес сайта. Затем браузер соединяется с указанным IP- адресом (рис. 1.7).
Рис. 1.7.
Провайдер может для своих целей заблокировать некоторые сайты. Каждая конкретная ситуация нуждается в рассмотрении с точки зрения закона. Блокировок может быть две: по DNS и по IP.
Блокировка по DNS. При обращении к DNS-серверу компьютер пользователя вместо IP-адреса получает адрес с уведомлением о блокировке. Чтобы обойти этот тип блокировки, достаточно воспользоваться публичными DNS-сервисами, прописав адреса их DNS-серверов в настройках соединения. Список открытых серверов:
209.244.0.3 / 209.244.0.4 - Level3; 8.8.8.8 / 8.8.4.4 – Google; 184.169.143.224 / 184.169.161.155 - Securly; 208.67.222.222 / 208.67.220.220 - OpenDNS; 156.154.70.1 / 156.154.71.1 DNS Advantage; 198.153.192.1 / 198.153.194.1 Norton DNS;
Следует зайти в панель управления и выбрать «Сетевые подключения». В варианте с ручным указанием DNS-серверов надо вписать новной DNS-сервер 8.8.8.8 и альтернативный 8.8.4.4 серверы Google (рис. 1.8).
Рис. 1.8.
Кроме альтернативных DNS-серверов нужный адрес можно прописать прямо в файле hosts:
Windows XP/2003/Vista: WINDOWS\system32\drivers\etc\hosts
Mac OS/Linux/Unix: /etc/hosts
Блокировка по IP. При обращении к серверу, расположенному по искомому IP-адресу, компьютер пользователя соединяется не с веб-сервером нужного сайта, а с веб-сервером провайдера, который выдает уведомление о блокировке. Принцип обхода блокировки по IP заключается в том, что можно подключиться к сайту, используя промежуточные серверы, с которых заблокированный ресурс «виден». Например, можно воспользоваться услугами сайтов-анонимайзеров: anonymouse.org, www.shadowsurf.com, www.proxyforall.com, www.proxyweb.net, webwarper.net, https://www.megaproxy.com, www.anonymizer.ru, anonymouse.ws.
Еще один бесплатный сервис анонимайзера на www.hidemyass.com помогает скрыть реальный IP-адрес и предоставляет плагины для браузера, чтобы сделать обход блокировок удобным. Плагин для FireFox: https://addons.mozilla.org/ru/firefox/addon/hide-my-ass-proxy-extension/? src=userprofile. В браузере Opera плагин встроен и включается нажатием на кнопку Opera Turbo.
Для обхода большинства ограничений можно воспользоваться прокси-серверами. Прокси-серверы – это компьютеры, на которых функционирует специализированное программное обеспечение, позволяющее принимать запросы на соединение с различными сайтами. При работе с прокси-сервером компьютер пользователя «перепоручает» такому серверу соединиться с определенным сайтом. Это похоже на предыдущий способ, но в данном случае браузер работает в обычном режиме. Для использования прокси-сервера необходимо прописать его адрес в настройках браузера. Вот несколько сайтов, где можно найти бесплатные прокси: cool-proxy.ru, www.freeproxy.ru/ru/free_proxy/, www.freeproxylists.net/ru/, hideme.ru/proxy-list/, spys.ru/en/ . Стоит выделить проект JAP: anon.inf.tu-dresden.de/index_en.html. www.proxydrop.com, www.proxydrop.net, www.proxydrop.biz, www.proxydrop.info. Бесплатный CGI прокси www.proxydrop.org поддерживает HTTPS. Прокси не всегда обеспечивают анонимность, поэтому более надежным решением является использование VPN-тоннеля - виртуального зашифрованного стойким алгоритмом соединения. Абстрактно его можно представить в виде тоннеля, один конец которого упирается в компьютер пользователя, а второй в специализированный сервер, находящийся в другой стране. Весь сетевой трафик отправляется в такой тоннель, минуя любые заграждения и препоны провайдера. Поскольку тоннель зашифрован, перехватить данные или заблокировать доступ к какому-либо сайту очень сложно. В интернете существует большое количество сервисов, которые предлагают купить доступ к такому тоннелю.
Существует специальное программное обеспечение (ПО) и сответствующие сервисы, позволяющее подключаться к анонимной высокозащищенной от прослушивания сети. Подключение происходит через цепочку соединений, узлами которой являются клиентские компьютеры. Цепочка выбирается случайным образом, а сама информация шифруется несколько раз:
Windows:https://www.torproject.org/dist/torbrowser/tor-browser-2.2.39-5_en-US.exe
Еще один вариант – сеть I2P, представляющая собой анонимную, самоорганизующуюся, распределённую и децентрализованную сеть.
Отметим, что пользователь несет установленную законом ответственность за распространяемую в сети Интернет информацию. Здесь речь идет об ограничениях в доступе к информации и о защите личной информации. Конкретные ситуации нуждаются в юридической проработке совместно с провайдером.
