WEB - технологии ФКН ВГУ некоторые вопросы и ответы (весьма много)))
Primary tabs
Forums:
1. Передача данных в Интернет. Коммутация пакетов. Проблема совместимости
аппаратного и программного обеспечения в Интернет. Telnet и FTP.
2. Идентификация компьютеров и ресурсов в Интернет. URL, IP-адрес, доменное имя, DNS,
TCP-порты.
3. Основные утилиты: ipconfig, ping, tracert, netstat, telnet.
4. Основные протоколы Интернет: IP, TCP, HTTP, FTP, Telnet.
5. Международные организации, курирующие развитие архитектуры и протоколов
Интернет. RFC документы.
6. HTTP протокол. Структура запроса клиента и ответа сервера.
7. Спецификация MIME. Применение MIME в рамках протокола HTTP.
8. Cookie. Хранение, запись и передача Cookie.
9. Исполняемые коды программ для Web. Программы, исполняющиеся на стороне сервера
и программы, исполняющиеся на стороне клиента.
10. Язык JavaScript. Основные конструкции языка. Взаимодействие с элементами HTML
страницы. Объектная иерархия JavaScript. Обработка событий.
11. CGI стандарт. CGI сценарий. Порядок работы CGI сценария. Передача данных сценарию
методами GET и POST. Переменные окружения Web-сервера.
12. SSI и ASP. Краткая характеристика и использование в HTML страницах.
13. Язык Perl. Краткое описание.
14. Предопредёленные переменные в Perl.
15. Функции для работы с потоками в Perl. Дескриптор потока.
16. Массивы в Perl: скалярные, ассоциативные. Их инициализация и обращение к элементам
массива.
17. Предопределённый массив ENV.
18. Расширенные формы Бэкуса-Наура (EBNF). Регулярные выражения.
19. Операторы поиска и замены, посимвольной замены и связывания в Perl. Использование
предопределенных переменных в операторах поиска и замены. Функция split().
20. Введение в PHP. Краткая характеристика языка.
21. PHP: имена, константы, переменные. Внешние переменные. Переменные, содержащие
имена переменных.
22. PHP: функции, передача аргументов по ссылке, область видимости, переменные,
ссылающиеся на функции.
23. PHP: массивы, их инициализация, обращение к отдельным элементам и обход массивов в
цикле (оператор foreach). Встроенные функции массивов. Предопределенные массивы.
Многомерные массивы.
24. ISAPI – расширения и ISAPI – фильтры. Их назначение, достоинства и недостатки.
25. Программные и объектные интерфейсы для взаимодействия Web-сервера с СУБД-
сервером: DB Library, ODBC, RDO, OLE DB, ADO. Их достоинства и недостатки.
26. Недостатки языка HTML
27. Языки разметки: SGML, HTML, XML. Их связь между собой.
28. Преимущества языка XML.
29. Web-порталы. Их назначение, классификация. Средства разработки.
30. Веб-сервисы
31. Стандарты для Web-сервисов.
32. WEB - интеграция.
33. Интеграция на основе XML
34. XML
35. XSL
36. XSLT
37. Парсеры 1. Передача данных в Интернет. Коммутация пакетов. Проблема совместимости аппаратного и
программного обеспечения в Интернет. Telnet и FTP
Типы поставщиков услуг Интернета:
? просто поставщик услуг Интернета выполняет транспортную функцию для конечных
пользователей – передачу их трафика в сети других поставщиков услуг Интернета;
? поставщик интернет-контента имеет собственные информационно-справочные
ресурсы, предоставляя их содержание в виде веб-сайтов;
? поставщик услуг хостинга предоставляет свои помещения, каналы связи и серверы для
размещения внешнего контента;
? поставщик услуг по доставке контента занимается только доставкой контента в
многочисленные точки доступа с целью повышения скорости доступа пользователей к
информации;
? поставщик услуг по поддержке приложений предоставляет клиентам доступ к крупным
универсальным программным продуктам, например SAP R3;
? поставщик биллинговых услуг обеспечивает оплату счетов по Интернету;
Коммутация IP-пакетов — технология, использующаяся для оптимизации работы
маршрутизаторов при использовании неизменных или редко меняющихся маршрутов. Суть
технологии — обработка IP-пакета без участия центрального процессора маршрутизатора.
Первый пакет заданного типа обрабатывается процессором в полном объёме, все последующие
аналогичные уже не обрабатываются процессором, а коммутируются. Подобная технология
позволяет существенно снизить нагрузку на процессор маршрутизатора и уменьшить задержку в
прохождении пакета. Самым существенным недостатком этой технологии является проблема
смены маршрута, которая обнаруживается не сразу после изменения
Преимущества и недостатки обратной совместимости
Главным недостатком обратной совместимости является усложнение аппаратного или
программного обеспечения. В случае с ПО это чаще всего приводит к увеличению размеров
программного продукта, а в случае с аппаратным обеспечением это приводит усложнению
архитектуры соответствующего элемента аппаратного обеспечения. В конечном итоге всё это
приводит к увеличению стоимости производства и поддержки (часто после смены базовой
технологии невозможно найти специалистов поддержки, владеющих обеими технологиями в
достаточной степени). Между тем отсутствие обратной совместимости вызывает ряд неудобств.
Во многих случаях предприятия вынуждены пользоваться более ранними версиями
операционной системы, так как используемое программное обеспечение требует устаревшую
версию.
FTP (File Transfer Protocol — протокол передачи файлов) — протокол, предназначенный для
передачи файлов в компьютерных сетях. FTP позволяет подключаться к серверам FTP,
просматривать содержимое каталогов и загружать файлы с сервера или на сервер; кроме того,
возможен режим передачи файлов между серверами. FTP позволяет обмениваться файлами и
выполнять операции над ними через TCP-сети. Данный протокол работает независимо от
операционных систем. Исторически протокол FTP предложил открытую функциональность,
обеспечивая прозрачный перенос файлов с одного компьютера на другой по сети.
TELNET (TErminaL NETwork) — сетевой протокол для реализации текстового интерфейса по сети.
Протокол telnet работает в соответствии с принципами архитектуры «клиент-сервер» и
обеспечивает эмуляцию алфавитно-цифрового терминала, ограничивая пользователя режимом
командной строки. Приложение telnet предоставило язык для общения терминалов с
удаленными компьютерами. Достаточно было написать для каждого компьютера программное обеспечение, поддерживающее «терминал telnet», чтобы один терминал мог
взаимодействовать с компьютерами всех типов.
2. Идентификация компьютеров и ресурсов в Интернет. URL, IP-адрес, доменное имя, DNS,
TCP-порты
Структура и принципы WWW (идентификация)
Сеть WWW образуют миллионы веб-серверов, расположенных по всему миру. Веб-сервер
является программой, запускаемой на подключённом к сети компьютере и передающей данные
по протоколу HTTP. Для идентификации ресурсов в WWW используются идентификаторы
ресурсов URI. Для определения местонахождения ресурсов в этой сети используются локаторы
ресурсов URL. Такие URL-локаторы представляют собой комбинацию URI и системы DNS.
Доменное имя (или IP-адрес) входит в состав URL для обозначения компьютера (его сетевого
интерфейса), на котором работает программа веб-сервер. На клиентском компьютере для
просмотра информации, полученной от веб-сервера, применяется специальная программа —
веб-браузер. Основная функция веб-браузера - отображение гипертекстовых страниц (веб-
страниц). Для создания гипертекстовых страниц в WWW изначально использовался язык HTML.
Множество веб-страниц образуют веб-сайт.
Единый указатель ресурсов (URL — Uniform Resource Locator) — единообразный локатор
(определитель местонахождения) ресурса. URL — это стандартизированный способ записи
адреса ресурса в сети Интернет. Структура URL. Изначально локатор URL был разработан как
система для максимально естественного указания на местонахождения ресурсов в сети. Локатор
должен был быть легко расширяемым и использовать лишь ограниченный набор ASCII-символов
(к примеру, пробел никогда не применяется в URL). В связи с этим, возникла следующая
традиционная форма записи URL: ://:@:/
IP-адрес — уникальный сетевой адрес узла в компьютерной сети, построенной по протоколу
IP. При связи через сеть Интернет требуется глобальная уникальность адреса, в случае работы в
локальной сети требуется уникальность адреса в пределах сети. Имеет длину 4 байта. Обычно
первый и второй байты определяют адрес сети, третий байт определяет адрес подсети, а
четвертый - адрес компьютера в подсети. IP-адрес состоит из двух частей: номера сети и номера
узла. В случае изолированной сети её адрес может быть выбран администратором из
специально зарезервированных для таких сетей блоков адресов (192.168.0.0/16, 172.16.0.0/12
или 10.0.0.0/8).
Доменное имя — символьное имя, служащее для идентификации областей — единиц
административной автономии в сети Интернет — в составе вышестоящей по иерархии такой
области. Каждая из таких областей называется доменом. Общее пространство имён Интернета
функционирует благодаря DNS — системе доменных имён. Доменные имена дают возможность
адресации интернет-узлов и расположенных на них сетевых ресурсов (веб-сайтов, серверов
электронной почты, других служб) в удобной для человека форме. Полное доменное имя
состоит из непосредственного имени домена и далее имён всех доменов, в которые он входит,
разделённых точками. Например, полное имя ru.wikipedia.org. обозначает домен третьего
уровня ru, который входит в домен второго уровня wikipedia, который входит в домен верхнего
уровня org, который входит в безымянный корневой домен. В обыденной речи под доменным
именем нередко понимают именно полное доменное имя.
DNS — компьютерная распределённая система для получения информации о доменах. Чаще
всего используется для получения IP-адреса по имени хоста (компьютера или устройства),
получения информации о маршрутизации почты, обслуживающих узлах для протоколов в
домене. Основой DNS является представление об иерархической структуре доменного имени и зонах.
Каждый сервер, отвечающий за имя, может делегировать ответственность за дальнейшую часть
домена другому серверу (с административной точки зрения — другой организации или
человеку), что позволяет возложить ответственность за актуальность информации на серверы
различных организаций (людей), отвечающих только за «свою» часть доменного имени. В
протоколах TCP и UDP порт — идентифицируемый номером системный ресурс, выделяемый
приложению, выполняемому на некотором сетевом хосте, для связи с приложениями,
выполняемыми на других сетевых хостах (в том числе c другими приложениями на этом же
хосте).
3. Основные утилиты: ipconfig, ping, tracert, netstat, telnet.
Утилита ipconfig - это утилита командной строки для вывода деталей текущего соединения
компьютера с сетью и контроля над клиентским сервисом DHCP. DHCP - это сетевой протокол,
позволяющий компьютерам автоматически получать IP-адрес и другие параметры,
необходимые для работы в сети TCP/IP.
Синтаксис команды:
ipconfig/ключи
Команда ipconfig/all - отображает полную информацию по всем сетевым адаптерам.
Ping - это системная программа, предназначенная для проверки соединений в сетях на основе
TCP/IP. Она отправляет Echo-Request запросы протокола ICMP указанному узлу сети и фиксирует
поступающие ответы. Время между отправкой запроса и получением ответа позволяет
определять двусторонние задержки по маршруту и частоту потери пакетов. Что позволяет
косвенно определять загруженность каналов передачи данных и промежуточных устройств.
Полное отсутствие ICMP-ответов может также означать, что удалённый узел (или какой-либо из
промежуточных маршрутизаторов) блокирует ICMP Echo-Reply или игнорирует ICMP Echo-
Request.
Синтаксис:
ping –параметры конечное_имя
Конечное имя – это доменное имя или IP-адрес хоста
Traceroute (сокращенно tracert) — это служебная программа, предназначенная для
определения маршрутов следования пакетов в сетях TCP/IP. Работа traceroute основана на
протоколе ICMP. Traceroute выполняет отправку пакетов указанному узлу сети, отображая при
этом сведения о всех промежуточных маршрутизаторах, через которые прошли пакеты на пути к
целевому узлу. В случае проблем при доставке пакетов до какого-либо узла программа
traceroute позволяет определить, на каком именно участке сети возникли неполадки.
Синтаксис:
tracert –параметры конечное_имя
Конечное имя – это доменное имя или IP-адрес хоста
Netstat – служебная программа, отображающая статистику протокола и текущих сетевых
подключений TCP/IP. Команда netstat показывает содержимое различных структур данных,
связанных с сетью, в различных форматах в зависимости от указанных опций. Первая форма
команды показывает список активных сокетов (sockets) для каждого протокола. Вторая
форма выбирает одну из нескольких других сетевых структур данных. Третья форма
показывает динамическую статистику пересылки пакетов по сконфигурированным сетевым
интерфейсам; аргумент интервал задает, сколько секунд собирается информация между
последовательными показами. «telnet» имеет также утилита, реализующая клиентскую часть протокола. Исторически telnet
служил для удалённого доступа к интерфейсу командной строки операционных систем.
Протокол telnet может использоваться для выполнения отладки других протоколов на основе
транспорта TCP.
Утилита telnet поддерживает следующие команды:
• Close – закрытие текущего подключения.
• Display – отображение параметров операции.
• Open – подключение к сайту.
• Quit – выход из telnet.
• Set – установление параметров.
• Send – отправление строки на сервер.
• Status – вывод сведений о текущем состоянии.
• Unset – сброс параметров.
4. Основные протоколы Интернет: IP, TCP, HTTP, FTP, Telnet
Internet Protocol — межсетевой протокол. Относится к маршрутизируемым протоколам сетевого
уровня семейства TCP/IP.
Протокол IP используется для негарантированной доставки данных, разделяемых на так
называемые пакеты от одного узла сети к другому. Это означает, что на уровне этого протокола
(третий уровень сетевой модели OSI) не даётся гарантий надёжной доставки пакета до адресата.
В частности, пакеты могут прийти не в том порядке, в котором были отправлены,
продублироваться (когда приходят две копии одного пакета; в реальности это бывает крайне
редко), оказаться повреждёнными (обычно повреждённые пакеты уничтожаются) или не
прибыть вовсе. Гарантию безошибочной доставки пакетов дают протоколы более высокого
(транспортного уровня) сетевой модели OSI — например, TCP — которые используют IP в
качестве транспорта.
Transmission Control Protocol (TCP) (протокол управления передачей) — один из основных
сетевых протоколов Интернета, предназначенный для управления передачей данных в сетях и
подсетях TCP/IP.
Выполняет функции протокола транспортного уровня модели OSI.
TCP — это транспортный механизм, предоставляющий поток данных, с предварительной
установкой соединения, за счёт этого дающий уверенность в достоверности получаемых данных,
осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при
получении двух копий одного пакета (см. также T/TCP). В отличие от UDP гарантирует, что
приложение получит данные точно в такой же последовательности, в какой они были
отправлены, и без потерь.
Реализация TCP, как правило, встроена в ядро системы, хотя есть и реализации TCP в контексте
приложения.
Когда осуществляется передача от компьютера к компьютеру через Интернет, TCP работает на
верхнем уровне между двумя конечными системами, например, веб-обозреватель и веб-сервер.
Также TCP осуществляет надежную передачу потока байтов от одной программы на некотором
компьютере к другой программе на другом компьютере. Программы для электронной почты и
обмена файлами используют TCP. TCP контролирует длину сообщения, скорость обмена
сообщениями, сетевой трафик. HTTP (сокр. от англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — протокол
прикладного уровня передачи данных (изначально — в виде гипертекстовых документов).
Основой HTTP является технология «клиент-сервер», то есть предполагается существование
потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков
(серверов), которые ожидают соединения для получения запроса, производят необходимые
действия и возвращают обратно сообщение с результатом. HTTP в настоящее время повсеместно
используется во Всемирной паутине для получения информации с веб-сайтов. В 2006 году в
Северной Америке доля HTTP-трафика превысила долю P2P-сетей и составила 46 %, из которых
почти половина — это передача потокового видео и звука[1]
.
HTTP используется также в качестве «транспорта» для других протоколов прикладного уровня,
таких как SOAP, XML-RPC, WebDAV.
Основным объектом манипуляции в HTTP является ресурс, на который указывает URI
(англ. Uniform Resource Identifier) в запросе клиента. Обычно такими ресурсами являются
хранящиеся на сервере файлы, но ими могут быть логические объекты или что-то абстрактное.
Особенностью протокола HTTP является возможность указать в запросе и ответе способ
представления одного и того же ресурса по различным параметрам: формату, кодировке, языку
и т. д. Именно благодаря возможности указания способа кодирования сообщения клиент и
сервер могут обмениваться двоичными данными, хотя данный протокол является текстовым.
HTTP — протокол прикладного уровня, аналогичными ему являются FTP и SMTP. Обмен
сообщениями идёт по обыкновенной схеме «запрос-ответ». Для идентификации ресурсов HTTP
использует глобальные URI. В отличие от многих других протоколов, HTTP не сохраняет своего
состояния. Это означает отсутствие сохранения промежуточного состояния между парами
«запрос-ответ». Компоненты, использующие HTTP, могут самостоятельно осуществлять
сохранение информации о состоянии, связанной с последними запросами и ответами. Браузер,
посылающий запросы, может отслеживать задержки ответов. Сервер может хранить IP-адреса и
заголовки запросов последних клиентов. Однако сам протокол не осведомлён о предыдущих
запросах и ответах, в нём не предусмотрена внутренняя поддержка состояния, к нему не
предъявляются такие
5.Международные организации, курирующие развитие архитектуры и протоколов
Интернет. RFC документы.
Результат работы по стандартизации воплощается в документах RFC.
RFC (англ. Request for Comments) — документ из серии пронумерованных информационных
документов Интернета, содержащих технические спецификации и Стандарты, широко
применяемые во Всемирной сети. В настоящее время первичной публикацией документов RFC
занимается IETF под эгидой открытой организации Общество Интернета (ISOC). Правами на RFC
обладает именно Общество Интернет. Формат RFC появился в 1969 г. при обсуждении проекта
ARPANET. Первые RFC распространялись в печатном виде на бумаге в виде обычных писем, но
уже с декабря 1969 г., когда заработали первые сегменты ARPANET, документы начали
распространяться в электронном виде. В таблице 2 приведены некоторые из наиболее
известных документов RFC.
организации
• World Wide Web Consortium, W3C
• The Internet Engineering Task Force, IETF
• Internet Society, ISOC
• International Organization for Standardization, ISO
• Web Standards Group, WSG • The Web Standards Project
• Unicode Organization
• The Semantic Web Community Portal
Request for Comments, RFC) — документ из серии пронумерованных информационных
документов Интернета, содержащих технические спецификации и стандарты, широко
применяемые во всемирной сети. Название «Request for Comments» ещё можно перевести
как «заявка на обсуждение» или «тема для обсуждения». В настоящее время первичной
публикацией документов RFC занимается IETF под эгидой открытой организации Общество
Интернета (англ. Internet Society, ISOC). Правами на RFC обладает именно Общество
Интернета.
Содержимое RFC
Несмотря на название, запросы комментариев RFC сейчас рассматриваются как стандарты
Интернета (а рабочие версии стандартов обычно называют драфтами, от англ. draft здесь —
черновик). Согласно RFC 2026, жизненный цикл стандарта выглядит следующим образом:
1. Выносится на всеобщее рассмотрение Интернетовский черновик (Internet Draft).
Черновики не имеют официального статуса, и удаляются из базы через шесть месяцев
после последнего изменения.
2. Если черновик стандарта оказывается достаточно удачным и непротиворечивым, он
получает статус Предложенного стандарта (Proposed Standard), и свой номер RFC.
Наличие программной реализации стандарта желательно, но не обязательно.
3. Следующая стадия — Черновой стандарт (Draft Standard) означает, что предложенный
стандарт принят сообществом, в частности, существуют две независимые по коду
совместимые реализации разных команд разработчиков. В черновые стандарты ещё
могут вноситься мелкие правки, но они считаются достаточно стабильными и
рекомендуются для реализации.
4. Высший уровень — Стандарт Интернета (Internet Standard). Это спецификации с большим
успешным опытом применения и зрелой формулировкой. Параллельно с нумерацией RFC
они имеют свою собственную нумерацию STD. Список стандартов имеется в документе
STD 1 (сейчас это RFC 5000, но нумерация может измениться). Из более чем трёх тысяч RFC
этого уровня достигли только несколько десятков.
5. Многие старые RFC замещены более новыми версиями под новыми номерами, или
вышли из употребления. Такие документы получают статус Исторических (Historic)
Практически все стандарты Глобальной сети существуют в виде опубликованных заявок RFC. Но в
виде документов RFC выходят не только стандарты, но также концепции, введения в новые
направления в исследованиях, исторические справки, результаты экспериментов, руководства
по внедрению технологий, предложения и рекомендации по развитию существующих
Стандартов и другие новые идеи в информационных технологиях:
1. Экспериментальные (Experimental) спецификации содержат информацию об
экспериментальных исследованиях, интересных для интернет-сообщества. Это могут
быть, например, прототипы, реализующие новые концепции.
2. Информационные (Informational) RFC предназначены для ознакомления общественности,
не являются стандартами и не являются результатом консенсуса или рекомендациями.
Некоторые черновики, не получившие статуса Предложенного стандарта, но
представляющие интерес, могут быть опубликованы как Информационные RFC.
3. Лучший современный опыт (Best Current Practice). Эта серия RFC содержит рекомендации
по реализации стандартов, в том числе от сторонних организаций, а также внутренние
документы о структуре и процедурах стандартизации. Почти все стандарты разрабатываются под эгидой каких-либо научных или интернет-
организаций (например W3C, IETF, консорциум Юникода, Интернет2).
Запросы комментариев официально существуют только на английском языке. Строгих
требований к оформлению нет. Встречаются RFC, написанные в строгом академическом стиле,
иные — в дружеской неформальной манере. Существует традиция выпуска первоапрельских
шуточных RFC, например, RFC 1149 рассказывает о передаче пакетов IP с помощью почтовых
голубей.
6. HTTP протокол. Структура запроса клиента и ответа сервера
HTTP (HyperText Transfer Protocol - RFC 1945, RFC 2616) - протокол прикладного уровня для
передачи гипертекста.
Центральным объектом в HTTP является ресурс, на который указывает URI в запросе клиента.
Обычно такими ресурсами являются хранящиеся на сервере файлы. Особенностью протокола
HTTP является возможность указать в запросе и ответе способ представления одного и того же
ресурса по различным параметрам: формату, кодировке, языку и т. д. Именно благодаря
возможности указания способа кодирования сообщения клиент и сервер могут обмениваться
двоичными данными, хотя изначально данный протокол предназначен для передачи
символьной информации. На первый взгляд это может показаться излишней тратой ресурсов.
Действительно, данные в символьном виде занимают больше памяти, сообщения создают
дополнительную нагрузку на каналы связи, однако подобный формат имеет много преимуществ.
Сообщения, передаваемые по сети, удобочитаемы, и, проанализировав полученные данные,
системный администратор может легко найти ошибку и устранить ее. При необходимости роль
одного из взаимодействующих приложений может выполнять человек, вручную вводя
сообщения в требуемом формате.
В отличие от многих других протоколов, HTTP является протоколом без памяти. Это означает,
что протокол не хранит информацию о предыдущих запросах клиентов и ответах сервера.
Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации
о состоянии, связанной с последними запросами и ответами. Например, клиентское веб-
приложение, посылающее запросы, может отслеживать задержки ответов, а веб-сервер может
хранить IP-адреса и заголовки запросов последних клиентов.
Всё программное обеспечение для работы с протоколом HTTP разделяется на три основные
категории:
• Серверы - поставщики услуг хранения и обработки информации (обработка запросов).
• Клиенты - конечные потребители услуг сервера (отправка запросов).
• Прокси-серверы для поддержки работы транспортных служб.
В состав HTTP-запроса, передаваемого клиентом серверу, входят следующие компоненты.
• Строка состояния (иногда для ее обозначения используют также термины стро¬ка-
статус, или строка запроса).
• Поля заголовка.
• Пустая строка.
• Тело запроса.
Строка состояния имеет следующий формат:
метод_запроса URL_pecypca версия_протокола_НТТР
Метод, указанный в строке состояния, определяет способ воздействия на ресурс, URL
которого задан в той же строке
Версия протокола HTTP, как правило, задается в следующем формате:
HTTP/версия.модификация
Поля заголовка, следующие за строкой состояния, позволяют уточнять запрос, т.е. передавать
серверу дополнительную информацию. Поле заголовка имеет следующий формат:
Имя_поля: Значение Во многих случаях при работе в Веб тело запроса отсутствует. При запуске CGI-сценариев
данные, передаваемые для них в запросе, могут размещаться в теле запроса.
Рисунок 1. Структура запроса клиента.
Получив от клиента запрос, сервер должен ответить ему. ответ сервера также состоит из
четырех перечисленных ниже компонентов.
• Строка состояния.
• Поля заголовка.
• Пустая строка.
• Тело ответа.
Ответ сервера клиенту начинается со строки состояния, которая имеет следующий формат:
Версия_протокола Код_ответа Пояснительное_сообщение
В ответе используется такая же структура полей заголовка, как и в запросе клиента. Поля
заголовка предназначены для того, чтобы уточнить ответ сервера клиенту
В теле ответа содержится код ресурса, передаваемого клиенту в ответ на запрос. Это не
обязательно должен быть HTML-текст веб-страницы. В составе ответа могут передаваться
изображение, аудио-файл, фрагмент видеоинформации, а также любой другой тип данных,
поддерживаемых клиентом. О том, как следует обрабатывать полученный ресурс, клиенту
сообщает содержимое поля заголовка Content-type.
Поля заголовка и тело сообщения могут отсутствовать, но строка состояния является
обязательным элементом, так как указывает на тип запроса/ответа.
7.Спецификация MIME. Применение MIME в рамках протокола HTTP.
Поле с именем Content-type может встречаться как в запросе клиента, так и в ответе сервера.
В качестве значения этого поля указывается MIME-тип содержимого запроса или ответа. MIME-
тип также передается в поле заголовка Accept, присутствующего в запросе.
Спецификация MIME (Multipurpose Internet Mail Extension — многоцелевое почтовое
расширение Internet) первоначально была разработана для того, чтобы обеспечить передачу
различных форматов данных в составе электронных писем. Однако применение MIME не
исчерпывается электронной почтой. Средства MIME успешно используются в WWW и, по сути,
стали неотъемлемой частью этой системы.
Стандарт MIME разработан как расширяемая спецификация, в которой подразумевается, что
число типов данных будет расти по мере развития форм представления данных. Каждый новый
тип в обязательном порядке должен быть зарегистрирован в IANA (Internet Assigned Numbers
Authority).
До появления MIME компьютеры, взаимодействующие по протоколу HTTP, обменивались
исключительно текстовой информацией. Для передачи изображений, как и для передачи любых
других двоичных файлов, приходилось пользоваться протоколом FTP.
Заголовок Тело запроса Пустая строка
Строка состояния Поля заголовка
Запрос клиента
Метод
запроса
URL
ресурса
Версия
протокола
HTTP В соответствии со спецификацией MIME, для описания формата данных используются тип и
подтип. Тип определяет, к какому классу относится формат содержимого HTTP-запроса или
HTTP-ответа. Подтип уточняет формат. Тип и подтип отделяются друг от друга косой чертой:
тип/подтип
Поскольку в подавляющем большинстве случаев в ответ на запрос клиента сервер возвращает
исходный текст HTML-документа, то в поле Content-type ответа обычно содержится значение
text/html. Здесь идентификатор text описывает тип, сообщая, что клиенту передается символьная
информация, а идентификатор html описывает подтип, т.е. указывает на то, что
последовательность символов, содержащаяся в теле ответа, представляет собой описание
документа на языке HTML.
8. Cookie. Хранение, запись и передача Cookie
дополнительное средство под названием cookie. Механизм cookie позволяет серверу хранить
информацию на компьютере клиента и извлекать ее оттуда.
Инициатором записи cookie выступает сервер. Если в ответе сервера присутствует поле
заголовка Set-cookie, клиент воспринимает это как команду на запись cookie. В дальнейшем, если
клиент обращается к серверу, от которого он ранее принял поле заголовка Set-cookie, помимо
прочей информации он передает серверу данные cookie. Для передачи указанной информации
серверу используется поле заголовка Cookie.
Пример: клиент передает запросы на серверы А, В и С. сервер В, в отличие от А и С, передает
клиенту команду записать cookie. Последовательность запросов клиента серверу и ответов на
них будет выглядеть приблизительно следующим образом.
1. Передача запроса серверу А.
2. Получение ответа от сервера А.
3. Передача запроса серверу В.
4. Получение ответа от сервера В. В состав ответа входит поле заголовка SetCookie. Получив
его, клиент записывает cookie на диск.
5. Передача запроса серверу С. Несмотря на то что на диске хранится запись cookie, клиент не
предпринимает никаких специальных действий, так как значение cookie было записано по
инициативе другого сервера.
6. Получение ответа от сервера С.
7. Передача запроса серверу А. В этом случае клиент также никак не реагирует на тот факт,
что на диске хранится cookie.
8. Получение ответа от сервера А.
9. Передача запроса серверу В. Перед тем как сформировать запрос, клиент определяет, что
на диске хранится запись cookie, созданная после получения ответа от сервера В. Клиент
проверяет, удовлетворяет ли данный запрос некоторым требованиям, и, если проверка
дает положительный результат, включает в заголовок запроса поле Cookie.
Таким образом, процедуру записи и получения cookie можно представить себе как
своеобразный "запрос" сервера, инкапсулированный в его ответе клиенту. Соответственно
получение cookie также можно представить себе как ответ клиента, инкапсулированный в
составе запроса тому же серверу.
Поле Set-cookie имеет следующий формат:
Set-cookie: имя = значение; expires = дата; path = путь; домен = имя_домена, secure
где
• Пара имя = значение – именованные данные, сохраняемые с помощью механизм cookie.
Эти данные должны храниться на клиент-машине и передаваться серверу в составе
очередного запроса клиента.
• Дата, являющаяся значением параметра expires, определяет время, по истечении
которого информация cookie теряет свою актуальность. Если ключевое слово expires
отсутствует, данные cookie удаляются по окончании текущего сеанса работы браузера. • Значение параметра domain определяет домен, с которым связываются данные cookie.
Чтобы узнать, следует ли передавать в составе запроса данные cookie, браузер сравнивает
доменное имя сервера, к которому он собирается обратиться, с доменами, которые
связаны с записями cookie, хранящимися на клиент-машине. Результат проверки будет
считаться положительным, если сервер, которому направляется запрос, принадлежит
домену, связанному с cookie. Если соответствие не обнаружено, данные cookie не
передаются.
• Путь, указанный в качестве значения параметра path, позволяет выполнить дальнейшую
проверку и принять окончательное решение о том, следует ли передавать данные cookie в
составе запроса. Помимо домена с записью cookie связывается путь. Если браузер
обнаружил соответствие имени домена значению параметра domain, он проверяет,
соответствует ли путь к ресурсу пути, связанному с cookie. Сравнение считается успешным,
если ресурс содержится в каталоге, указанном посредством ключевого слова path, или в
одном из его подкаталогов. Если и эта проверка дает положительный результат, данные
cookie передаются серверу. Если параметр path в поле Set-Cookie отсутствует, то считается,
что запись cookie связана с URL конкретного ресурса, передаваемого сервером клиенту.
• Последний параметр, secure, указывает на то, что данные cookie должны передаваться по
защищенному каналу.
Для передачи данных cookie серверу используется поле заголовка Cookie. Формат этого поля
достаточно простой:
Cookie: имя=значение; имя=значение; ...
C помощью поля Cookie передается одна или несколько пар имя = значение. Каждая из этих
пар принадлежит записи cookie, для которой URL запрашиваемого ресурса соответствуют имени
домена и пути, указанным ранее в поле Set-cookie.
9.Исполняемые коды программ для Web. Программы, исполняющиеся на стороне сервера
и программы, исполняющиеся на стороне клиента.
Никакой HTTP-обмен невозможен без клиента и сервера
Программы, выполняющиеся на клиент-машине
Одним из типов программ, предназначенных для выполнения на клиент-машине,
являются сценарии, например, JavaScript (VBScript). Исходный текст сценария представляет собой
часть веб-страницы, поэтому сценарий JavaScript передается клиенту вместе с документом, в
состав которого он входит. Обрабатывая HTML-документ, браузер обнаруживает исходный текст
сценария и запускает его на выполнение.
Ко всем программам, которые передаются с сервера на клиент-машины и запускаются на
выполнение, предъявляется одно общее требование: эти программы должны быть лишены
возможности обращаться к ресурсам компьютера, на котором они выполняются. Такое
требование вполне обосновано. Ведь передача по сети и запуск Java-апплетов и JavaScript-
сценариев происходит автоматически без участия пользователя, поэтому работа этих
программ должна быть абсолютно безопасной для компьютера. Другими словами, языки,
предназначенные для создания программ, выполняющихся на клиент-машине, должны быть
абсолютно непригодны для написания вирусов и подобных программ.
Программы, выполняющиеся на сервере
Код программы, работающей на сервере, не передается клиенту. При получении от
клиента специального запроса, предполагающего выполнение такой программы, сервер
запускает ее и передает параметры, входящие в состав запроса. Средства для генерации
подобного запроса обычно входят в состав HTML-документа. Результаты своей работы программа оформляет в виде HTML-документа и передает их веб-
серверу, а последний, в свою очередь, дополняет полученные данные HTTP-заголовком и
передает их клиенту. Взаимодействие клиента и сервера в этом случае показано на рисунке 1.
Рисунок 1. Взаимодействие клиента с программой, выполняющейся на сервере.
10. Язык JavaScript. Основные конструкции языка. Взаимодействие с элементами
HTML страницы. Объектная иерархия JavaScript. Обработка событий.
JavaScript - интерпретируемый язык программирования, стандартизированный
международной организацией ECMA в спецификации ECMA-262. Языки JavaScript, JScript и
ActionScript являются расширением стандарта ECMA-262.
Название "ECMAScript" явилось фактически компромиссом между организациями,
вовлеченными в процесс стандартизации, в частности Netscape и Microsoft. Хотя JavaScript и
JScript стремились к совместимости с ECMAScript, они имеют ряд дополнительных
возможностей не предусмотренных спецификацией ECMA.
Синтаксис JScript во многом аналогичен языку JavaScript, однако, помимо добавления
клиентских скриптов на веб-страницы и некоторых других функций, JScript может
использоваться и для других целей, например:
? автоматизация администрирования систем Microsoft Windows;
? создание страниц ASP.
Язык JScript получил дальнейшее развитие в виде языка JScript.NET, который ориентирован
на работу в рамках платформы Microsoft.NET
JScript - интерпретируемый, объектно-ориентированный язык. Хотя он имеет существенно
меньшее количество возможностей, чем такие объектно-ориентированные языки как C++ и Java.
Возможности языка существенно ограничены:
• язык не позволяет разрабатывать самостоятельные приложения;
• сценарии на JScript могут выполняться только при помощи интерпретатора, в частности
веб-браузером.
Программа
(CGI-сценарий)
Веб - сервер
Запуск программы и передача
параметров
Веб - клиент
Запуск
программы и
передача
параметров
Результаты
выполнения
программы
апплета
Результаты
выполнения
программы
апплета • JScript - язык без строгого контроля типов. Поэтому не требуется объявлять тип
переменных явно. Кроме того, во многих случаях JScript исполняет преобразования
автоматически, когда они необходимы. Например, при сложении строки и числа, число
будет преобразовано в строку.
Код на JScript пишется в текстовом формате, и организован в инструкции, блоки, состоящие из
связанных наборов инструкций, и комментариев. В пределах инструкции можно использовать
переменные и данные, такие как строки, числа и выражения. Для объявления конца инструкции
используется точка с запятой (;). Группа JScript-инструкций, заключенная в фигурные скобки {},
называется блоком.
Комментарием в JScript является текст, расположенный после // до конца строки.
Многострочный комментарий начинается с /*, и заканчивается */.
Знак равенства (=) используется в JScript как присваивание. Следующий код
Pi = 3.14;
подразумевает "Присвоить значение 3.14 переменной Pi".
При сравнении двух значений на равенство применяется двойной знак равенства (==).
JScript выражения можно разделить на логические или числовые. Выражения содержат
некоторые особенности, к примеру, символ "+" означает "добавить к...". Любая допустимая
комбинация значений, переменных, операторов, и других выражений является выражением.
Объявление переменной перед использованием является необязательным. Для этого
используется инструкция var. Инструкция var является обязательной при объявлении локальной
переменной внутри функции. Разрешается объявление переменной неявно - без инструкции var.
Однако, в выражениях применять необъявленные переменные не допускается. JScript различает
регистр в имени переменной. Name и name рассматриваются как различные переменные.
Типы данных
JScript - язык с нестрогим контролем типов, переменные в JScript не имеют строго
фиксированного типа. Переменные имеют тип, эквивалентный типу значения, которое они
содержат. Однако, в некоторых случаях, необходимо принудительное преобразование
переменной в определенный тип. Числа могут быть объявлены как строки, а строки необходимо
преобразовать в числовой тип. Для этого применяют функции parseInt() и parseFloat().
В JScript используется шесть типов данных. Основные из них - числа, строки, объекты,
логический. Остальные два - null и undefined (т.е. неопределенный).
Строки объявляются при помощи двойных кавычек или апострофов. Строка может состоять
из нуля или более символов unicode. Когда количество символов равно нулю, это называется
пустой строкой ("").
JScript поддерживает числа как целые, так и с плавающей запятой. Также существуют
специальные представления чисел, например NaN (не число).
Примеры чисел:
3.14 // Вещественное число
15 // Целое число
0177 // Восьмеричное число 177
0XA8 // Шестнадцатиричное число A8
Логический тип допускает значения - true и false. Любое выражение, равное 0, считается
эквивалентным false, а любое выражение, равное числу, отличному от 0 будет эквивалентным
true.
Undefined – означает, что тип не определен. Значение undefined имеет переменная после ее
объявления и до присвоения ей какого-либо определенного значения.
Переменная типа null - не имеет никакого определенного значения.
Операторы
Язык поддерживает условные выражения if и if...else. При использовании нескольких условий
одновременно можно использовать операторы || (ИЛИ ) или && (И).
В JScript поддерживается несколько типов циклов: for, for...in, while, do...while и switch. Также
существует инструкция остановки выполнения цикла. Оператор завершения break может использоваться, чтобы остановить цикл, при выполнении какого-либо условия. Инструкция
continue используется, чтобы немедленно перейти к выполнению следующей итерации,
пропуская остальную часть выполнения кода текущей итерации, но обновляя переменную-
счетчик.
Функции и объекты
В JScript имеется два вида функций: встроенные и определяемые. Программист имеет
возможность создавать собственные функции. Определение функции состоит из объявления
параметров и блока инструкций JScript.
Объекты в JScript, по-сути, являются совокупностями методов и свойств. Все объекты можно
разделить на три вида: встроенные, созданные и браузерные. Обработка объектов и массивов
идентична. Можно обратиться к любой части объекта (его свойствам и методам) либо по имени,
либо по индексу. Нумерация индексов в JScript начинается с нуля.
11. CGI стандарт. CGI сценарий. Порядок работы CGI сценария. Передача данных
сценарию методами GET и POST. Переменные окружения Web-сервера.
Круг задач, решаемых Web-сервером, ограничен. В основном он сводится к поддержке НТТР-
взаимодействия и доставке клиенту Web-документов. Любые "нестандартные" действия
реализуются с помощью специальной программы, которая взаимодействует с веб-сервером и
клиентом. Это взаимодействие подчиняется определенным правилам.
Основной набор таких правил - стандарт CGI (Common Gateway Interface - интерфейс общего
шлюза), который определяет порядок запуска программы на компьютере-сервере, способы
передачи программе параметров и доставки результатов ее выполнения клиенту. Программа,
написанная по правилам CGI, называется CGI-сценарием (script CGI), хотя это не означает, что
на сервере не может выполняться двоичный файл.
Благодаря этому интерфейсу для разработки приложений можно использовать любой язык
программирования, который располагает средствами взаимодействия со стандартными
устройствами ввода/вывода. Такими возможностями обладают в также сценарии для встроенных
командных интерпретаторов операционных систем.
Выполнение любой программы (в том числе CGI-сценария) можно условно разделить на пять
этапов.
1. Запуск программы.
2. Инициализация и чтение выходных данных.
3. Обработка данных.
4. Вывод результатов выполнения.
5. Завершение программы.
Различия между CGI-сценарием и консольным приложением касаются первого, второго и
четвертого этапов выполнения.
Каждый раз, когда веб-сервер получает запрос от клиента, он анализирует содержимое
запроса и возвращает соответствующий ответ:
? Если запрос содержит указание на файл, находящийся на жестком диске, то сервер
возвращает в составе ответа этот файл;
? Если запрос содержит указание на программу и необходимые для нее аргументы, то
сервер исполняет программу и результат ее работы возвращает клиенту.
CGI определяет:
? каким образом информация о сервере и запросе клиента передается программе в форме
аргументов и переменных окружения;
? каким образом программа может передавать назад дополнительную информацию о
результатах (например о типе данных) в форме заголовков ответа сервера.
В подавляющем большинстве случаев запуск CGI-сценария осуществляется щелчком на
кнопке Submit, сформированной с помощью дескриптора , который
находится на HTML-странице между
. Не зная назначения атрибутов action и
method, невозможно понять, как происходит вызов программы и передача параметров.
Значением атрибута action дескриптора
Если сценарий вызывается из формы, ему передаются те данные, которые пользователь ввел с
помощью интерактивных элементов, отображаемых на веб-странице - передача информации CGI-сценарию осуществляется в два этапа: сначала браузер передает данные веб-серверу, затем
веб-сервер передает их сценарию.
В большинстве случаев кроме кнопки Submit форма содержит другие интерактивные
элементы, каждый из которых имеет имя (атрибут NAME) и значение (атрибут VALUE, либо
последовательность символов, введенная пользователем). Из имен элементов и их значений
формируется строка параметров, которая имеет следующий формат.
имя=значение&имя=значение& . . . &имя=значение
Каждый параметр представляет собой имя управляющего элемента и его значение,
разделенные знаком равенства, а несколько таких пар объединяют строку с помощью символа
"&". Если в состав имени или значения входит символ "&" или "=", то подобные символы
кодируются последовательность знака процента "%", за которым следуют две
шестнадцатеричные цифры, определяющие код символа. Так, например, последовательностью
"%21" кодируется восклицательный знак "!". Как правило, при передаче параметров
трехсимвольными последовательностями заменяются все знаки, кроме латинских букв, цифр и
символа пробела (последний заменяется знаком "+").
Таким образом, перед использованием строки параметров ее надо декодировать. Алгоритм
декодирования чрезвычайно прост и включает в себя следующие действия:
? Выделить из строки параметров пары имя = значение.
? Выделить из каждой пары имя и значение.
? В каждом имени и каждом значении заменить символы "+" пробелами.
? Каждую последовательность из символа "%" и двух шестнадцатеричных и преобразовать
в ASCII-символ.
Атрибут method дескриптора
- Log in to post comments
- 18299 reads