русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Работа с протоколом HTTP


Дата добавления: 2015-07-09; просмотров: 639; Нарушение авторских прав


 

Протокол передачи гипертекста (Hypertext Transfer Protocol, HTTP) определя_ ет, как веб_броузеры должны запрашивать документы, как они должны переда_ вать информацию веб_серверам и как веб_серверы должны отвечать на эти запро_ сы и передачи. Вполне очевидно, что веб_броузеры очень много работают с прото_ колом HTTP. Тем не менее, как правило, сценарии не работают с протоколом HTTP, когда пользователь щелкает по ссылке, отправляет форму или вводит URL в адресной строке. В то же время обычно, хотя и не всегда, JavaScript_код способен работать с протоколом HTTP.

 

HTTP_запросы могут инициироваться, когда сценарий устанавливает значение свойства location объекта Window или вызывает метод submit() объекта Form. В обо_ их случаях броузер загружает в окно новую страницу, затирая любой исполняв_ шийся сценарий. Такого рода взаимодействие с протоколом HTTP может быть вполне оправданным в веб_страницах, состоящих из нескольких фреймов, но в этой главе мы будем говорить совсем о другом. Здесь мы рассмотрим такое взаимодействие JavaScript_кода с веб_сервером, при котором веб_броузер не пе_ резагружает текущую веб_страницу.

 

Теги <img>, <frame> и <script> имеют свойство src. Когда сценарий записывает в это свойство URL_адрес, инициируется HTTP_запрос GET и выполняется загрузка содержимого с этого URL_адреса. Таким образом, сценарий может отправлять информацию веб_серверу, добавляя ее в виде строки запроса в URL_адрес изобра_ жения и устанавливая свойство src элемента <img>. В ответ на этот запрос веб_ сервер должен вернуть некоторое изображение, которое, например, может быть невидимым: прозрачным и размером 1× 1 пиксел.1

1 Такие изображения иногда называют веб'жучками (web bugs). Они пользуются дурной славой из_за проблем с безопасностью, т. к. могут применяться для обмена информацией (подсчета числа посещений и анализа трафика) со сторонним серве_ ром (не тем, откуда была загружена страница). Если же веб_страница устанавлива_ ет свойство src изображения для передачи информации обратно на тот сервер, с ко_ торого она была загружена, особых проблем с безопасностью не возникает.




 

20.1. Использование объекта XMLHttpRequest
   

 

Теги <iframe> достаточно недавно появились в HTML и они более универсальны, чем теги <img>, т. к. позволяют веб_серверу вернуть результат не в виде двоичного файла с изображением, а в удобочитаемом виде, который может быть проверен сце_ нарием. При использовании тега <iframe> сценарий сначала добавляет в URL_адрес информацию, предназначенную для веб_сервера, а затем записывает этот URL_ад_ рес в свойство src тега <iframe>. Сервер создает HTML_документ, содержащий ответ на запрос, и отправляет его обратно веб_броузеру, который выводит ответ в теге <iframe>. При этом элемент <iframe> необязательно должен быть видимым для пользователя – он может быть сокрыт, например средствами таблиц стилей. Сце_ нарий может проанализировать ответ сервера, выполнив обход документа в эле_ менте <iframe>. Обратите внимание: взаимодействие с документом ограничивается политикой общего происхождения, о которой рассказывается в разделе 13.8.2.

 

Даже изменение свойства src тега <script> может использоваться для иницииро_ вания динамического HTTP_запроса. Использование тегов <script> для взаимо_ действия с протоколом HTTP выглядит особенно привлекательно, потому что когда ответ сервера принимает форму JavaScript_кода, он не требует дополни_ тельного анализа – интерпретатор JavaScript просто исполняет его.

 

Несмотря на то, что существует возможность использования тегов <img>, <iframe> и <script> для взаимодействия с протоколом HTTP, реализовать такую возмож_ ность на практике переносимым образом гораздо сложнее, чем это выглядит на словах, и в этой главе мы сосредоточимся на другом, более мощном способе дос_ тижения тех же результатов. Объект XMLHttpRequest прекрасно поддерживается всеми современными броузерами и предоставляет полный доступ к протоколу HTTP, включая возможность отправлять запросы методами POST и HEAD в до_ полнение к обычному запросу методом GET. Объект XMLHttpRequest может возвра_ щать ответ веб_сервера синхронно или асинхронно, в виде простого текста или в виде DOM_документа. Несмотря на свое название объект XMLHttpRequest не огра_ ничивается использованием XML_документов – он в состоянии принимать лю_ бые текстовые документы. Объект XMLHttpRequest является ключевым элементом архитектуры веб_приложений, известной как Ajax1. Об Ajax_приложениях мы поговорим после ознакомления с тем, как работает объект XMLHttpRequest.

 

В конце главы мы вернемся к теме использования тега <script> для организации взаимодействия с протоколом HTTP, и там я продемонстрирую, как можно при_ менить эту методику, когда объект XMLHttpRequest недоступен.

 



<== предыдущая лекция | следующая лекция ==>
Хранимые данные и безопасность | Использование объекта XMLHttpRequest


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.072 сек.