http URI grammar

In rfc2616, the production was:
    http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

from 2396bis:
abs_path became path-absolute in 2396bis

    path          = path-abempty    ; begins with "/" or is empty
                  / path-absolute   ; begins with "/" but not "//"
                  / path-noscheme   ; begins with a non-colon segment
                  / path-rootless   ; begins with a segment
                  / path-empty      ; zero characters

    path-abempty  = *( "/" segment )
    path-absolute = "/" [ segment-nz *( "/" segment ) ]

    segment       = *pchar
    segment-nz    = 1*pchar

The current definition in -11 [1] is

      http-URI = "http:" "//" authority path-abempty [ "?" query ]

One difference is that httpbis now allows
* http://www.example.com//foo
* http://www.example.com
as valid URIs (which is fine), but also allows http://www.example.com?foo
is that desired? Should it be changed to

      http-URI = "http:" "//" authority ( path-empty /
                                          1*( "/" segment) [ "?" query ] )
or
      http-URI = "http:" "//" authority ( path-empty /
                                          path-absolute [ "?" query ] )

[1] http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-11#section-2.6.1

-- 
Baroula que barouleras, au tiéu toujou t'entourneras.

         ~~Yves

Received on Wednesday, 4 August 2010 14:45:26 UTC