- •Минск, бгу,
- •Глава 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. Быстрая разработка Веб-приложений
- •Начало работы с сайтом
- •Создание контента
- •Установка нового модуля
- •Создание шаблона
- •Включение блока отображение популярных статей
- •Удаление
Методы объекта window
Метод open() для создания новых окон:
myWin= window.open("URL","имя_окна","пар=знач, пар=знач,...", заменить);
Первый аргумент-адрес страницы, второй - имя окна, которое можно будет использовать в атрибуте TARGET контейнеров <a> и <form>. В качестве значений допустимы _blank, _parent, _self, _top. Третий аргумент - список параметров и их значений, через запятую без пробелов. Параметры метода: width/height,left,top, location=yes/no(Наличие у окна поля адреса); menubar= yes/no (Наличие у окна панели меню); resizable=yes/no (Сможет ли пользователь менять размер окна); scrollbars=yes/no(Наличие у окна полос прокрутки); status=yes/no (Наличие у окна поля статуса); toolbar=yes/no(Наличие у окна панели инструментов). Приведем пример открытия двух окон простого и более сложного:
<html> <head>
<title> Объект- prLab5</title>
</head><body >
<form>
<input type=button value="Простое окно" onClick="window.open('', 'test1',
'directories=no,height=200,location=no,'+ 'menubar=no,resizable=no,scrollbars=no,'+
'status=no,toolbar=no,width=200');">
<input type=button value="Сложное окно" onClick="window.open('', 'test2',
'directories=yes,height=200,location=yes,'+ 'menubar=yes,resizable=yes,scrollbars=yes,'+
'status=yes,toolbar=yes,width=200');">
</form>
</body></html>
Метод close() закрывает окно. Если окно текущее, то используется: win.close(); или self.close(). Если произвольное окно, то сначала получают его идентификатор: id=window.open(), затем id.close(). Закрыть родительское окно: window.opener.close();
Метод focus() применяется для передачи фокуса. Если открыть окно и, не закрывая, снова открыть окно с таким же именем, но с другим текстом, то новое окно не появится поверх старого. Ему надо передать фокус.
<html> <head>
<title>pr7Lab - Окна</title>
<script>
function myfoc(a)
{ myWin = window.open('','example','width=300,height=200');
switch(a) {
case 1: { myWin.document.open(); //открываем поток ввода в созданное окно
myWin.document.write('<H1>Открыли окно в первый раз'); //Пишем в поток
break; }
case 2: { myWin.document.open();
myWin.document.write('<H1>Открыли окно во второй раз'); break; }
case 3:{ myWin.focus(); // передаем фокус, затем выполняем те же действия
myWin.document.open();
myWin.document.write('<H1>Открыли окно в третий раз'); break; }
}
myWin.document.write('</H1>'); myWin.document.close();
}
</script>
</head> <body>
<a href="javascript:myfoc(1);">Откроем новое окно</a>, <BR><BR>
<a href="javascript:myfoc(2);">Напишем в него другой текст, но фокус не передадим</a>, <BR><BR>
<a href="javascript:myfoc(3);">Напишем в него, но сперва передадим фокус</a>.
</body> </html>
Чтобы увести фокус из окна myWin, необходимо применить метод myWin.blur(). Для текущего окна, нужно вызвать window.blur().
Лабораторная работа 7. PHP
Для выполнения этой работы необходимо установить Веб-сервер, сервер баз данных MySQL, программные средства PHP. Установочным пакетом может быть пакет Denver или Wamp. Затем следует выполнить несколько примеров из текста книги, в том числе для работы с массивами.
Задание 1. Массивы и строки
Выполнить одно из перечисленных ниже упражнений
1.1. В массиве строк проверить начинается ли каждая строка символом “*”. Строки, не начинающиеся символом “* “ перенести в другой массив.
1.2. В массиве из n строк проверить, содержит ли к-я строка символы /*. Если не содержит, вставить эти символы в начало, а */ в конец строки.
1.3. В массиве строк удалить все теги, заключенные в угловые скобки <>.
1.4. В массив случайным образом поместить строки, задающие «совет дня» или «цитату дня». Случайным образом выбрать строку из массива с помощью функции shuffle(array arr); или arrayrand(array arr, int num);
1.5. Создать многомерный массив: Факультет, Курс, Группа, Студенты. Вывести список студентов каждой группы в алфавитном порядке.
1.6. Создать многомерный массив: Факультет, Кафедра, Преподаватели. Вывести список преподавателей каждой кафедры в алфавитном порядке.
1.7 В прямоугольной матрице переставить столбцы в порядке возрастания суммы модулей элементов каждого столбца.
1.8 В прямоугольной матрице разделить все ее элементы на наибольшую сумму модулей элементов в строке.
1.9 Создать ассоциативный массив {name,prof,adres}. Найти количество различных элементов массива.
1.10 В прямоугольной матрице со значениями типа string вывести все одинаковые элементы и их индексы.
1.11 В прямоугольной матрице с элементами типа string заменить нулями все элементы, которые находятся в столбцах или строках, где имеются заданные по образцу строки.
1.12 В прямоугольной матрице с элементами типа string найти отрезок массива наибольшей длины, в котором первый элемент равен последнему, второй – предпоследнему и т.д. Выведите отрезок и длину отрезка.
1.13. В прямоугольной матрице с элементами типа string найти отрезок массива наибольшей длины, в котором элементы возрастают. Выведите отрезок и его длину.
1.14 Транспонировать квадратную матрицу и умножить транспонированную матрицу на исходную.
1.15 Даны два числа m , n и два упорядоченных массива:
a1≤a2≤...≤am и b1≤b2≤...≤bn. Создать из элементов новый упорядоченный массив c1≤c2≤...≤cm+n.
1.16 Дана целочисленная матрица Аm,n, строки которой упорядочены по возрастанию (ai,1≤ai,2≤...≤ai,n для i=1,…,m). Найти и вывести числа, которые встречаются во всех строках.
1.17 Найти сумму элементов аi,j матрицы Аm,n, для которых i-j=k.
1.18 Массив чисел Аm,n упорядочен по возрастанию в строках
(ai,1≤ai,2≤...≤ai,n для i=1,…,m) и столбцах (a1,j≤a2,j≤...≤am,j для j=1,...,n). Найти элементы этого массива, равные заданному числу х и вывести их индексы. Количество действий в программе должна быть порядка m+n, а не m*n.
1.19 Задана квадратная матрица А из значений типа string. Повернуть ее на 90 градусов против часовой стрелки.
1.20 Матрица K(m,m) состоит из нулей и единиц. Найти в ней номера (индексы)хотя бы одной строки или хотя бы одного столбца, не содержащих единицы, либо сообщить, что таковых нет.
1.21 В вещественном массиве размерности n наименьший элемент поместить на первое место, наименьший из оставшихся – на последнее место, следующий по величине – на второе место, следующий – на предпоследнее и так далее – до середины массива.
1.22 Латинским квадратом порядка n называется квадратная таблица размером n ×n, каждая строка и каждый столбец которой содержат все числа от 1 до n. Проверить, является ли заданная целочисленная матрица латинским квадратом.
1.23 Матрицу K(m,m) заполнить следующим образом. Элементам, находящимся на периферии (по примеру матрицы), присвоить значение 1; периметру оставшейся подматрицы – значение 2 и так далее до заполнения всей матрицы.
1.24 В массиве строк проверить начинается ли каждая строка символом _. Строки не начинающиеся символом _ исключить из массива.
1.25 В массиве из n строк проверить, содержит ли к-я строка первые символы //. Если не содержит, вставить эти символы в строку.
1.26 В массиве строк удалить все строки, являющимися HTML –тегами ссылок, которые начинаются <a href=” …”>
1.27 В массив случайным образом помещаются строки - пословицы. Случайным образом выбрать к пословиц.
