Die Ermittlung der Ressourcen-und Vertretung mit AjaxDie Ermittlung der Ressourcen-und VertretungREST fördert die Trennung der Ressource aus der Darstellung. Zur Veranschaulichung, lassen Sie uns durch das historische Lager-Ticker-Beispiel. Die URL verwendet, um die historischen Ticker abzurufen ist / services/historical/AMZN/2006. Das Standardformat von dem Web-Dienst erzeugt wird, CSV, aber die Voreinstellung könnte genauso gut XML oder JavaScript Object Notation (JSON) wurde. Wenn ein Client nur JSON akzeptieren, ist die Konvertierung von CSV zu JSON erfordert einen zusätzlichen Schritt und zusätzliche Ressourcen.
Um diese Anwendung zu optimieren, können Sie es den Server, der Inhalte generieren auf die Bedürfnisse des Kunden zu entscheiden. Wenn der Kunde JSON, dann wird der Server JSON erzeugen. Die Daten, die als JSON, XML generiert wird, und CSV ist alles einerlei. So kann man sagen, dass die Daten der Ressource ist, und JSON, XML und CSV sind die Vertretung. Die Trennung der Ressource aus der Darstellung bedeutet, dass eine einzelne URL separate Darstellungen haben werden. Die Darstellung der gesendet wird, hängt vom Wert des HTTP-Header Accept-*, aber nicht müssen das einzige. Konzentrieren wir uns auf den HTTP-Header Accept und betrachten die folgenden HTTP-Gespräch, das gibt einige Inhalte. AnfordernGET / services/historical/AMZN/2006 HTTP/1.1 Host: 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: en -de, 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 ResponseHTTP/1.1 200 OK Date: Mon, 21 Aug 2006 14:51:40 GMT Server: Apache/2.0.53 (Ubuntu) Last-Modified: Do, 11 May 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 Der Antrag ist ein HTTP-GET, die den HTTP-Server bedeutet, muss die Daten mit der Ressource abzurufen. Die Operation wird spezifisch, wenn der Antrag die HTTP-Header sieht Accept, Accept-Language, Accept-Encoding und Accept-Charset. Diese HTTP-Header werden vom HTTP-Server nicht akzeptiert und dienen als Hinweis auf welche Inhalte zu senden. Fokussierung auf die HTTP-Header Accept, die Werte einer Reihe von MIME-kodierten-IDs, die der Kunde akzeptiert werden. Die Reihenfolge und Art der Kennung sind wichtig, weil sie die Priorität des Inhalts, dass der Kunde will vom Server zu empfangen angeben. Die Logik ist es, die Inhalte zur Verfügung mit der Priorität, die der Kunde, dass zum Beispiel zwingt den Server, um HTML-Inhalte vor Nur-Text-Content zu senden definiert wird. Die Priorität der Inhalt ist die Priorität der MIME-Typen wie in der HTTP-Spezifikation definiert. Die folgende Liste wird erzeugt, wenn Sie das Beispiel Anfrage reorder: 1. application / xhtml + xml 2. text / xml 3. application / xml-4. image / png 5. text / html; q = 0,9 6. text / plain; q = 0.8 7. * / *; q = 0,5 Die Reihenfolge der Identifikatoren, hängt von der Spezialisierung und der Kennung Q-Wert. Ein MIME-Typ Bezeichner, keine q-Wert gibt einen Vorgabewert von 1,0. Wenn aq Wert vorhanden ist, müssen Sie die Priorität der MIME-Typ-Kennung auf den Wert von der Q-Wert angegeben. Identifier Spezialisierung niedriger ist, wenn ein Bezeichner eine höhere Priorität, weil die angegebene Inhalt ist spezifischer als die andere Kennung. In der Liste der Prioritäten, die Kennung text / xml ist spezifischer als * / * weil * / * alles bedeutet. Darüber hinaus text / xml ist spezifischer als text / *, und damit text / xml ist eine höhere Priorität. Beachten Sie, dass die erste MIME-Kennung aus dem HTTP-Gespräch Text / xml, und das zweite ist application / xml. Doch in der Reihenfolge ihrer Priorität ist die erste Kennung MIME application / xhtml + xml. Ich habe diese Annahme nach dem Lesen des HTTP-und MIME-Daten, aber ich glaube, es ist ein Fehler, der nur zufällig an die Arbeit. Let's sezieren Beispiel Anfrage zu verstehen, warum dieser Fehler zur Arbeit passiert ist. Der MIME-Typ Identifikatoren application / xml, text / xml und application / xhtml-xml werden als spezifische, und jeder hat aq Wert 1. Wenn der Server folgt der Reihenfolge der MIME-Typen, bedeutet dies, dass der Browser erhalten XML-Inhalte in HTML-oder XHTML-Inhalte bevorzugt. The application / xml und text / xml MIME-Typen werden von XML-Inhalten, wenn auch die XML-Inhalte könnten XHTML-Inhalte. Lesen der Spezifikation löst das Problem mit dem Satz über die Priorität der Bestellung des MIME-Typen, die so allgemein, dass eine bestimmte MIME-Typ trägt vor einem weniger spezifischen MIME-Typ. Dies bedeutet, application / xhtml-xml ist vor der Anwendung bestellt / xml und text / xml, weil application / xhtml-xml XML ist speziell formatiert. Das Beispiel HTTP-Gespräch erläutert, dass der Browser in expliziter war es, was es wollte. Es gibt Browser aber, dass nicht nicht explizit angeben, was sie wollen, wie die folgenden HTTP-Gespräch erläutert. AnfordernGET / services/historical/AMZN/2006 Accept: * / * Accept-Language: de-de 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 Manche Browser senden Sie das Akzeptieren Typ Bezeichner * / *, das bedeutet im Wesentlichen: "Schicken Sie mir, was du hast, ich werde es akzeptieren." Ein solcher Antrag ist sehr hilfreich und macht es schwierig, die Trennung der Umsetzung die Ressource aus der Darstellung. Die Lösung dieses Problems besteht darin, eine Standard-Darstellung für den Bezeichner * / define *. Es ist keine ideale Lösung, aber eine Lösung, zeugte von der Notwendigkeit, etwas zu senden. Sehr wahrscheinlich, dass die Kunden zu senden * / * sind HTML-basierte Web-Browser. Ein Artikel eingereicht von Sonja Lande Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle. Wichtig: Dieser Artikel "Die Ermittlung der Ressourcen-und Vertretung mit Ajax" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.
|
|||||
| Online: 431 users browsing the articles directory |
|
|