русс | укр

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

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

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

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


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

Получение только заголовков


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


 

Одна из особенностей объекта XMLHttpRequest заключается в том, что он позволяет определить используемый HTTP_метод. HTTP_метод HEAD запрашивает у сер_ вера только заголовки для заданного URL_адреса без содержимого, расположен_ ного по этому адресу. Эта возможность может использоваться, например, для проверки даты последнего изменения ресурса, прежде чем загружать его.

 

В примере 20.4 демонстрируется, как можно выполнить запрос HEAD. Он вклю_ чает функцию, которая выполняет анализ пар имя–значение в HTTP_заголовке и сохраняет их в виде свойств JavaScript_объекта. Здесь также имеется функция обработки ошибок, которая вызывается в случае получения от сервера кода со_ стояния 404 и других кодов ошибок.

 

Пример 20.4. Вспомогательная функция HTTP.getHeaders()

/**

* Использует HTTP_запрос HEAD для получения заголовков с указанного

 

* URL_адреса. После получения заголовков анализирует их с помощью функции

* HTTP.parseHeaders() и передает получившийся объект указанной функции

* обратного вызова. Если сервер вернет код ошибки, вызывает указанную

* функцию errorHandler. Если обработчик ошибок не задан, передает значение

* null функции обратного вызова.

*/

 

HTTP.getHeaders = function(url, callback, errorHandler) { var request = HTTP.newRequest(); request.onreadystatechange = function() {

 

if (request.readyState == 4) { if (request.status == 200) {

callback(HTTP.parseHeaders(request));

}

else {

 

if (errorHandler) errorHandler(request.status, request.statusText);

else callback(null);

}

}

}

 

request.open("HEAD", url); request.send(null);

};

// Анализирует заголовки ответа, полученные в XMLHttpRequest, и возвращает

// имена и значения в виде свойств нового объекта.

HTTP.parseHeaders = function(request) {



 

var headerText = request.getAllResponseHeaders(); // Текст от сервера var headers = {}; // Это возвращаемое значение

 

var ls = /^\s*/; // Регулярное выражение, удаляющее начальные пробелы var ts = /\s*$/; // Регулярное выражение, удаляющее конечные пробелы

 

// Разбить заголовки на строки

 

var lines = headerText.split("\n"); // Цикл по всем строкам

 

for(var i = 0; i < lines.length; i++) { var line = lines[i];


 

504 Глава 20. Работа с протоколом HTTP

if (line.length == 0) continue; // Пропустить пустые строки

 

// Разбить каждую строку по первому двоеточию и удалить лишние пробелы var pos = line.indexOf(':');

 

var name = line.substring(0, pos).replace(ls, "").replace(ts, ""); var value = line.substring(pos+1).replace(ls, "").replace(ts, "");

 

// Сохранить пару имя–значение в виде свойства JavaScript_объекта headers[name] = value;

}

return headers;

};

 



<== предыдущая лекция | следующая лекция ==>
Основные утилиты для работы с запросами GET | HTTP_метод POST


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


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

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

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


 


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

 
 

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

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