93 Stimmen

Wann sollten Abfrageparameter und wann Matrixparameter verwendet werden?

Abfrage-Parameter : http://example.com/apples?order=random&color=blue

Matrix-Parameter : http://example.com/apples;order=random;color=blue

  1. Wann sollte man Abfrageparameter und wann Matrixparameter verwenden?
  2. Warum können Matrixparameter in der Mitte einer URL verwendet werden, Abfrageparameter jedoch nicht? Zum Beispiel: http://example.com/apples;order=random;color=blue/2006/archive
  3. Wenn Matrixparameter eine Obermenge von Abfrageparametern sind, warum werden sie dann nicht immer verwendet?

Weitere Informationen über Matrixparameter finden Sie hier: http://www.w3.org/DesignIssues/MatrixURIs.html

113voto

bdargan Punkte 1134

Die Unterschiede zwischen Matrixparametern und Abfrageparametern sind weit mehr als nur Konventionen.

Die wichtigsten Unterschiede sind:

  • Urls mit Abfrageparametern werden ihre Antworten nicht von Vermittlern/Proxys zwischengespeichert (zur Zeit)
  • Matrixparameter können an beliebiger Stelle im Pfad erscheinen
  • die Berechnung der relativen uri ist anders
  • Abfrageparameter werden in der Regel missbraucht, um neue Verben hinzuzufügen, anstatt vorhandene Methoden für Ressourcen zu verwenden.
  • Matrixparameter sind keine Ressourcen, sondern Aspekte, die dazu beitragen, eine Ressource in einem Informationsraum zu referenzieren, der innerhalb einer Hierarchie nur schwer darstellbar ist.

Ich habe es ausführlicher und mit mehr Referenzen in Abfrage vs. Matrix-Parameter

4 Stimmen

"Urls mit Query-Parametern werden nicht von Vermittlern/Proxies zwischengespeichert". Ist dies nicht eine rein implementierungsspezifische Angelegenheit? Ich sehe nichts im HTTP-Standard, das dieses Verhalten vorschreibt...

1 Stimmen

Zusammengefasst: Wenn das, was Sie sagen, wahr ist, warum sollten Sie nicht alle Abfrageparameter in Matrixparameter umwandeln?

2 Stimmen

@Gili er hat nie gesagt, dass das Verhalten von HTTP vorgeschrieben ist. aus seinem Artikel: "Intermediäre (Proxies) cachen keine Url mit einem Query-Parameter in der Url. Das liegt daran, dass sie in den frühen Tagen des Webs den Cache-Control-Informationen von dynamisch generierten Seiten nicht trauten." Die Spezifikationen und die reale Praxis weichen manchmal (oder in den meisten Fällen) voneinander ab.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X