Подтвердить что ты не робот

В чем разница между AJAX, RESTful/Rest, JSON и JSONP?

Я просто смущен этими терминами. Может кто-нибудь, пожалуйста, объясните мне краткое с примером?

4b9b3361

Ответ 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.