เมื่อใดควรใช้พารามิเตอร์การสืบค้นเทียบกับพารามิเตอร์เมทริกซ์


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 ที่มีพารามิเตอร์การสืบค้นจะไม่มีการตอบสนองที่แคชไว้โดยตัวกลาง / พร็อกซี (ในปัจจุบัน)
  • พารามิเตอร์เมทริกซ์อาจปรากฏที่ใดก็ได้ในเส้นทาง
  • การคำนวณ uri สัมพัทธ์แตกต่างกัน
  • โดยทั่วไปพารามิเตอร์การสืบค้นจะถูกใช้ในทางที่ผิดเพื่อเพิ่มคำกริยาใหม่แทนที่จะใช้วิธีการที่มีอยู่ในทรัพยากร
  • พารามิเตอร์เมทริกซ์ไม่ใช่ทรัพยากรเป็นลักษณะที่ช่วยอ้างอิงทรัพยากรในพื้นที่ข้อมูลที่ยากที่จะแสดงภายในลำดับชั้น
  • ฉันได้เขียนรายละเอียดเพิ่มเติมและมีการอ้างอิงเพิ่มเติมใน Query vs. Matrix Parameters


    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 / stars; name? limit = 10 มีความหมายมากขึ้นเมื่อใช้เป็นเมทริกซ์บนแบบสอบถาม URL นี้พิสูจน์จุดที่ 5 จาก bdargan
    sky
    โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
    Licensed under cc by-sa 3.0 with attribution required.