On Mon, 19 Mar 2007 22:29:36 +0100, Julian Reschke <[EMAIL PROTECTED]> wrote:
I do agree that this is a good rule, but as far as I can tell, you really need to state this (this==compliant implementations must implement all MUST-level requirements).

Why?


2.1. Members of the XMLHttpRequest Object

"When method case-insensitively matches GET, POST, HEAD, PUT or DELETE user agents MUST use the uppercase equivalent instead."

I know this is for compatibility with some broken implementations.
 This is for compatibility with the web.

[...] If this is to stay, the set of affected method names should be revisited. Do they all need to be on this list?
 Feedback indicated that they should all be in the list, yes.

So do we have evidence of enough broken content using lowercased method names so that this special case makes sense?

Implementors said they couldn't implement anything else.


"The syntax for the user or password arguments depends on the scheme being used. If the syntax for either is incorrect per the production given in the relevant scheme user agents must throw a SYNTAX_ERR exception. The user and password must be encoded using the encoding specified by the scheme. If the scheme fails to specify an encoding they must be encoded using UTF-8."

I think this has been mentioned before: does this reflect what today's implementations do for basic and digest?
 I don't think so.

Hm. I'm wondering whether we need to label those things of which we know that they *aren't* implemented that way accordingly.

It seems unwise to annotate (almost) every sentence...


Interesting.

If the major implementations do not do this consistently, this is IMHO a clear indicator that we should define new methods with clear semantics (removeHeader, getHeader, addHeader...).

It's a clear indicator that setRequestHeader() needs to be fixed. I changed its definition now to match what Internet Explorer does. Just ignoring a feature that has been implemented in different ways and going with something now doesn't solve any problem.


Again, the current situation is problematic because clients can not reliably predict what will happen when they call setRequestHeader. Either get all vendors to implement the same thing, or add new methods and leave setRequestHeader underspecified.

I'm aiming for the former.


"If the response is an HTTP redirect (status code 301, 302, 303 or 307), then it MUST be transparently followed (unless it violates security, infinite loop precautions or the scheme isn't supported). Note that HTTP ([RFC2616]) places requirements on user agents regarding the preservation of the request method during redirects, and also requires users to be notified of certain kinds of automatic redirections."

To follow a redirect on a non-safe method without the user's consent is forbidden in HTTP (see RFC2616, 10.2). No, notification is not sufficient. And yes, this also applies to POST.
 What text would you like us to use instead?

s/MUST/SHOULD/

There's already an indication of why this can fail. I think that's sufficient.


Also state that this only applies to safe methods.

I think that's already clear enough as well.


[...]

It certainly is a problem. Again, see <http://ietf.osafoundation.org:8080/bugzilla/show_bug.cgi?id=237>.

I think that's more a problem with the site in question than with XHR. For instance, with something as simple as a GET request you could steal private data.


--
Anne van Kesteren
<http://annevankesteren.nl/>
<http://www.opera.com/>

Reply via email to