
- •Минск, бгу,
- •Содержание.
- •Глава1. Компьютерные сети и протоколы…………………………..15
- •Введение в Интернет Коротко об истории Интернет
- •Как работает Интернет?
- •Система адресации
- •Способы подключения к сети
- •Сервисы Интернет
- •Электронная почта
- •Передача файлов по ftp
- •Всемирная паутина www
- •Задания по теме “Введение в Интернет”
- •Глава 1. Компьютерные сети и протоколы
- •Локальные сети
- •Распределенные и глобальные сети
- •Сеть vpn
- •Адресация в локальных сетях
- •Адресация в глобальных сетях и в Интернет
- •Понятие и краткое описание протоколов
- •Соотношение между tcp/ip и osi/iso
- •Межсетевой протокол iPv4
- •Транспортный протокол tcp
- •Протокол дэйтаграмм udp
- •Протоколы arp и rarp
- •Протоколы сетевого уровня
- •Протоколы электронной почты
- •Протоколы smtp и pop3
- •Протокол imap4
- •Спецификация mime
- •Протокол ftp
- •Http – Протокол передачи гипертекстов
- •Клиентский запрос http
- •Ответ сервера
- •Развитие прикладных протоколов: soap, rest, rpc
- •Безопасность в сети
- •Протокол ssl
- •Установление подлинности участников
- •Проблемы с кодировкой и Unicode
- •Задания по теме «Протоколы Интернет»
- •Глава 2. Проектирование и разработка сайтов
- •Виды сайтов
- •Этапы проектирования и разработки сайта
- •Модели проектирования и управление проектами
- •Итерационная (спиральная) модель
- •Программные средства управления проектами
- •Логическое проектирование дизайна сайта
- •Главная страница сайта
- •Внутренние страницы сайта
- •Оценки качества Веб – сайтов
- •Глава 3. Краткий обзор основных технологий разработки Веб приложений
- •Язык разметки гипертекста xml
- •Синтаксис xml
- •Объявление xml
- •Конструкции языка
- •Правильно построенные и действительные документы xml
- •Отображение xml документа
- •Словари xml
- •Вставка флэш в страницу
- •Язык ActionScript
- •Видео-аудио проигрыватели
- •Технология «клиент-сервер»
- •Язык Java на клиентской и серверной странице
- •Базы данных и язык sql
- •Нормализация модели данных
- •Язык sql
- •Команды определения структуры данных
- •Команды манипулирования данными
- •Команды управления транзакциями
- •Команды управления доступом
- •Извлечение данных, команда select
- •Секция where
- •Групповые функции
- •Секция having
- •Изменение данных
- •Команда insert
- •Язык разметки гипертекста html
- •Формы html
- •Новые элементы форм html5
- •Новый тип input – range служит для ввода значения из диапазона
- •Теги div и span
- •Метатеги
- •Новые возможности html5
- •Поддержка аудио
- •Поддержка видео
- •Атрибут Controls
- •Валидация документов
- •Каскадные таблицы стилей css
- •Способы включения каскадных таблиц стилей
- •Теги div , span и link
- •Свойства шрифтов (фонтов).
- •Заголовок1 Заголовок2 Заголовок3
- •Стили текста.
- •Цвет и фон.
- •Свойства списков
- •Свойства таблиц
- •Псевдоклассы
- •Псевдостили текста
- •Псевдоэлементы
- •Форматирование псевдоклассов и псевдоэлементов
- •Различные свойства
- •Представление документа в виде блоков
- •Отступы, поля, позиционирование
- •Границы элементов
- •Визуальное форматирование
- •Визуальные эффекты
- •Новое в css3
- •Глава 5. Язык JavaScript Введение
- •Включение скриптов JavaScript в html-код
- •Создание простых сценариев
- •Комментарии. Скрытие сценариев от браузеров
- •Отладка скриптов. Ввод и вывод данных
- •Описание языка Типы данных
- •Преобразование типа
- •Булев тип
- •Переменные типа Undefined и Null
- •Массивы
- •Операторы и выражения
- •Оператор присваивания
- •Арифметические операторы
- •Операторы сравнения
- •Функции пользователя
- •Передача параметров по значению и по ссылке
- •Глобальные и локальные переменные
- •Модель событий
- •Ключевое слово this
- •Перехват события.
- •Методы addEventListener, removeEventListener, attachEvent.
- •Исключения: throw/catch/finally
- •Объектная модель
- •Пользовательские объекты
- •Прототипы
- •Встроенные объекты String, Array, Date, Math Объект String
- •Объект Array
- •Объект Date (Дата)
- •Методы объекта Date
- •Коллекции
- •Свойства элемента innerHtml и outerHtml
- •Навигация по дереву документа
- •Создание новых узлов
- •Удаление и замена узлов в документе
- •Объект window
- •Свойства окна, передаваемые методу open()
- •Методы объекта window
- •Свойства и методы объекта navigator
- •Свойства и методы объекта history
- •Свойства и методы объекта location
- •Объект layer
- •Свойства объекта layer
- •Методы объекта layer
- •Использование каскадных таблиц стилей и объекта style
- •Модель ajax:
- •Класс xmlHttpRequest
- •Свойства класса
- •Методы класса
- •Создание экземпляра объекта
- •Использование dom
- •Объект FormData
- •Работа с cookie
- •Синтаксис http заголовка для поля Cookie
- •Способы задания значений cookie
- •Примеры на JavaScript
- •Глава 6. Язык серверных скриптов php
- •Инструменты для разработки
- •Как php работает
- •Описание языка Типы данных
- •Массивы и инициализация массивов
- •Операции и выражения
- •Операции сравнения
- •Логические операции
- •Строковые операции
- •Операторы управления
- •Функции
- •Рекурсивные функции
- •Аргументы функции
- •Область действия и время жизни переменных
- •Изменяемые (динамические) переменные
- •Внешние библиотечные функции
- •Функции для работы с массивами
- •Функции для работы со строками.
- •Функции форматных преобразований строк
- •Преобразование строк и файлов к формату html и наоборот
- •Преобразование html в простой текст
- •Преобразование строки к верхнему и нижнему регистру
- •Установка локальных настроек
- •Регулярные выражения
- •Perl-совместимые функции для работы с регулярными выражениями
- •Функции даты и времени
- •Математические функции
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и журнал error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Язык запросов sql
- •Операция соединения.
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Организации работы с данными
- •Передача данных от клиента к серверу и обратно. Протокол http
- •Клиентские методы http
- •Обработка html-форм
- •Передача переменных из формы в скрипт.
- •Передача значений переменных по методу get
- •Передача данных из формы на сервер по методу get
- •Передача данных из формы на сервер по методу post
- •Php и различные формы
- •Обработка форм
- •Более сложные переменные формы
- •Глава 7. Лабораторные работы Лабораторная работа 1 (4 часа). Инструменты и средства создания простых сайтов
- •Лабораторная работа 3 (4часа). Применение каскадных таблиц стилей css
- •Трехколоночный контейнерный макет сайта
- •Лабораторная работа 4. Применение каскадных таблиц стилей css
- •Некоторые подсказки по синтаксису css:
- •1. Свойства шрифтов.
- •2. Свойства текста.
- •3. Свойства цвета и фона.
- •4. Свойства рамки.
- •5. Свойства списков.
- •6. Свойства изображений.
- •Форматирование блока
- •Лабораторная работа 5 (4 часа). Динамика и JavaScript на Веб –странице.
- •Ответить на следующие вопросы
- •Пример вывода даты и времени.
- •Пример вывода строки в стиле печатной машинки
- •Дополнительные задачи и упражнения по JavaScript
- •Лабораторная работа 6 по JavaScript (4 часа).
- •Проверка правильности заполнения формы на сайте
- •Методы объекта window
- •Методы focus() и blur()
- •Лабораторная работа 7. Php Задание 1. Массивы и строки Выполнить одно из перечисленных ниже упражнений
- •Задание 2. Функции
- •Задание 4. Работа с базами данных Выполнить одно из перечисленных ниже упражнений
- •Задание 5. Создание web-объектов Список заданий
- •Приложение 1. Курсовые работы Курсовая работа 1. Создание клиентских приложений
- •Курсовая работа №2. Сайты клиент-сервер
- •Каталог товаров
- •Система вопрос/ответ
- •Курсовая работа №3. Технологии разработки Веб – приложений Проекты сайтов
- •Перечень заданий
- •Приложение 2. Быстрая разработка Веб-приложений и cms
- •Начало работы с сайтом
- •Установка нового модуля
- •Создание шаблона
- •Создание индивидуальных шаблонов
- •Движок шаблонирования xTemplate
- •Создание нового шаблона
- •Удаление блока с формой входа на сайт
- •Включение блока для отображение популярных статей
- •Удаление ссылки "Далее" в отображение статьи
- •Drupal: практические примеры
- •Как заставить Drupal работать быстрее
- •Литература
Групповые функции
Если нас не интересуют строки таблицы как таковые, а интересуют некоторые итоги, мы можем использовать в процессе выборки колонок таблиц групповые функции. Основные групповые функции представлены ниже:
Функция |
Описание |
SUM(Field) |
Вычисляет сумму по указанной колонке |
MIN(Field) |
Вычисляет минимальное значение по указанной колонке |
MAX(Field) |
Вычисляет максимальное значение по указанной колонке |
AVG(Field) |
Вычисляет среднее значение по указанной колонке |
COUNT(*) |
Вычисляет количество строк в результирующей выборке |
COUNT(Field) |
Вычисляет количество не пустых значений в колонке |
Например, чтобы узнать максимальную зарплату, получаемую сотрудниками в организации, можно выполнить запрос вида:
SELECT MAX(SALARY)FROM Employees
Общее количество записей в таблице вернет запрос вида:
SELECT COUNT(*)FROM Employees
По умолчанию группой, на которой вычисляется групповая функция, является вся результирующая выборка. Если мы нуждаемся в вычислении промежуточных итогов, мы можем разбить итоговую выборку на подгруппы с помощью необязательной секции GROUP BY:
GROUP BY Field1 [, Field2] [, …]
Например, подсчитаем максимальную зарплату по отделам:
SELECT DeptNum, MAX(SALARY)
FROM Employees
GROUP BY DeptNum
В этом случае функция MAX будет считаться отдельно для всех записей с одинаковым значением поля DeptNum.
Секция having
На промежуточные итоги может быть наложен дополнительный фильтр посредством секции HAVING. В приведенном примере в результат попадут только отделы, максимальная зарплата в которых превышает 1000 у.е.:
SELECT DeptNum, MAX(SALARY) FROM Employees
GROUP BY DeptNum HAVING MAX(SALARY) > 1000
Важно понимать, что секции HAVING и WHERE взаимно дополняют друг друга. Сначала с помощью ограничений WHERE формируется итоговая выборка, затем выполняется разбивка на группы по значениям полей, заданных в GROUP BY. Далее по каждой группе вычисляется групповая функция и в заключение накладывается условие HAVING.
Изменение данных
Под изменением данных понимаются следующие операции:
втавка новых строк в таблицу;
именение существующих строк;
уаление существующих строк.
Команда insert
Добавление новых записей в таблицу осуществляется посредством команды INSERT. Она имеет следующий синтаксис:
INSERT INTO <имя таблицы> [(<список имен колонок>)]
VALUES(<список констант>)
Например, для внесения сведений о новом работнике необходимо выполнить следующую команду:
INSERT INTO Employees(TabNum, Name, Position, DeptNum,
Salary)
VALUES(45, ‘Сергеев’, ‘Старший менеджер’, 15, 850)
После выполнения команды таблица Employees будет выглядеть следующим образом:
Employees |
|
|||
TabNum |
Name |
Position |
DeptNum |
Salary |
1 |
Иванов |
Начальник |
15 |
1000 |
2 |
Петров |
Инж. |
15 |
500 |
3 |
Сидоров |
Менеджер |
10 |
700 |
45 |
Сергеев |
Старший менеджер |
15 |
850 |
Если какая-либо колонка в списке будет опущена при вставке – в соответствующее поле записи автоматически будет занесено пустое значение (NULL):
INSERT INTO Employees(TabNum, Name, DeptNum, Salary)
VALUES(45, ‘Сергеев’, 15, 850)
После выполнения команды таблица Employees будет выглядеть так:
Employees |
|
|||
TabNum |
Name |
Position |
DeptNum |
Salary |
1 |
Иванов |
Начальник |
15 |
1000 |
2 |
Петров |
Инж. |
15 |
500 |
3 |
Сидоров |
Менеджер |
10 |
700 |
45 |
Сергеев |
|
15 |
850 |
Количество констант в секции VALUES всегда должно соответствовать количеству колонок. Список колонок в команде INSERT может быть опущен целиком, в этом случае список констант в секции VALUES должен точно соответствовать описанию колонок таблицы в словаре данных СУБД, иначе команда будет отвергнута ядром БД. Пример правильной команды:
INSERT INTO Employees VALUES(45, ‘Сергеев’,
‘Старший менеджер’, 15, 850)
Команда вида:
INSERT INTO Employees VALUES(45, ‘Сергеев’, 15, 850)
Завершится ошибкой, так как количество констант не соответствует реальному количеству колонок в таблице. В колонку можно в явном виде внести пустое значение посредством ключевого слова NULL. Последний запрос можно переписать следующим образом:
INSERT INTO Employees VALUES(45, ‘Сергеев’, NULL, 15, 850)
В этом случае команда вставки отработает корректно и в поле Position будет внесено пустое значение. Очевидно, что к аналогичному результату приведет и команда:
INSERT INTO Employees(TabNum, Name, Position, DeptNum,
Salary)
VALUES(45, ‘Сергеев’, NULL, 15, 850)
Кроме простого добавления новых записей команда INSERT позволяет осуществлять пакетную перекачку данных из таблицы в таблицу. Синтаксис подобной команды следующий:
INSERT INTO <имя таблицы> [(<список имен колонок>)]
<команда SELECT>
Например:
INSERT INTO Table1(Field1, Field2)
SELECT Field3, (Field4 + 5) FROM Table2
Чтобы удалить ненужные записи из таблицы – следует использовать команду DELETE:
DELETE FROM <имя таблицы> [WHERE <условия поиска>]
Если опустить секцию WHERE – из таблицы будут удалены все записи. Иначе – только записи, удовлетворяющие критериям поиска. Примеры команды DELETE:
DELETE FROM Employees
DELETE FROM Employees WHERE TabNum = 45
Изменить ранее внесенные командой INSERT данные можно с помощью команды UPDATE:
UPDATE < имя таблицы>
SET <имя колонки> = <новое значение> , <имя колонки> =
<новое значение>, …
WHERE <условия поиска>]
При отсутствии секции WHERE обновлены будут все строки таблицы. Иначе – только подходящие под заданные условия. Примеры:
UPDATE Employees SET Salary = Salary + 100
UPDATE Employees
SET Position = ‘Старший менеджер’, Salary = 1000
WHERE TabNum = 45 AND Position IS NULL
Для создания новых таблиц используется команда CREATE TABLE. В общем виде ее синтаксис следующий:
CREATE TABLE <имя таблицы>
(
<имя колонки> <тип колонки>[(<размер колонки>)] [<ограничение целостности уровня колонки>]
[, <имя колонки> <тип колонки>[(<размер колонки>)] [<ограничение целостности уровня колонки>]]
[, …]
[<ограничение целостности уровня таблицы>]
[,<ограничение целостности уровня таблицы>]
[, …]
)
Примеры:
CREATE TABLE Departments
(DeptNum int NOT NULL PRIMARY KEY,
Name varchar(80) NOT NULL)
CREATE TABLE Employees
(
TabNum int NOT NULL PRIMARY KEY,
Name varchar(100) NOT NULL,
Position varchar(200),
DeptNum int,
Salary decimal(10, 2) DEFAULT 0,
CONSTRAINT FK_DEPARTMENT FOREIGN KEY (DeptNum)
REFERENCES Departments(DeptNum)
)
Созданную таблицу можно изменить с помощью команды ALTER TABLE. Команда ALTER TABLE позволяет добавлять новые колонки и ограничения целостности, удалять их, менять типы колонок, переименовывать колонки. Примеры различных вариантов:
ALTER TABLE Departments ADD COLUMN City int
ALTER TABLE Departments DROP COLUMN City
Удаление ранее созданной таблицы производится командой DROP TABLE:
DROP TABLE Departments
СУБД MySQL
MySQL – многопользовательский, многопоточный сервер базы данных. Имеет хорошую скорость и гибкость, если использовать его для хранения изображений и файлов. MySQL соответствует спецификации ANSI 92 SQL. Основные достоинства MySQL - скорость, устойчивость и легкость в работе.
Другие преимущества:
Поддержка нескольких одновременных запросов (многопоточность).
Возможность записи фиксированной, а также переменной длины.
Оптимизация связей с присоединением многих данных за один проход.
Гибкая система паролей и доступов.
ODBC драйвер в комплекте с исходником.
Интерфейс с языками C и perl.
Легко управлять таблицей (включая добавление и удаление ключей и полей).
До 16 ключей в таблице (в каждом ключе до 15 полей).
Поддержка ключевых полей, а также специальных полей в операторе CREATE.
Поддержка чисел длинной от 1 до 4 байт (ints, float, double, fixed), строк переменной длины и меток времени.
Утилита проверки и ремонта таблицы (isamchk).
Быстрая система памяти, основанная на потоках.
Псевдонимы применимы не только к таблицам, но также к отдельным колонкам в таблице.
Все поля имеют значение по умолчанию. INSERT можно использовать на любом подмножестве полей.
Язык клиентских скриптов JavaScript
Язык JavaScript будет рассмотрен ниже. JavaScript - язык управления сценариями просмотра гипертекстовых страниц. JavaScript позволяет получить доступ к библиотекам объектов браузеров, динамически формировать Web-страницы. JavaScript позволяет выполнять на стороне клиента многие функции, которые ранее выполнялись на стороне сервера. Примером является проверка заполнения форм до того, как пользователь передаст информацию Web-серверу. JavaScript позволяет читать и записывать файл cookie, который содержит информацию о пользователе, посылаемую веб-сервером на компьютер пользователя, для сохранения и использования в следующем сеансе связи.
JavaScript является скриптовым языком, программы обходятся без компиляции. JavaScript вместе с XML и библиотекой JQuery образует основу популярной технологии AJAX.
Сжатие изображений с помощью фракталов
Существуют ряд алгоритмов для сжатия изображения с помощью фракталов. Они основаны на теореме Банаха о сжимающих преобразованиях и являются результатом работы исследователя Технологического института шт. Джорджия Майкла Барнсли.
Дорогу осилит идущий…
Из научного фальклора
Глава 4. Информационной обмен, НТМL и CSS
Интернет является средством коммуникации, средством обмена информацией, средством хранения и источником информации. В сети используются все основные формы представления информации: аудио, видео, текстовая информация. При обработке информации обычно выделяют три уровня: моделирование, передача, интерпретация информации.
На этапе моделирования создается информационный объект, содержащий данные. На этом этапе выделяются следующие проблемы:
- Анализ предметной области. При этом ищется ответ на вопрос: «Какую именно информацию мы хотим передать».
- Создание правил формализации. «Какая формальная схема, какой способ позволяет лучше всего передать намерения, смысл? Например, музыка, живопись или текст»
- Кодирование в терминах правил. «Как эффективнее выразить информацию в выбранном формализме? »
Второй этап - это этап передачи информации по указанному адресу. Передача может осуществляться с помощью голоса, визуально, явной формализации в тексте. Нас интересует передача информации с использованием протоколов передачи данных Интернет. При этом нужно обеспечить передачу данных полностью и, желательно, без искажений.
Последний этап является уровнем интерпретации информации. На этом уровне адресат производит анализ данных и выделяет заложенный в них смысл с помощью специальных правил, тем самым, реконструируя исходные знания. На уровне интерпретации выполняется раскодирование пакета. При этом выбираются формальные правила для извлечения знаний и смысла из пакета. Интерпретация подразумевает интерпретирование извлеченного смысла, реконструкция модели знаний. Дальнейшие действия с информацией предполагают обогащение данных и их последующая передача.
Интерпретация основана на заданных или предполагаемых правилах и подбирается в каждом случае. Например, часто сложно впервые прочитать текст, написанный незнакомым подчерком, понять иностранную речь с выраженным акцентом.
Каждый из уровней важен при передаче информации. Гипертекстовая информация, передаваемая в Веб, предусматривает описание и логическую разметку документа на основе языков HTML и XHTML. В отображении документа важную роль играет язык каскадных стилей CSS.