Identifier les ressources et de représentation utilisant AjaxIdentifier les ressources et la représentationREPOS favorise la séparation de la ressource par la représentation. À titre d'illustration, nous allons travailler par l'intermédiaire du stock historique exemple téléscripteur. L'URL utilisée pour récupérer les informations historiques ticker est / services/historical/AMZN/2006. Le format par défaut généré par le service Web est CSV, mais le défaut pourrait tout aussi bien pu XML ou JavaScript Object Notation (JSON). Si un client ne peut accepter que JSON, alors la conversion de CSV to JSON nécessite une étape supplémentaire et des ressources supplémentaires.
Pour optimiser cette application, vous pouvez laisser le serveur de décider pour quel contenu pour générer en fonction des besoins du client. Si le client veut JSON, le serveur va générer JSON. Les données qui est généré en tant que JSON, XML et CSV est tout de même. Ainsi, on peut dire que les données sont la ressource, et JSON, XML et CSV sont la représentation. Séparation de la ressource par la représentation signifie que d'une URL unique aura des représentations distinctes. La représentation qui est envoyé dépend de la valeur de l'HTTP Accept-* en-tête, mais ne doit pas être le seul. Concentrons-nous sur l'en-tête HTTP Accept et d'envisager la conversation suivante HTTP qui renvoie une partie du contenu. DemandeGET / HTTP/1.1 Host services/historical/AMZN/2006: 192.168.1.242:8100 User-Agent: Mozilla/5.0 (compatible; PPC Mac OS X Mach-O; EN-US; rv: 1.7.8) Gecko / 20050511 Accept: text / xml, application / xml, application / xhtml + xml, text / html; q = 0.9, text / plain; q = 0.8, image / png ,*/*; q = 0.5 Accept-Language: fr -us, en; q = 0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1, utf-8; q = 0.7, *; q = 0.7 Keep-Alive: 300 Connection: keep-alive RéponseHTTP/1.1 200 OK Date: Tue, 21 Aug 2006 14:51:40 GMT Server: Apache/2.0.53 (Ubuntu) Last-Modified: Jeu 11 Mai 2006 17:43:45 GMT ETag: "41419c-45 - 438fd340 "Accept-Ranges: bytes Content-Length: 69 Keep-Alive: timeout = 15, max = 100 Connection: Keep-Alive Content-Type: text / html; charset = UTF-8 La requête est une requête HTTP GET, ce qui signifie que le serveur HTTP doit récupérer les données associées à la ressource. L'opération devient spécifiques lorsque la demande fournit les en-têtes HTTP Accept, Accept-Language, Accept-Encoding, et Accept-Charset. Ces en-têtes HTTP sont acceptés par le serveur HTTP et servir comme une indication de ce que le contenu à envoyer. Mettre l'accent sur l'en-tête HTTP Accept, les valeurs sont une série d'identificateurs codés MIME-ce que le client accepte. L'ordre et le type de l'identificateur sont importantes, car elles précisent la priorité du contenu que le client veut recevoir à partir du serveur. La logique est d'envoyer le contenu disponible à la priorité définie par le client qui, par exemple, oblige le serveur pour envoyer du contenu HTML avant que le contenu en texte brut. La priorité du contenu est la priorité des types MIME tel que défini dans la spécification HTTP. La liste suivante est générée lorsque vous réorganiser la demande par exemple: 1. application / xhtml + xml 2. text / xml 3. text / xml 4. image / png 5. text / html; q = 0.9 6. text / plain; q = 0.8 7. * / *; q = 0.5 L'ordre des identificateurs dépend de la spécialisation identifiant et sa valeur Q. Un identifiant de type MIME qui n'a pas de valeur q indique une valeur par défaut de 1,0. Lorsque la valeur aq existe, vous devez diminuer la priorité de l'identificateur du type MIME à la valeur spécifiée par la valeur de q. Identificateur de spécialisation, c'est quand un identificateur est une priorité plus élevé parce que le contenu spécifié est plus spécifique que l'autre identificateur. Dans la liste des priorités, le texte identificateur / xml est plus spécifique que * / * parce * / * veut tout dire. En outre, text / xml est plus spécifique que text / *, et donc text / xml est une priorité plus élevée. Notez que l'identificateur MIME d'abord de la conversation HTTP est text / xml, et le second est text / xml. Pourtant, dans l'ordre de priorité, le premier identifiant MIME application / xhtml + xml. J'ai fait cette hypothèse, après avoir lu les spécifications HTTP et MIME, mais je sens que c'est un bug qui vient de se passer de travailler. Let's disséquer la demande par exemple de comprendre pourquoi ce bug s'est produit au travail. Le type MIME identificateurs text / xml, application / xhtml xml, et application / xml-sont considérés comme spécifiques, et chacun a une valeur de 1 aq. Si le serveur suit l'ordre des types MIME, cela signifie que le navigateur préfère recevoir le contenu XML en HTML ou XHTML contenu. L'application / xml et text / xml sont les types MIME de contenu XML, bien que le contenu XML peut être contenu XHTML. Lecture du cahier des charges permet de résoudre le problème avec la phrase concernant l'ordre de priorité des types MIME, qui dit de manière générique qu'un type MIME plus spécifiques commande avant un type MIME moins spécifiques. Cela signifie application / xhtml-XML est en ordre avant l'application / xml et text / xml, parce que l'application / xhtml, xml est spécifiquement au format XML. L'exemple HTTP conversation a montré que le navigateur a été explicite dans ce qu'il voulait. Il existe des navigateurs mais qui ne précise pas explicitement ce qu'ils veulent, comme en témoigne la conversation suivante HTTP. DemandeGET / services/historical/AMZN/2006 Accept: * / * Accept-Language: fr-ca Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;. NET CLR 2.0.50215;. NET CLR 1.1.4322) Connection: Keep-Alive Certains navigateurs envoyer l'identifiant de type Accept * / *, qui signifie en substance: "Envoie-moi ce que tu as, je vais l'accepter." Une telle demande est très peu utile et il est difficile de mettre en oeuvre la séparation des la ressource par la représentation. La solution à ce problème consiste à définir une représentation par défaut pour l'identifiant * / *. Ce n'est pas une solution idéale, mais une solution engendré par la nécessité d'envoyer quelque chose. Très probablement, ces clients qui envoient * / * sont basés sur HTML navigateurs Web. un article présenté par Sonja Lande Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite. Important: Cet article «Identification des ressources et de représentation utilisant Ajax" a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.
|
|||||
| Online: 383 users browsing the articles directory |
|
|