5 comments

  • ljnelson 0 minutes ago
    Many comments so far seem to imply (perhaps not intentionally) that this syntax was intended only on the "right side" of the URI, but you can think of it more as adding qualifier-like information to (potentially) each path segment. So in /com/foo/bar you could further qualify foo (perhaps as /com/foo;color=yellow/bar). This can be combined with a (definitionally trailing) query string as well. Someone noted that Spring implements some support for this; the Eclipse Foundation's Jersey (Java REST toolkit) does as well if I remember right.
  • jameshart 30 minutes ago
    The generic URI syntax actually specifies that any path segment within a URI can be divided up into parts by semicolons (or commas), and suggests using key=value as parameters within that segment.

    http://tools.ietf.org/html/rfc3986#section-3.3

       For
       example, the semicolon (";") and equals ("=") reserved characters are
       often used to delimit parameters and parameter values applicable to
       that segment.  The comma (",") reserved character is often used for
       similar purposes.  For example, one URI producer might use a segment
       such as "name;v=1.1" to indicate a reference to version 1.1 of
       "name", whereas another might use a segment such as "name,1.1" to
       indicate the same
    
    There’s no thought given as far as I can see to the relative URL concepts this matrix proposal covers, but the idea of adding key=value data in this format is supported by the RFC, and indeed in a way that supports further adding sub resources below the current one.

    Which, by the way, this matrix relative URL proposal seems to ignore - how is ./subpage resolved relative to /map;x=250;y=582 ?

  • jacques_chester 31 minutes ago
  • namegulf 39 minutes ago
    Semicolon is also nice on the eyes compared to '&' we're used to today.

    Why in the world this didn't gain traction?

  • drcongo 1 hour ago
    I quite like the semi-colons. I wonder how we ended up with the slightly unwieldy ?foo=bar&some=thing
    • pavlov 1 hour ago
      Think “how do I implement a search engine whose interface is visible in the browser address bar?” This was a reasonable question on the early web. And that’s why they are called query params.

      The question mark indicates you’re making a query. And the ampersand is a boolean operator. You could imagine query params implementing | in addition to &.

      • drcongo 45 minutes ago
        I think to non-techies the semi-colons are still more intuitive - I often see non-technical people mess up the ? and &, either by using just one of them or by getting them the wrong way around.
    • TRiG_Ireland 32 minutes ago
      I'm certain I've seen websites which used semi-colons rather than question marks and ampersands for query parameters. The Jehovah's Witnesses website used to, many years ago. I believe that one of the reasons behind this design was that it meant that there were no special characters which needed to be escaped in HTML. This design works fine for links, but not for forms, which will generate normal URLs containing question marks and ampersands. I suppose you can use POST-Redirect-GET forms, and generate your own URLs using semi-colons.
    • _micheee 58 minutes ago
      Seems Like the recommendation changed from supporting ; and & to only using &.

      Thinking about it, it is a little surprising as, if I remember correctly, in HTML source you should encode & as & right?

    • ErroneousBosh 56 minutes ago
      Is there any reason we couldn't just use that anyway?
      • TRiG_Ireland 31 minutes ago
        If you're relying on HTML forms being filled in to generate queries, the browser will always generate standard query parameters with a question mark and ampersands. But if you're making your own links, you can generate them however you like. Semi-colons should work fine, though you may need to write your one URL parsing functions.
      • echoangle 34 minutes ago
        I think some browsers display the query params muted compared to the part before (or maybe I’m confusing it with the behavior that the domain is highlighted to prevent phishing?). But technically, you can just parse the request url however you want. I also think it shouldn’t matter with regards to any caching layers inbetween.