
- •Минск, бгу,
- •Глава 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. Быстрая разработка Веб-приложений
- •Начало работы с сайтом
- •Создание контента
- •Установка нового модуля
- •Создание шаблона
- •Включение блока отображение популярных статей
- •Удаление
4.2.2. Новые элементы форм html5
HTML5 добавляет 5 новых элементов форм. Форма progress показывает процесс загрузки. Например:
<progress max="100" value="25">25%</progress>
Форма meter показывает шкалу измерения. Например:
<meter value="50" min="0" low="20" optimum="50" high="80" max="100"></meter>
Форма keygen используется для создания пары ключей, один из которых передается через форму на сервер:
<keygen name="key" keytype="rsa" challenge="challenge" />
Форма datalist используется для ввода элемента с возможными значениями в datalist, описанными c помощью элементов option. Элемент input связывается с элементом datalist c помощью атрибута list:
<input list="company" />
<datalist id="company">
<option value="BMW">
<option value="Ford">
<option value="Volvo"> </datalist>
Элемент output определяет область, в которую выводится информация с помощью скриптов. Рассмотрим пример
<!-<DOCTYPE html>
<--Пример pr17: форма -->
<html>
<head><title> Новые формы</title></head>
<body>
<hr> <h1>PROGRESS</h1>
<form>
<progress max="100" value="75">75%</progress>
</form>
<hr> <h1>METER</h1>
<form>
<meter value="50" min="0" low="20" optimum="50" high="80" max="200"></meter>
</form>
<hr> <h1>KEYGEN</h1>
<form>
<keygen name="key" keytype="rsa" challenge="goodby" />
</form>
<hr> <h1>DATALIST</h1>
Элемент input со значениями в datalist c помощью атрибута list.
<form>
<input list="company" />
<datalist id="company">
<option value="BMW">
<option value="Ford">
<option value="Volvo"> </datalist>
</form>
<hr><h1>OUTPUT</h1>
Определяет область, в которую выводится информация.
<form action="" oninput="out.value=range.value">
<div>
<input type="range" name="range" min="0" max="100" value="25" />
</div>
<div>
<output name="out">20</output>
</div>
</form>
</body></html>
Новые типы ввода элемента <input>
HTML5 предоставляет 13 новых типов ввода:
type=email – текстовое поле для адресов электронной почты;
type=number – числовое поле со счетчиком управления;
type=range – управление числом с ползунком;
type=search – текстовое поле для поиска;
type=tel – текстовое поле для телефонных номеров;
type=url – текстовое поле для URL-адресов;
type=color – выбор цвета;
type=date – поле даты (с управлением календарем) с указанием года, месяца и даты (без часового пояса);
type=datetime – поле даты (с управлением календарем и временем);
type=datetime-local – поле даты (местное время);
type=month – поле даты с указанием месяца;
type=week – определяет поле даты с указанием недели;
type=time – определяет поле даты (с управлением календарем) с указанием часа, минуты, секунды, и доли секунды (без часового пояса):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>untitled</title>
</head>
<body>
<form action="" method="get">
<label for="email">Email:</label>
<input id="email" name="email" type="email" />
<button type="submit"> Submit Form </button>
</form>
</body>
</html>
<input type="number" min max step />
новый тип input – range служит для ввода значения из диапазона
<input type="range" min max step />
Пример создания бегунков с range input.
<form method="post">
<h1> Total Recall Awesomness Gauge </h1>
<input type="range" name="range" min="0" max="10" step="1" value="">
<output name="result"> </output>
</form>
Если step установлен как 1, будет 10 значений для выбора. Мы также используем в своих интересах новый элемент output
Новые атрибуты ввода HTML5. Атрибут AUTOFOCUS – при загрузке страницы автоматически передает фокус элементу. Например:
<input type="text" autofocus />
Атрибут FORM связывает элемент с формой.
<form action="" id="form">
<div><input type="text" name="login" /></div>
<div><button type="submit"></button></div>
</form>
<input type="email" name="email" form="form" />
Атрибут PLACEHOLDER – устанавливает подсказывающий текст в поле ввода. Например:
<input type="password" placeholder="enter your password"/>
Состояние off можно использовать, если вводимые данные строго конфиденциальны, либо если эти данные никогда не будут использоваться повторно:
<input type="text" autocomplete="off"/>
Атрибуты formaction, formenctype, formmethod, formtarget добавляются к элементам, отвечающим за отправку форм, и переопределяют соответствующие им атрибуты форм. Эти атрибуты поддерживаются элементами ввода и кнопками:
<input type="submit" formmethod ="post" />
Атрибут formaction – для переопределения действия элемента формы;
атрибут formenctype – для переопределения enctype элемента формы;
атрибут formmethod – для переопределения метода элемента формы;
атрибут formnovalidate – для переопределения NOVALIDATE элемента формы;
formtarget – главный целевой атрибут.
Атрибут required устанавливает, что поле не пройдет валидацию, если его значение пусто, либо не выбрано для checkbox, radio. Например:
<input type="text" name="Bob" placeholder="Enter your name" required>
Атрибут pattern позволяет создавать регулярное выражение, которому должны соответствовать вводимые данные.
Атрибут SET CUSTOM VALIDITY – позволяет задать собственно сообщение валидации.
<form action="">
<div><input type="email" name="email" required/></div>
<div><input type="password" name="pass1" required/></div>
<div><input type="password" name="pass2" required/></div>
<div><input type="submit" value="Register"/></div>
</form>
Атрибут autocomplete уточняет, что поле должно / не должно автозаполнятся или быть предварительно заполнено браузером на основании прошлых записей пользователя. Это может быть, например, номер кредитной карты или одноразовый пароль. По умолчанию автозаполнение включено, если вы хотите отключить, установите его в положение OFF.
Валидация формы. Традиционно валидация формы использует код JavaScript, чтобы проверить входные данные или обеспечить заполнение необходимых полей перед отправкой формы. В HTML введен атрибут required. Если атрибут required присутствует, то поле непустое при отправке формы. Следующий пример ввода гарантирует, что поле имеет значение и что это значение есть адрес электронной почты:
<input type="email" id="email_addr" name="email_addr" required />
Для валидации можно использовать атрибут pattern, который содержит регулярное выражение для проверки поля ввода. Для примера предположим, что номер состоит из трех прописных букв, за которыми следуют четыре цифры:
<input type="text" id="part" name="part" required pattern="[A-Z]{3}[0-9]{4}" />
Атрибут Formnovalidate может применяться для input or button элементов. Если он есть, то проверка данных формы отключена, например:
<input type="submit" formnovalidate value="Save">
Вот пример, который отображает пользовательские ошибки, если значения в двух полях не совпадают.
<label>Email:</label>
<input type="email" id="email_addr" name="email_addr">
<label>Repeat Email Address:</label>
<input type="email" id="email_addr_repeat" name="email_addr_repeat" oninput="check(this)">
<script>
function check(input) {
if (input.value != document. getElementById('email_addr').value) {
input.setCustomValidity('The two email addresses must match.');
} else {
// input is valid -- reset the error message
input.setCustomValidity('');
}
}
</script>
Атрибут Placeholders позволяет создать указатели заполнения полей (подсказки, отображаемые внутри текстовых полей):
<input name="email" type="email" placeholder ="doug@givethesepeopleair.com" />
Атрибут required определяет, обязательно ли заполнение данного поля, и назначается двумя способами:
<input type="text" name="someInput" required>
<input type="text" name="someInput" required="required">
Форма не может быть подтверждена, если поле "someInput" пусто.
<form method="post" action="">
<label for="someInput"> Your Name: </label>
<input type="text" id="someInput" name="someInput" placeholder="Douglas Quaid" required>
<button type="submit">Go</button>
</form>
Если поле оставить пустым и нажать кнопку подтверждения формы, текстовое поле будет подсвечено.
Атрибут Autofocus используется, если определенное поле должно быть «выбрано» или сфокусировано, по умолчанию:
<input type="text" name="someInput" placeholder="gogo" required autofocus>
Атрибут pattern позволяет вставлять регулярные выражения для проверки определенного текстового поля прямо в разметку:
<form action="" method="post">
<label for="username">Create a Username: </label>
<input type="text" name="username" id="username" placeholder="4 <> 10"
pattern="[A-Za-z]{4,10}" autofocus required>
<button type="submit">Go </button>
</form>
Шаблон [A-Za-z]{4,10} вводит прописные и строчные латинские буквы. Каждая строка должна содержать не менее 4 и не более 10 символов.
Для определения поддержки атрибутов cоздадим элемент input и выясним, распознан ли браузером атрибут pattern. Если так, то браузер поддерживает атрибуты HTML5, иначе – нет.
<script>
if (!'pattern' in document.createElement('input') ) {
// …
}
</script>
Теги div и span. Тег <div > Блок </div> – важный тег, используемый для форматирования больших блоков текста HTML-документа. Устаревший атрибут align отвечает за выравнивание содержимого внутри блока: left – по левому краю; right – по правому краю; center – по центру; justify – выравнивается по содержимому. Атрибут Title позволяет создавать всплывающий текст над надписью. Style – стандартный набор атрибутов стилей. Пример: < div ALIGN="JUSTIFY">По краю содержимого</DIV>
Тег div является одним из основных элементов блочной верстки. В сочетании с таблицами стилей, используется для разметки страницы, разбивки страницы на независимые секции.
Примеры:
<div style="background: #ff0000;"> Блок красного цвета</div>
<div style="text-align:center;">Выравниваем текст по центру</div>
Чтобы не описывать стиль внутри тега, можно выделить стиль во внешнюю таблицу стилей. Затем создается класс с именем селектора, а для тега <div> добавляется параметр class или id.
<div class="block1">текст</div>
Стандартные атрибуты тега div:
<div class = имя_класса> Определяет имя класса для элемента </div>
<div dir= rtl , lt> Определяет направление текста в элементе</div>
<div id = id > Определяет уникальный id для элемента</div>;
<div lang =код_языка> Определяет код языка в элементе </div>;
<div style =опред_стиля> Определяет инлайновый стиль элемента</div>
<div title = текст > Определяет дополнительную информацию </div>
Необходимо ли использовать div, если есть доступ к header, article, section, и footer? Смысл использовать <div> есть, если нужно обернуть блок кода в элемент, чтобы позиционировать контент. Однако лучше использовать элементы <article> и <nav> соответственно.
Тег <span> предназначен для определения встроенных элементов документа. В отличие от блочных элементов, таких как <table>, <p> или <div>, с помощью тега <span> можно выделить часть информации внутри других тегов и установить для нее свой стиль. Например, внутри абзаца <p> можно изменить цвет и размер первой буквы, если добавить начальный и конечный тег <span> и определить для него стиль текста. Чтобы не описывать каждый раз стиль внутри тега, можно выделить стиль во внешнюю таблицу стилей, а для тега добавить атрибут class или id с именем селектора. Синтаксис <span>...</span>
Метатеги. Информация, расположенная в заголовочной части веб-страницы, предназначена главным образом для поисковых систем. Ее назначение – сжатое описание страницы, которое позволило бы правильно позиционировать страницу в каталоге поискового сервера и в списке ссылок, выданных пользователю в ответ на запрос. Среди главных элементов заголовочной части следует отметить название страницы, помещаемое между дескрипторами <title> и </title>, а также аннотацию и список ключевых слов, вводимых с помощью мета-записей keywords и description.
Любой метатег размещается в заголовке HTML-документа между тегами <head> и </head> и состоит из следующих атрибутов:
<META HTTP-EQUIV="имя" CONTENT="содержимое">
<META NAME="имя" CONTENT="содержимое">
Метатеги с атрибутом HTTP-EQUIV управляют действиями браузеров. В качестве параметра “имя” могут быть использованы следующие аргументы:
Expires – дата устаревания: если указанная дата прошла, то запрос этого документа вызывает повторный сетевой запрос, а не подгрузку документа из кэша. Дата со значением "0" заставляет браузер каждый раз при запросе проверять, изменялся ли этот документ. Например:
<meta http-equiv="expires" content="sun, 3 april 2013 9 05:45:15 gmt">
Pragma – контроль кэширования. Значением должно быть “no-cache”.
Content-Type – указание типа документа. Может быть расширено указанием браузеру кодировать страницы (charset). Например:
<meta http-equiv="content-type" content="text/html"; charset="utf-8"/>
Content-language – указание языка документа. Комбинация поля Accept-Language (посылаемого браузером) с содержимым Content-language может быть условием выбора сервером того или иного языка.
<meta http-equiv="content-language" content="en-gb">
Refresh – определение задержки в секундах, после которой браузер автоматически обновляет документ. Дополнительная возможность – автоматическая загрузка другого документа.
<meta http-equiv="refresh" content="3” url=http://www.bsu.iba.by ">
Window-target – определяет окно текущей страницы; может быть использован для прекращения появления новых окон браузера при применении фреймовых структур.
<meta http-equiv="window-target" content="_top">
Ext-cache – определяет имя альтернативного кэша
<meta http-equiv="ext-cache" content= "name=/some/path/index.db; istructions=user nstructions">
Управление индексацией страницы для поисковых роботов осуществляется с использованием атрибута name.
<meta name="robots" content="noindex">
Возможные значения: all, none, index, noindex, follow, nofollow.
Description – краткая аннотация содержания документа. Используется поисковыми системами для описания документа.
<meta name="description" content= "Документ содержит словарь metaтегов">
Keywords – используется поисковыми системами для индексирования документа. Обычно здесь указываются синонимы к словам в заголовке title или альтернативный заголовок.
<meta name="keywords" content="теги, метаданные, список">
Document-state – управление индексацией страницы для поисковых роботов. Определяет частоту индексации – или один раз индексировать, или реиндексировать документ регулярно.
<meta name="document-state" content="static">
Возможные значения: static, dynamic.
URL – управление индексацией страницы для поисковых роботов. Определяет частоту индексации – или один раз индексировать, или реиндексировать документ регулярно.
<meta name="url" content="absolute_url">
Author – обычно имя автора, формат произвольный.
Generator – обычно название и версия редактора, с помощью которого создана эта страница.
Copyright – обычно описание авторских прав на документ.
Resource-type – текущее состояние данного файла. Важен для поисковых систем: если его значение document, то поисковая система приступает к индексированию.