쿼리 매개 변수와 행렬 매개 변수를 사용하는 경우


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

Matrix 매개 변수와 쿼리 매개 변수의 차이점은 단순한 관례 이상입니다.

주요 차이점은 다음과 같습니다.

  • 쿼리 매개 변수 가있는 URL 은 중개자 / 프록시 (현재)에 의해 응답이 캐시되지 않습니다.
  • 행렬 매개 변수는 경로의 아무 곳에 나 나타날 수 있습니다.
  • 상대 uri를 계산하는 것이 다릅니다.
  • 쿼리 매개 변수는 일반적으로 리소스에 대한 기존 메서드를 사용하는 대신 새 동사를 추가하기 위해 악용됩니다.
  • 매트릭스 매개 변수는 자원이 아니며 계층 내에서 표현하기 어려운 정보 공간에서 자원을 참조하는 데 도움이되는 측면입니다.
  • 쿼리 대 매트릭스 매개 변수 에서 더 자세히 그리고 더 많은 참조를 사용하여 작성했습니다.


    4
    "쿼리 매개 변수가있는 URL은 중개자 / 프록시에 의해 응답이 캐시되지 않습니다." 이것은 순전히 구현에 특정한 것이 아닙니까? 이 동작을 요구하는 HTTP 표준에 아무것도 보이지 않습니다 ...
    Gili

    1
    요약 : 당신이 말한 것이 사실이라면 왜 모든 쿼리 매개 변수를 행렬 매개 변수로 마이그레이션하지 않을까요?
    Gili

    2
    @Gili는 HTTP에 의해 행동이 의무화되었다고 결코 말하지 않았습니다. 그의 기사에서 "중개자 (프록시)는 URL에 쿼리 매개 변수가있는 URL을 캐시하지 않습니다. 이는 웹 초기에는 동적으로 생성 된 페이지의 캐시 제어 정보를 신뢰하지 않았기 때문입니다." 때때로 (또는 대부분의 경우) 사양과 실제 관행이 다릅니다.
    Hendy Irawan

    6
    이 대답은 3/5 틀 렸습니다. 상대 URI에 대한 차이점과 경로 중간에 매개 변수를 포함하는 기능은 사실입니다. 다른 모든 점은 잘못되었습니다. 매트릭스 매개 변수가 인기가 높아지면 동일한 문제를 가지므로 그 점에서 쿼리 매개 변수와 다르지 않습니다.
    Gili

    3
    @Gill 쿼리 매개 변수는 선택적 기준을 정의하는 데 유용합니다. 매트릭스 매개 변수는 경로 변수에 대한 보충 정보입니다. 다음 URL 쿼리를 참조하십시오. localhost / services / api /… matrix : localhost / services / api / movies / actor; name? limit = 10 쿼리 대신 매트릭스로 사용할 때 더 의미가 있습니다. 이 URL은 bdargan의 포인트 5를 증명합니다.
    skipy
    당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
    Licensed under cc by-sa 3.0 with attribution required.