On 02/04/2011, at 7:09 PM, Cameron Heavon-Jones wrote:

> 
> On 02/04/2011, at 6:50 PM, Nathan wrote:
> 
>> Cameron Heavon-Jones wrote:
>>> On 02/04/2011, at 5:11 PM, Nathan wrote:
>>>> Julian Reschke wrote:
>>>>> On 02.04.2011 17:32, Cameron Heavon-Jones wrote:
>>>>>> I think PUT and DELETE should follow POST in regards to the action URI. 
>>>>>> Personally i'm not too keen on GETs producing URIs and would prefer 
>>>>>> there to be at least the option of embedding the form data. Maybe this 
>>>>>> could be specified as a new encType - "text/uri" or somelike...
>>>>>> 
>>>>>> why would the need for a template arise? to PUT to a resource implies 
>>>>>> the resource already exists, it can be used as a creational operation as 
>>>>>> described in the example but that would seem to be leeking server-side 
>>>>>> implementation details (the id) into the client and introduce coupling.
>>>>> There are use cases for PUT-to-create. Namely, when you *want* to enable 
>>>>> the client to name the resource.
>>>> Yes, or when you (/server) want to specify/suggest where the resource 
>>>> should be PUT to within the HTML (after all, any predetermined value in 
>>>> the form @action for PUT will be precisely that).
>>>> 
>>>>>> I think the focus on existing servers and services is unhelpful for the 
>>>>>> specification of new features. Of course they won't be supported 
>>>>>> retrospectively but it's about allowing new services to function fully.
>>>>> That is true.
>>>>> What I want to avoid though is that a server can't support PUT for both 
>>>>> forms and other kinds of clients on the same URI.
>>>> Likewise, I strongly feel that some common use cases for PUT would be say:
>>>> 
>>>> 1) coupling <form>, <input type="file"> and <progress> together in some 
>>>> way to allow somebody to say PUT an image/jpeg (with the correct 
>>>> Content-Type value)
>>>> 
>>>> 2) PUTting some text/* or application/* specified in a <textarea> to a 
>>>> location, again with the correct Content-Type set.
>>>> 
>>>> If those are supported then all manner of clever domain specific server 
>>>> side juggling of representations can be done for those that want to try 
>>>> and juggle between application/x-form-urlencoded and say application/json.
>>>> 
>>>> I'd suggest that it would be easy to foresee a simple apache mod that 
>>>> enabled simple PUTting and DELETEing on resources, storing the 
>>>> representations as received, and that any efforts to support either PUT or 
>>>> DELETE should be focussed towards something people can actually use, out 
>>>> of the box, without any complex code implementation or domain specific 
>>>> understanding of experimental media types like 
>>>> application/x-form-urlencoded or POST centric ones like 
>>>> multipart/form-data.
>>>> 
>>>> Best,
>>>> 
>>>> Nathan
>>> I think operating over files is a great example of how useful these 
>>> operations can be and frames the problem into a far more real-world 
>>> scenario for html over the way these operations are usually discussed in 
>>> terms of XML and business processing.
>>> I'm not sure if forms can support other media type encodings. The file 
>>> input can specify an 'accept' attribute but i don't even think this would 
>>> be sent with the file data under normal form encodings. 
> 
> multipart/form-data would send the content-type.
> 
>> 
>> Which begs the question, is <form> even the correct approach? It appears to 
>> me that the fucntionality of forms will have to be special cased and 
>> effectively constrained just to do PUT (only certain elements make sense or 
>> would have a use, arguably) or DELETE (no elements really make any sense).
>> 
>> So perhaps, fresh eyes and a new approach, new elements, may be in order. 
>> That is, if it's not deemed that the use cases are so different and 
>> complicated that it infact makes more sense to just use scripting and xhr!
>> 
>> Best,
>> 
>> Nathan
> 
> Which functionality of the form will need to be special cased for PUT or 
> DELETE? 
> 
> The only additions would seem to be the etag attributes which are 
> non-offensive and highly desirable in my opinion.
> 
> Any content which is possible for POST must be possible for PUT.
> 
> I agree the case for customizing DELETE seems strange, why would you upload a 
> file to delete a resource? There is nothing about the DELETE method which 
> precludes if from containing any form of content in the body of the request, 
> and with some further thought i can even think of where a case were this 
> would be desirable.
> 
> What about if when DELETE-ing a resource the server requires a digital 
> signature file to be uploaded with the request? Maybe this is a specific 
> security mechanism on a resource-by-resource basis?
> 
> What about if there is some other conditional attributes required for a 
> successful DELETE operation? The form element can capture these and so while 
> security and conditions will *probably* be handled elsewhere doesn't mean 
> they *must* be handled elsewhere. 
> 
> From the perspective of the HTTP protocol, there are no special requirements 
> and hence i don't see any reason to introduce any special handling in HTML.
> 
> Thanks,
> Cam


As an additional reason for a URI mime for encType, this would allow for DELETE 
methods to be initiated in the same manor as GETs, for example:


<form encType="text/uri" method="DELETE" action="http://www.exmaple.com/users";>
        <input name="hat-size" type="text"/>
        <input name="submit"/>
</form>
 

would result in the following request:

*** REQUEST
DELETE /users?hat-size=small HTTP/1.1
Host: www.example.org
Accept: text/html

*** RESPONSE
200 OK HTTP/1.1
Content-Type: text/html
...
<html>
...
<ul>
<p>The following users have been deleted with hat-size=small:</p>
<li>user-name: mike</li>
<li>user-name: bob</li>
<li>user-name: jim</li>
</ul>
...
<html>

Reply via email to