- From: Roy T. Fielding <fielding@liege.ICS.UCI.EDU>
- Date: Thu, 22 Aug 1996 01:43:31 -0700
- To: Klaus Weide <kweide@tezcat.com>
- Cc: http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com, jg@w3.org
> Replace > field-content = <the OCTETs making up the field-value > and consisting of either *TEXT or combinations > of token, tspecials, and quoted-string> > with > field-content = <the OCTETs making up the field-value, > either as defined by more specific rules > (see 14, 19.6.2) or *TEXT for unrecognized > message headers> > Reason: > The former is unnecessary specific; in fact it seems exactly equivalent > to > field-content = *(*TEXT | *(token | tspecial | quoted-string) ) > which is apparently not the intention. Agreed. However, I think the more appropriate fix would be [in Section 4.2] to remove field-content (there is no other reference to it) and replace it with a more accurate definition of field-value, as in ========== message-header = field-name ":" *LWS [ field-value ] *LWS CRLF field-name = token field-value = <*OCTET, up to but not including the next line which does not begin with SP or HT> Additional requirements may apply to the syntax of each field-value according to the definition of the associated field-name. The common HTTP/1.1 header fields are defined in section 14. A message-header field with no field-value is considered to have an empty or null value. A header field which does not occur at all as a message-header of the message is considered to have no value (a value which is undefined) for that message. Depending on the definition of a field's semantics, an empty value may or may not be equivalent to an undefined value for that field. The order in which header fields ... ========== > Also add after the first paragraph of 3.2, before 3.2.1: > > Whitespace is not allowed anywhere within an URI. In other words, > the last paragraph of 2.1 (implied *LWS) does not apply to the BNF > rules in 3.2.1 and 3.2.2. I'm not sure if this is wise -- we may wish to allow URI-only header fields (Location, Content-Location, Content-Base) to be split over more than one line for use in mail (i.e., ignore any whitespace), and thus we might be better off with just No whitespace is allowed in the Request-URI. in section 5.1.2. > In 3.11 Entity Tags, add a sentence somewhere 'Whitspace is not > allowed between the "W/" prefix and the opaque-tag' (if you think > it should apply). Yes. > In 9.2 [OPTIONS], make the last sentence ("If the OPTIONS request passes > through a proxy,...") a separate paragraph, to make clear that it > applies to both preceding pragraphs (which handle "*" and not-"*", > respectively). Yes, good catch. We should also change the second paragraph to say Unless the server's response is an error, the response MUST NOT include an entity, but MAY include those entity-header fields which describe methods, restrictions, or requirements for access to the resource (e.g., Allow is appropriate, but Content-Type is not). Responses to this method are not cachable. since the existing wording seems to be confusing people. > 11 Access Authentication, 4th paragraph: > A user agent that wishes to authenticate itself with a server--usually, > but not necessarily, after receiving a 401 or 411 response--MAY do so by > ^^^ > The 411 seems to be in error here. Yes, that is an error, and it must be a year old. Crikey. >> > Comments (within parentheses) should probably allowed in more >> > places - at least, in 19.4.7 >> > MIME-Version = "MIME-Version" ":" 1*DIGIT "." 1*DIGIT >> > should probably be >> > MIME-Version = "MIME-Version" ":" 1*DIGIT "." 1*DIGIT *comment Oh, okay. > Another place where trailing comments could be allowed would be the > HTTP From header. But I don't know how common that is in HTTP/1.0. No need -- comments are already allowed in the mailbox (from RFC 822). At least I think that's the case (I can't see my copy of 822 right now). >> > 10.3.6 305 Use Proxy >> > >> > The requested resource MUST be accessed through the proxy given by the >> > Location field. The Location field gives the URL of the proxy. The >> > recipient is expected to repeat the request via the proxy. >> > >> > How exactly does is a proxy "given" by a Location field? >> > Location normally contains an URI, and URIs point to resources but >> > not (normally) applications (the proxy). Does the URI have to be >> > a http_URL, does the abs_path have to be empty (or is it required >> > to be "/"), and what if not? >> >> On the contrary, proxies are normally identified by URL. The URL >> does not need to be an http URL (though it would be in current practice) >> and the interpretation of the path (if any) would be dependent on >> the method of proxying (http would not use any path). > > I don't understand what you mean with "normally". ... It is how they were defined (in environment vars) for all WWW clients prior to Netscape [and any that still use libwww or libwww-perl]. > I understand that you want to keep the spec open for future extensions, > but since this draft defines (a version of) HTTP, it should at least > define the use of this header with http_URLs. Otherwise this response > code will be useless (different implementations use it differently, > or nobody uses it), and it could just as well be defined as > "This code is reserved for future use" (like 402). I felt it was self-evident -- you just demonstrated that to be wrong. We can either change it to "This code is reserved for future use" now or someone can come up with a complete, yet not too restrictive, definition of 305 and (as you suggested) Proxy-Location before the editor decides to generate a new draft. I won't be able to think about it til Tuesday. I do consider it *very* important that Proxy-Location not be restricted to http URLs. > [1] I don't understand why the spec is so lenient here. Shouldn't > all HTTP/1.1 implementations be REQUIRED to recognize all the > response codes in this spec? There are several "client MUST"s > in other parts for specific response codes, and it's not clear > whether "not understanding" a response code lets a client get away > with not following its MUSTs. This includes 305. Yes, the leniency is leftover from HTTP/1.0. We should add HTTP/1.1 clients MUST recognize all of the status codes defined by this specification (above). to the end of the last paragraph in section 6.1.1. >> > A remark regarding 14.1 Accept: >> > It's a pity there is a "q=", but not a "mxb=". An oversight or >> > intentional? >> >> The conneg group decided it "wasn't needed" based on the observation >> that browsers didn't implement it. > > There is a way in the latest lynx code to specify it via the .mailcap > file, and I understand that the Apache server can make use of it. You should ask Larry if the issue can be reopened and mxb restored. I personally feel it was a mistake to remove it, and since we have already missed the boat on getting HTTP/1.1 implemented in the most recent wave of browsers, we might as well get it right. ...Roy T. Fielding Department of Information & Computer Science (fielding@ics.uci.edu) University of California, Irvine, CA 92697-3425 fax:+1(714)824-4056 http://www.ics.uci.edu/~fielding/
Received on Thursday, 22 August 1996 01:54:12 UTC