web-dev-qa-db-fra.com

Quelle est la différence entre AJAX, RESTful / Rest, JSON et JSONP?

Je suis juste confondu avec ces termes. Quelqu'un peut-il me fournir/expliquer un bref exemple?

39
user901620
  • Ajax - "Javascript asynchrone et XML". Ajax définit de manière lâche un ensemble de technologies pour aider à faire des applications Web une expérience utilisateur plus riche. La mise à jour et l'actualisation des données de l'écran se fait de manière asynchrone en utilisant javascript et xml (ou json ou simplement un post http normal).

  • [~ # ~] json [~ # ~] - "Notation d'objet Javascript". JSON est comme xml en ce qu'il peut être utilisé pour décrire des objets, mais il est plus compact et a l'avantage d'être du javascript réel. Un objet exprimé en JSON peut être converti en un objet réel à manipuler en code javascript.

  • Par défaut, les demandes Ajax doivent se produire dans le même domaine de la page d'où provient la demande. [~ # ~] jsonp [~ # ~] - "JSON avec rembourrage" - a été créé pour vous permettre de demander Ressources JSON d'un domaine différent. ( [~ # ~] cors [~ # ~] est une alternative plus récente et meilleure au JSONP.)

  • [~ # ~] reste [~ # ~] - "Representational State Transfer". Les applications utilisant les principes REST ont une structure Url et un modèle de demande/réponse qui tournent autour de l'utilisation des ressources. Dans un modèle pur, les verbes HTTP Get, Post, Put et Delete sont utilisés pour récupérer , créer, mettre à jour et supprimer des ressources respectivement. Put et Delete ne sont souvent pas utilisés, laissant Get et Post sur la carte pour sélectionner (GET) et créer, mettre à jour et supprimer (POST)

47
Nathan Ratcliff

Ajax, ou plus correctement, AJAX, signifie Asynchronous Javascript And Xml. Techniquement, il fait référence à toute demande asynchrone effectuée par le navigateur (tout ce qui utilise un XmlHttpRequest) au nom d'un script exécuté sur la page en cours, quel que soit le type de contenu renvoyé. Il peut également être utilisé pour décrire un certain modèle de construction d'une page/site où la plupart/tout le contenu est récupéré/mis à jour dynamiquement sur la page. Lorsqu'il est utilisé pour décrire un format de données, "ajax" signifie généralement "xml".

JSON est un format d'encodage de données. Le nom lui-même est un acronyme pour "JavaScript Object Notation". Les données au format JSON ressemblent à:

{"key": "value1", "key2": {"number": 1, "array": [0, 1, 2]}}

Les données JSON peuvent être récupérées par une demande AJAX, bien qu'elles soient assez couramment utilisées dans d'autres contextes comme format d'échange de données léger, extensible et facile à analyser.

JSONP est simplement des données au format JSON enveloppées dans une fonction de rappel. Le "P" signifie "avec remplissage", ce qui est assez stupide à moins que vous n'aimiez à considérer les appels de fonction comme "remplissage". Dans tous les cas, les données JSONP ressembleront à:

someFunction({"key": "value1", "key2": {"number": 1, "array": [0, 1, 2]}});

En tant que tel, JSONP n'est en réalité qu'un extrait de code JavaScript et, contrairement à JSON, n'est pas utilisé en dehors du contexte de JavaScript, des navigateurs (ou d'autres clients compatibles JavaScript) et AJAX requêtes. La raison de l'utilisation de JSONP permet de modifier la même stratégie d'origine . Un script provenant du site X ne peut pas faire de demande directe au site Y si le site Y se trouve sur un domaine différent du site X Mais si le serveur du site Y peut envoyer des réponses au format JSONP, le script du site X peut ajouter un nouveau <script> tag vers le document qui fait référence à une URL sur le site Y, et lorsque la réponse du site Y est chargée, elle invoquera une fonction de rappel définie par le script X dans le document, permettant ainsi au script X d'accéder aux données chargées dynamiquement depuis site Y.

Notez que les données JSONP ne sont pas (généralement) demandées à l'aide d'un XmlHttpRequest. Cela peut être fait de cette façon, sous réserve des mises en garde standard de la même politique d'origine, mais vous perdez ensuite la magie interdomaine qui rend JSONP utile en premier lieu.

REST est simplement la spécification/description formelle de la façon dont HTTP fonctionne réellement/est destiné à être utilisé. Si vous comprenez le concept d'une URL utilisée pour demander une ressource correspondante à un serveur et la différence entre Get et Post, vous savez vraiment tout ce dont vous avez besoin sur REST.

17
aroth

Ajax signifie Asynchronous JavaScript et Xml/XhttpRequet (le X dépend et a changé car la plupart du temps json est utilisé aujourd'hui.

C'est un moyen d'exécuter une requête à partir de la page en utilisant javascript sur le serveur et de recevoir une réponse. Cette réponse peut être n'importe quoi, json, xml, texte, html, etc ...

Cela rend les pages très réactives sans avoir à recharger la page complète pour exécuter des actions dessus. Par exemple, poster cette réponse à vos questions. :-)

Json est un format de données pour JavaScrip Object Notation. C'est un format de sérialisation plus léger que xml et a l'avantage d'être JavaScript.

JsonP est l'étape suivante et logique de l'utilisation d'Ajax avec Json.

Un serveur répondra avec JSONP encapsulant l'objet Json dans une fonction de rappel. Le nom de la fonction est transmis par le client au serveur, généralement en tant que paramètre dans la chaîne de requête. Le P signifie padding, car le serveur entoure l'objet json avec le nom de la fonction et l'objet comme argument.

callback({"name":"my name"});

Voir: http://en.wikipedia.org/wiki/JSONP pour une explication plus détaillée.

4
theprogrammer