Я просто смущен этими терминами. Может кто-нибудь, пожалуйста, объясните мне краткое с примером?
В чем разница между AJAX, RESTful/Rest, JSON и JSONP?
Ответ 1
-
Ajax - "Асинхронный Javascript и XML". Ajax свободно определяет набор технологий, которые помогут сделать веб-приложения более насыщенными. Обновление и обновление данных экрана выполняется асинхронно с использованием javascript и xml (или json или только обычный пост http).
-
JSON - "Обозначение объекта Javascript". JSON похож на xml, так как он может использоваться для описания объектов, но он более компактен и имеет то преимущество, что он является фактическим javascript. Объект, выраженный в JSON, может быть преобразован в фактический объект, который будет обрабатываться в javascript-коде.
-
По умолчанию запросы Ajax должны выполняться в том же домене страницы, на которой возникает запрос. JSONP - был создан "JSON с дополнением", который позволяет запрашивать ресурсы JSON из другого домена. ( CORS является более новой и лучшей альтернативой JSONP.)
-
REST - "Передача государственного представительства". Приложения, использующие принципы REST, имеют структуру Url и шаблон запроса/ответа, который вращается вокруг использования ресурсов. В чистой модели HTTP-глаголы Get, Post, Put и Delete используются для извлечения, создания, обновления и удаления ресурсов соответственно. Put и Delete часто не используются, оставляя Get и Post для сопоставления для выбора (GET) и создания, обновления и удаления (POST)
Ответ 2
Ajax, или, вернее, AJAX, означает Asynchronous Javascript и Xml. Технически это относится к любому асинхронному запросу, сделанному браузером (все, что использует XmlHttpRequest
) от имени некоторого script, запущенного на текущей странице, независимо от того, какой тип содержимого будет возвращен. Его также можно использовать для описания определенного шаблона построения страницы/сайта, где большинство/все содержимое загружается/обновляется динамически на странице. Когда используется для описания формата данных, "ajax" обычно означает "xml".
JSON - это формат кодирования данных. Само название является аббревиатурой для "Обозначения объекта JavaScript". Данные в формате JSON выглядят так:
{"key": "value1", "key2": {"number": 1, "array": [0, 1, 2]}}
Данные JSON могут быть получены с помощью запроса AJAX, хотя он довольно часто используется в других контекстах как легкий, расширяемый и простой для анализа формат обмена данными.
JSONP - это просто данные в формате JSON, завернутые в функцию обратного вызова. "P" означает "с Padding", что является довольно глупым, если вы не хотите думать о вызовах функций как "заполнение". В любом случае данные JSONP будут выглядеть так:
someFunction({"key": "value1", "key2": {"number": 1, "array": [0, 1, 2]}});
Таким образом, JSONP - это всего лишь фрагмент кода JavaScript, и в отличие от JSON не используется вне контекста JavaScript, браузеров (или других клиентов, поддерживающих JavaScript) и запросов AJAX. Причиной использования JSONP является то, что он разрешает политику одного и того же происхождения. A script, который был отправлен с сайта X, не может сделать прямой запрос на сайт Y, если сайт Y находится в другом домене с сайта X. Но если сервер сайта Y может отправлять ответы в формате JSONP, то script с сайта X может добавить новый тег <script>
к документу, который ссылается на URL-адрес на сайте Y, и когда будет загружен ответ с сайта Y, он вызовет некоторую функцию обратного вызова, которая script X определила в документе, что дает script X доступ к данным, которые динамически загружались с сайта Y.
Обратите внимание, что данные JSONP не запрашиваются (обычно) с помощью XmlHttpRequest
. Это можно сделать с учетом стандартных оговорок политики одного и того же происхождения, но тогда вы потеряете кросс-доменную магию, которая делает JSONP полезной в первую очередь.
REST - это просто формальная спецификация/описание того, как HTTP действительно работает/предназначен для использования. Если вы понимаете концепцию URL-адреса, используемого для запроса соответствующего ресурса с сервера и разницы между Get
и Post
, тогда вы действительно знаете все, что вам нужно, о REST.
Ответ 3
Ajax обозначает асинхронный JavaScript и Xml/XhttpRequet (зависит и изменяется X, поскольку в настоящее время используется json сегодня.
Это способ выполнить запрос со страницы с помощью javascript на сервер и получить некоторый ответ. Этот ответ может быть любым, json, xml, text, html и т.д.
Это делает страницы очень отзывчивыми, не перезагружая полную страницу для выполнения действий над ней. Например, отправляя этот ответ на свои вопросы.: -)
Json - это формат данных, предназначенный для обозначения объектов JavaScrip. Это более легкий формат сериализации, чем xml и имеет преимущество JavaScript.
JsonP - следующий и логичный шаг к использованию Ajax с Json.
Сервер ответит с JSONP, обертывающим объект Json в функцию обратного вызова. Имя функции передается клиентом на сервер, как правило, в качестве параметра в запросе. P обозначает заполнение, так как сервер окружает объект json с именем функции и объектом в качестве аргумента.
callback({"name":"my name"});
Подробнее см. http://en.wikipedia.org/wiki/JSONP.