Программа курса лекций "Языки программирования Internet" Монахов В.В., Уткин А.Б.
Часть I
TCP/IP
1.	Протокол TCP/IP. 
Цели и причины стандартизации сетевых протоколов. 7-и уровневая модель протоколов ISO. Организация пакетов. IP адрес. Классы адресов. Протоколы IGMP, ARP, ICMP, UDP, IP. Структура IP пакетов. Семейство протоколов TCP/IP, их отнесение к уровням 7-и уровневой модели ISO. Определение понятий сокета и порта.
2.	Организация сети на основе протоколов TCP/IP.
Недостатки IP адресации. Символьные имена хостов. Службы WINS и DSN. Порядок разрешения имен службы DSN. Связь с именами компьютеров в протоколе NetBIOS. Алгоритм раздачи IP адресов для серверов, шлюзов и рабочих станций (стандартный подход). Разделение на подсети. Анонсированные и неанонсированные IP адреса. "Внутренние" сети и зарезервированные диапазоны IP адресов. Понятия intranet и Internet. Протокол DHCP.
3.	Настройки Internet browser'а на примере MS Internet Explorer'а.
Стартовая страница. Кеш страниц. Настройка фонтов и локализация. Служба ограничения доступа к ресурсам клиента. Ограничение доступа к сайтам Internet. Настройка параметров proxy-server'ов. Службы сети Internet: http, ftp, telnet. URL - правила организации и составные части. Основные поисковые системы Internet. Форматы запросов. Конференции.
4.	Средства контроля состояния сети.
Стандартные утилиты ping.exe, arp.exe, tracert.exe. Предоставляемая информация, доступные ключи.
HTML
5.	Введение в HTML.
История. Стандарты (2.0, 3.2, 4.0). Структура HTML документа. Понятие тега и их парности. Теги <HTML>, <BODY>, <HEAD>, <TITLE>. Понятие атрибута тега. Теги структурирования и форматирования. 
Теги абзаца: <P>, <BR>, <WBR>, <NOBR>. 
Горизонтальный разделитель: <HR>. 
Теги листингов: <PRE>, <LISTING>, <XMP>, <BLOCKQUOTE>. 
Теги выравнивания: <CENTER>, <LEFT>, <RIGHT>.
6.	Управление фонтами в HTML документе.
Теги машинописного выделения: <SAMP>, <CODE>, <KBD>.
Теги логического выделения: <ADDRESS>, <DFN>, <CITE>, <EM>, <VAR>, <TT>.
Теги физического выделения: <B>, <I>, <U>, <BLINK>, <STRIKE>.
Теги <BASEFONT> и <FONT>.
7.	Списки в HTML документе.
Ненумерованный список (<UL>). Вспомогательный тег <LI>. Нумерованный список (<OL>). Теги <MENU>, <DIR>. Список определений (<DL>). Вспомогательные теги <DT> и <DD>. 
8.	Неформатирующие теги и объекты в HTML документе.
Употребление символа '&' в HTML документе. Причины и методы использования. Теги комментария <!...> и <!-- ... -->. Вставка картинок (<IMG>). Организация ссылок в HTML (<A>).
9.	Фреймы.
Структура мастер-документа. Теги <FRAMESET>, <FRAME>, <NOFRAME> и их атрибуты. Способы задания разбиений рабочей области (абсолютное, процентное, остаточное). Навигация во фреймах на примере оглавления. Сложные разбиения рабочей области.
10.	Таблицы в HTML.
Тег контейнера таблицы <TABLE>. Заголовки колонок и строк (<TR>, <DT>, <TH>). Заголовок таблицы (<CAPTION>). Слияние ячеек и выравнивание текста в них. Возможные атрибуты упомянутых тегов. Иерархия атрибутов.
11.	Формы в HTML.
Назначение форм. Тег контейнера формы <FORM>. Способы передачи введенных пользователем данных на сервер. Возможные элементы диалога с пользователем (<TEXTAREA>, <INPUT>, <SELECT>). Перечень атрибутов и их назначение.
JavaScript
12.	Введение в JavaScript.
Цели создания. Интеграция с HTML. Отличия от Java. Теги <SCRIPT>, <NOSCRIPT>. Функции и переменные в JavaScript. Области видимости переменных. "Типы" переменных. Арифметические операции. Логические операции над целыми и сдвиги. Операторы присваивания. Операции над логическими переменными.
13.	Базовые синтаксические конструкции языка.
Оператор if...else, сокращенный if (через оператор ?). Операторы цикла: for(...;...;...) , for(iterator in object) , while(...). Автоинкрементация и автодекрементация. MS расширения: switch(...){case:... default:...}, цикл do{...}while(...), операторы === и !==. 
14.	Встроенные объекты.
Деление встроенных объектов на объекты - wrapper'ы (Boolean, String, Number); объекты, расширяющие типы данных (Array, Date) и синтаксис языка (Function); объекты типа namespace (Math, Global). Свойства и методы перечисленных объектов. Возможные способы применения. Особенность передачи переменных - объектов как параметров в функции. 
15.	События в JavaScript.
Понятие события. Способы и цели применения. Источники событий. Методы обработки событий. Специфика Microsoft Internet Expolorer'а.
16.	Объектная модель browser'а. Класс Window (обзор).
Отсутствие стандарта. Диаграмма классов для MS IE. Разделение понятий класса и экземпляра класса. Переменная windows. Важнейшие свойства и методы класса Window. Создание новых модальных и немодальных окон. Поддержка отладочных диалогов (alert, confirm, prompt). Метод navigate. Поддерживаемые события и реализация реакций на события. Понятие коллекции. Свойство-коллекция frames.
17.	Класс Document.
Свойство window.document. Связь с тегом <BODY> (свойства класса и их связь с атрибутами тега). Методы динамического формирования HTML документа. Допустимые события класса и их обработка. Свойства - коллекции (обзор). Коллекция all и ее элементы.
18.	Класс Form.
Коллекция window.document.forms и ее элементы. Связь с тегом <FORM> (свойства класса и их связь с атрибутами тега). Свойство-коллекция elements и ее элементы. Объекты-wrapper'ы для тегов <TEXTAREA>, <INPUT>, <SELECT>, их свойства, методы и поддерживаемые события. 
19.	Вспомогательные свойства класса Window.
Рассмотрение свойств и методов классов, предоставляемых browser'ом в экземплярах: window.history, window.location, window.navigation, window.event. 
Часть II
1. Введение. Расширения, добавленные в стандарт HTML 4.0 (происхождение термина Dynamic). Понятие структуры и стиля документа. Спецификация определения типа документа (document type definition).
2. Расширенный набор тегов HTML 4.0: <OBJECT>, <LABLE>, <BUTTON>, <FIELDSET>, <IFRAME>, <DIV>, <SPAN>, <MARAQUEE>. Атрибуты TABINDEX, TITLE, DISABLED, READONLY. Pасширение тега <SCRIPT>. 
3. Каскадные таблицы стилей (Cascading Style Sheets - CSS). Причины реализации в стандарте DHTML. Три метода реализации CSS в составе документа DHTML. Понятия класс, псевдокласс селектор, дескриптор. Применение тега <STILE>, атрибутов ID, CLASS, STYLE. Правила наследования в CSS.
4. Примеры использования CSS в маркированных списках, определение рабочей области документа и "врезках". CSS-свойства, используемые для управления видимостью и формой курсора. 
5. Генерация и поддержка событий в DHTML. Правило "всплытия" события (event bubbling). Объект event и его свойства. Понятие действия по умолчанию. Три метода связывания события с его обработчиком. Атрибут FOR тега <SCRIPT>.
6. Обзор событий DHTML, генерируемых манипулятором типа "мышь": onmousedown, onmouseup, onmousemove, onclick, ondblclick, onmouseover, onmouseout, ondragstart, onselectstart, onselect. Последдовательность генерации событий. Особенности "всплытия" события ondblclick. 
7. События перемещения фокуса ввода onfocus и onblure. События таймера. Примеры и возможные способы практического применения. Предел разрешения таймера.
8. Манипулирование окнами. Объект window и его методы: moveBy, moveTo, resizeBy, resizeTo, scrollBy, scrollTo, scroll и свойства: scrollHeight, scrollTop, scrollLeft, scrollWidth, clientWidth, clientHeight. Создание окон с помощью методов alert, confirm, open, showModalDialog. Аргумент features и его допустимые значения. Свойства opener и closed.
9. Деление окна на рабочие области с использованием фреймов. Синтаксис тега <FRAMESET>. Алгоритм поиска фрейма с заданным именем в дереве фреймов. Навигация в дереве фреймов. Фреймы, реализованные в строке атрибутов. Событие onreadystatechange и свойство readyState, определяющие доступность документа. 
10. Доступ к атрибутам тегов из Javascript. Правило имя образования и исключения из него (tagName, htmlFor, className). Методы getAttribute, setAttribute, removeAttribute. Свойства элементов, используемые для навигации по дереву синтаксического анализа тегов (parentElement, all, children).
11. Методы изменения CSS. Семейство document.styleSheet. Связь элементов из коллекций document.all (теги <STYLE> и <LINK>) и document.styleSheet. Атрибут DISABLED (теги <STYLE> и <LINK>)и метод доступа к нему в объектной модели. Контекст воспроизведения. Атрибут MEDIA и его стандартные значения. Изменение стиля объекта модификацией свойства style. Составные свойства CSS и применение к ним правила имя образования (на примере свойства background). Модификация таблицы каскадных стилей (свойства readOnly и cssText, семейство rules, методы addRule, removeRule). Неизменность селектора. 
12. Возможности импорта в CSS (директива @import и динамическое импортирование). Правила наследования при использовании импортированных таблиц. Методы addImport, removeImport, createStyleSheet. События CSS (onreadystatechanged, onload) и последовательность их следования.
13. Введение в динамическое позиционирование. История развития стандарта CSS-Positioning. Три вида позиционирования: статическое, абсолютное, относительное. Свойства CSS, влияющие на динамическое позиционирование и их допустимые значения (position, top, bottom, left, right, width, height, clip, z-index). Список тегов, допускающих абсолютное позиционирование. Возможные применения относительного и абсолютного позиционирования. Термины информация воспроизведения и информация анализа. Дерево воспроизведения (рендеринга) и связанные с ним свойства элементов (offsetParent, offsetTop, offsetLeft, offsetWidth, offsetHeight). Список элементов, порождающих собственные контексты воспроизведения. Метод scrollIntoView.
14. Динамическое содержание. Три способа динамического изменения DHTML документа. Методы write/writeln. Свойства и методы для манипуляции содержанием элемента (innerHTML, innerText, outerHTML, outerText, insertAdjacentHTML, insertAdjacentText). Пример со ссылками.
15. Динамическое изменение содержания DHTML документа, используя объект TextRange. Назначение объекта TextRange, его важнейшие свойства и методы (parentTextEdit, isTextEdit, text, htmlText, pastHTML), способы создания. Методы изменения области выделения (expand, collapse, moveToElementText, move, moveStart, moveEnd, moveToPoint). Методы findText, duplicate. Методы сравнения объектов TextRange (inRange, isEqual, compareEndPoints, setEndPoints). Mетоды scrollIntoView, getBookMark, moveToBookMark, select. Дополнительные возможности браузера MS IE, обеспечивающие функциональность текстового редактора (queryCommandEnabled, queryCommandSupported, queryCommandState, queryCommandValue, execCommand) 
16. Связывание данных в DHTML. Причина возникновения. Положительные и отрицательные стороны обработки данных на стороне клиента. Термины DB-провайдер, связывание данных, агент связывания и повторения. Общая схема взаимодействия клиента и сервера при обмене данными. Требования, предъявляемые к DB-провайдеру. Дополнительные атрибуты для связывания данных c различными тегами (DIV, SPAN, MARQUEE, BUTTON, LABEL, INPUT, TEXTAREA, SELECT, IMG, A, OBJECT, APPLET, IFRAME, FRAME, TABLE). Свойство recordNumber в таблицах с повторением. Свойства OLE-DB провайдера RDS, обеспечивающие выборку данных и навигацию по базе. Дополнительные события, генерируемые при связывании данных (onbeforeupdate, onafterupdate, onerrorupdate, onrowexit, onrowenter).
Основная литература:
1. Э.Титтел, К.Хадсон, Дж.М.Стюарт, "TCP/IP. Сертификационный экзамен – экстерном (экзамен 70-059)" (красная книжка на рус. яз. в мягком переплете), СПб, "Питер", 1999. 
2. С.Айзекс, "Dynamic HTML Секреты создания интерактивных Web-страниц", СПб., "BHV - Санкт-Петербург", 1998. 
3. А.Федоров, "JavaScript для всех", М., "Компьютер Пресс", 1998. 
4. http://msdn.microsoft.com/workshop/Author
5. http://www.niif.spb.su/~monakhov/www/languag.html
Дополнительная литература:
1. Т.Кенцл, "Форматы файлов Internet", СПб, "Питер", 1997.
2. Р.Дарнелл, "JavaScript: справочник", СПб, "Питер", 1998.
3. А.В.Фролов, Г.В.Фролов "Сервер Web своими руками. Язык HTML, приложения CGI и ISAPI, установка серверов Web для Windows", М., "Диалог-МИФИ", 1998.
4. А.В.Фролов, Г.В.Фролов "Сценарии JavaScript в активных страницах Web", М., "Диалог-МИФИ", 1998.
5. Дж.Мейнджер, "JavaScript: Основы программирования", "BHV - Киев", 1997.
6. С.Дунаев, "Internet-технологии", М., "Диалог-МИФИ", 1997.