Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Что выбрать: метод GET или метод POST?



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

ü при передаче личных данных пользователя;

ü при передаче большого количества данных, так как метод GET имеет ограничение в 2000 символов. При этом метод POST подобных ограничений не имеет

ü при необходимости получения некэшированного результата.

Особенностью GET запроса является получение кэшированных данных. Если подобные данные уже передавались, то они будут выданы пользователю при следующем запросе. Таким образом, пользователь получит не новый результат, а результат предыдущего запроса, сохраненного в кэше браузера.

Для того чтобы избежать этого, нужно чтобы каждый запрос был уникальным. Этот эффект достигается за счет передачи уникальной переменной со случайным значением в каждом запросе. Это позволит избежать получения кэшированного результата в запросе:

Определение состояния готовности сервера

Сервер поочередно находится в пяти состояниях:

1. Запрос не инициализирован;

2. Установлено подключение к серверу;

3. Запрос получен;

4. Обработка запроса;

5. Обработка запроса закончена и ответ готов.

С использованием свойства readyState мы можем узнать состояние готовности сервера. Во время обработки запроса свойство readyState принимает значения от 0 до 4.

При отправлении запроса важно знать не только состояние готовности сервера, но и его ответ. За это отвечает свойство status. К примеру, если свойство status принимает значение 200, это значит, что сервер обработал запрос успешно, если значение равно 404, то сервер не нашел запрашиваемую страницу.

Посмотреть статусы сервера позволяют инструменты разработчика браузеров. К примеру, браузер Google Chrome позволяет узнать методы передачи и статусы отправленных запросов. Для этого нужно попасть в режим разработчика, нажав клавишу F12, после этого в меню выбрать подпункт Network. Перед нами появится список всех запросов со статусами ответа сервера. На рисунке 90 представлен список запросов со статусами ответов главной страницы сайта Дорожной клинической больницы.

 

Рисунок 90– Список запросов со статусами ответов главной страницы сайта Дорожной клинической больницы

Событие onreadystatechange

Часто требуется выполнить тот или иной код на основании ответа сервера. Событие onreadystatechange происходит каждый раз, когда свойство readyState (состояние готовности) изменяется. В то время, как свойство readyState содержит состояние запроса XMLHttpRequest.

Для того, чтобы корректно обработать ответ сервера необходимо добавить проверку условия:

if(XMLHttpRequest.readyState==4& & XMLHttpRequest.status==200)

, где 4 – это 4 состояния сервера, а 200– это благоприятный ответ сервера на запрос. Таким образом, мы убеждаемся в том, что запрос прошел все 4 стадии свойства readyState, и сервер вернул данные в ответ на запрос. После данной проверки мы можем получать и обрабатывать соответствующие данные.

Принятие ответа сервера

Для получения ответа сервера используются свойства responseText ( сохраняет ответ сервера как строку символов ) и responseXML ( хранит ответ сервера как XML файл ) объекта XMLHttpRequest.

Свойство responseText

В том случае, если данные, запрошенные у сервера, не являются данными в формате XML, то для их обработки используется свойство responseText:

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

Свойство responseXML

Если данные от сервера приходят в формате XML, то следует использовать свойство responseXML.

Примечание. Чтобы браузер распарсил ответ сервера в свойство responseXML, в ответе должен быть заголовок Content-Type: text/xml. Иначе свойство responseXML будет равно null.

Если возвращенный с сервера XML хорошо отформатирован и никаких проблем с приложением не возникло, то результат запроса будет выведен в виде объекта responceXML. В коммерческих приложениях для правильного форматирования данных в XML, используются XML-библиотеки.

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

Формат JSON

Формат JSON является на данный момент одним из самых удобных форматов данных, используемых при работе с JavaScript. В том случае, если требуется получить данные с сервера и отобразить их пользователю, то форматом данных, передаваемых по сети будет формат JSON. Современные браузеры обладают набором методов, делающим работу с форматом JSON удобной и простой.

JSON (JavaScript Object Notation) - простой формат обмена данными, удобный для чтения и написания как человеком, так и компьютером. Формат основан на подмножестве языка программирования JavaScript, определенного в стандарте ECMA-262 3rd Edition - December 1999.

JSON - текстовый формат, полностью независимый от языка реализации, но он использует соглашения, знакомые программистам C-подобных языков, таких как C, C++, C#, Java, JavaScript, Perl, Python и многих других. Эти свойства делают JSON идеальным языком обмена данными. Формат JSON может использоваться с AJAX вместо XML.

Что выбрать: JSON или XML?

Исторически первым форматом данных при работе с технологией AJAX был формат XML. Однако со временем появился формат JSON и на данный момент практически полностью заменил собой XML.

Преимущества JSON:

ü Простота использования;

ü Упрощенный синтаксис обеспечивающий легкость прочтения кода.

Однако XML поддерживается всеми языками программирования и является расширяемым форматом.

Синтаксис JSON: JSON включает в себя следующие структуры:

Массив. Массив представляет собой список упорядоченных значений. Массив в JSON обозначается квадратными скобками []:

[значение1, значение2, …, значениеN]

Массив в JSON может содержать неограниченное количество значений.

Объект. {имя1: значение1, имя2: значение2, …, имяN: значениеN, }

Каждый объект может содержать неограниченное количество пар имя/значения. Каждое из значений в свою очередь может быть объектом или массивом. Такие объекты или массивы называются вложенными. Объекты JSON заключаются в фигурные скобки.

{имя1: значение1,

имя2:

{имя2_1: значение2_1, имя2_2: значение2_2}

}

Литералы. Объекты и массивы в JSON группируются в конструкции. Литералами называются данные, сгруппированные конструкциями.

Литералы JSON:

ü Строка;

ü Число;

ü Логическое значение;

ü Значение null.

Предположим нам нужно получить данные о книгах, продаваемых в книжном магазине, хранящихся в формате json в файле boorbase.json. Для этого создадим новый экземпляр объекта XMLHttpRequest():

После этого отправим запрос на сервер к файлу bookbase.json методом GET

Получив благоприятный ответ от сервера, мы должны обработать файл json функцией eval() JavaScript. Сделав это, можно переходить к выводу данных с использованием innerHtml().


Поделиться:



Популярное:

  1. A. Холодный двигатель не запускается или запускается плохо
  2. Agrale — бразильская фирма из Кашиас-ду-Сул, производящая небольшие грузовые автомобили, автобусы и сельскохозяйственную технику. Образована в 1962 году.
  3. D-технология построения чертежа. Типовые объемные тела: призма, цилиндр, конус, сфера, тор, клин. Построение тел выдавливанием и вращением. Разрезы, сечения.
  4. Exercise 2: Are these statements true or false? – Истинны или ложны данные высказывания?
  5. I. Если глагол в главном предложении имеет форму настоящего или будущего времени, то в придаточном предложении может употребляться любое время, которое требуется по смыслу.
  6. I.5. Киностилистика и монтаж
  7. II. Книги (по алфавиту авторов или названий)
  8. II.1.2. Глоссарий «Проблем киностилистики»
  9. II.2. Коррекция и реабилитация речевой патологии у детей, страдающих дизартрией
  10. III. Стабилизация исламского режима в 1980-е гг.
  11. Je suis Charlie de Gaule или как спецслужбы накачивают реальность энергией страха
  12. MAKE: утилита сопровождения программ


Последнее изменение этой страницы: 2017-03-09; Просмотров: 462; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.018 с.)
Главная | Случайная страница | Обратная связь