Subbu Allamaraju schrieb:
On 10/11/06, *Julian Reschke* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Subbu Allamaraju schrieb:
     > Few points -
     >
     > (a) I don't think the question is whether it is hard to implement a
    certain method or not. It certainly is possible to implement. I'm trying
    to find the rationale.
     >
     > (b) IMO, XHR spec is concerned about specifying the semantics of what
    happens when a given implementation does not understand/support a
    particular method - this is correctly addressed by specifying that it
    should throw a SYNTAX_ERR. But saying anything beyond this would be
    limiting.

    Of course it's limiting, but I would say this is on purpose.


Sorry - I don't follow. A little explaining would help. What purpose other than specifying the semantics of the fields/operations of XHR?

One of the purposes of an API spec is to establish a set of semantics generic clients can rely on.

     > (c) We're considering designing wrapper implementations of
    XMLHttpRequest ( e.g. an implementation of XHR in script wrapping a
    native XHR object) to solve some use cases related to UI aggregation
    (e.g. apps aggregating UI components - portlet being an example of a UI
    component). However, in this case, one of the issues we find is the
    need
    to support methods other than GET and POST - there is no semantic
    mapping of HEAD, OPTIONS etc in this use case, and so a wrapped

    HEAD ist the same as GET, expect that there is no response body. If you
can do GET, you can do HEAD.

I understand. The issue we have in the use case I listed is that there is no mapping for other options to the programming model exposed to the component developers.

So why exactly are you pretending to do HTTP then?

     > implementation would not be able to conform to this requirement. I
    hope this is a concrete-enough example for my argument.

    I'm not sure I follow. XHR is a component that enables user agents to do
    HTTP. I can see why a *server* wouldn't implement DELETE (for
    instance),
    but why that component?


In other words, in order to comply to the requirement to support, say, DELETE, we will have to come up with what it means for the component. I could see some use cases, but coming back to the original question, the wrapped implementation should be able to choose the method support depending on what makes sense.

XmlHttpRequest is an API for submitting HTTP requests. In that, it SHOULD NOT be restricted to specific verbs. Now if the origin server supports only a specific set, that's fine. But that's a distinct component. A server that can't DELETE is free to return an HTTP status of - for instance - 405 or 501.

Two sum up, there does not seem to be any reason other than some intent of making implementations support a base set of methods. If the WG feels strongly about this, instead of saying a MUST or SHOULD, the spec could add a statement "encouraging" implementations support these base set of methods.

I'm still not sure whether you're talking about an XmlHttpRequest component or a server. A server is free to reject any request it wants, and RFC2616 specifies how to do that. The XmlHttpRequest component should be able to forward any request the clients sends to a server. There's no point in limiting the set of request methods in this component (except for *certain* security issues).

Best regards, Julian


Reply via email to