Коли використовувати параметри запиту проти параметрів матриці?


90

Параметри запиту :http://example.com/apples?order=random&color=blue

Параметри матриці :http://example.com/apples;order=random;color=blue

  1. Коли слід використовувати параметри запиту проти параметрів матриці?
  2. Чому параметри матриці можна використовувати в середині URL-адреси, а параметри запиту не можуть? Наприклад:http://example.com/apples;order=random;color=blue/2006/archive
  3. Якщо параметри матриці є надмножиною параметрів запиту, чому б не використовувати їх постійно?

Детальніше про параметри матриці ви можете прочитати тут: http://www.w3.org/DesignIssues/MatrixURIs.html

Відповіді:


110

Різниця між параметрами матриці та параметрами запиту набагато більше, ніж просто домовленість.

Основні відмінності:

  • URL-адреси з параметрами запитів не матимуть відповіді, кешованої посередниками / проксі (наразі)
  • параметри матриці можуть з'являтися де завгодно на шляху
  • обчислення відносного урі різне
  • параметри запитів, як правило, зловживають для додавання нових дієслів замість використання існуючих методів на ресурсах
  • параметри матриці не є ресурсами, це аспекти, які допомагають посилатися на ресурс в інформаційному просторі, який важко представити в ієрархії
  • Я написав це більш докладно та з більшою кількістю посилань у " Параметри запиту проти матриці"


    4
    "URL-адреси із параметрами запитів не матимуть відповіді, кешованої посередниками / проксі". Хіба це не суто річ, яка стосується реалізації? Я не бачу нічого в стандарті HTTP, що вимагає такої поведінки ...
    Гілі,

    1
    Підсумовуючи: якщо те, що ви кажете, відповідає дійсності, чому б вам не перенести всі параметри запиту на параметри матриці?
    Гілі

    2
    @Gili, він ніколи не говорив, що поведінка передбачена HTTP. зі своєї статті: "Посередники (проксі-сервери) не кешують жодну URL-адресу з параметром запиту в URL-адресі. Це тому, що в перші дні Інтернету вони не довіряли керуючій інформації кешу з динамічно генерованих сторінок." Характеристики та реальна практика іноді (або в більшості випадків) відрізняються.
    Hendy Irawan

    6
    Ця відповідь 3/5 неправильна. Різниця щодо відносних URI та можливості вбудовувати параметри в середині шляху є вірною. Усі інші моменти помилкові, оскільки параметри матриці матимуть точно таку ж проблему, як тільки вони стануть більш популярними, тому вони не відрізняються від параметрів запиту в цьому відношенні.
    Гілі

    3
    Параметри запиту @Gill корисні для визначення необов’язкових критеріїв. Параметри матриці є додатковою інформацією до змінної шляху. Дивіться цей URL-запит: localhost / services / api /… matrix: localhost / services / api / movies / actor; name? Limit = 10 Має більше сенсу, коли використовується як матриця над запитом. Ця URL-адреса підтверджує пункт 5 від bdargan.
    skipy
    Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
    Licensed under cc by-sa 3.0 with attribution required.