Re: draft-ietf-httpbis-http2-latest, 8.1.2.1 Request Header Fields | Re: draft-ietf-httpbis-http2-latest, 8.1.2.1 Request Header Fields | Re: draft-ietf-httpbis-http2-latest, 5.5 Extending HTTP/2

On 29/07/2014 3:49 a.m., Michael Sweet wrote:
> Amos,
> 
> "http://some.host" does not have an empty path, it has the default path of "/".
> 
> Also, you aren't always doing TLS upgrade with the origin server, you are doing it with whomever you are connected, e.g., a proxy.

Under RFC2616 you would be half right. 2616 contains the blanket text
"
If the abs_path is not present in the URL, it MUST be given as "/" when
used as a Request-URI for a resource (section 5.1.2).
"

Which seems to outright prohibit use of empty path in URI.


However, today ...

RFC 7230 section 2.7.1 defines the (new) relevant piece of URI ABNF as
"authority path-abempty"

RFC 3986 defines path-abempty as 'begins with "/" or is empty'.

  Ergo, "http://some.host" contains an empty path.

RFC 7230 section 2.7.3 states regarding this empty path:
"
When not being used in absolute form as the request target of an OPTIONS
request, an empty path component is equivalent to an absolute path of
"/", so the normal form is to provide a path of "/" instead.
"

... "http://some.host" being absolute form, and the request under
discussion here being OPTIONS.

Amos

> 
> 
> On Jul 28, 2014, at 11:15 AM, Amos Jeffries wrote:
> 
>> On 29/07/2014 1:15 a.m., Michael Sweet wrote:
>>> Julian,
>>>
>>> I don't know, but RFC 2817 is pretty explicit about how to do a mandatory upgrade that applies to the connection and not to a particular resource:
>>>
>>>   3.2 Mandatory Upgrade
>>>
>>>   If an unsecured response would be unacceptable, a client MUST send an
>>>   OPTIONS request first to complete the switch to TLS/1.0 (if
>>>   possible).
>>>
>>>       OPTIONS * HTTP/1.1
>>>       Host: example.bank.com
>>>       Upgrade: TLS/1.0
>>>       Connection: Upgrade
>>>
>>> I think that's the crux - "*" has a different semantic than "/", and in HTTP/1.x you can't pass an empty path on the request line.
>>
>>
>> On 24 July 2014 03:34, Kari Hurtta wrote:
>>> OPTIONS http://some.host HTTP/1.1
>>
>>
>> Amos
>>
> 
> _________________________________________________________
> Michael Sweet, Senior Printing System Engineer, PWG Chair
> 

Received on Tuesday, 29 July 2014 11:05:07 UTC