- From: Dzonatas Sol <dzonatas@gmail.com>
- Date: Tue, 31 May 2011 09:38:53 -0700
- To: ietf-http-wg@w3.org
RFC2116 indicates the CONNECT method is reserved, <http://www.ietf.org/rfc/rfc2616.txt>: 9.9 CONNECT This specification reserves the method name CONNECT for use with a proxy that can dynamically switch to being a tunnel (e.g. SSL tunneling [44]). There is an assumption made how that tunnel is implemented. That would be much more extensible if we expect "Content-Type:" instead of that tunnel assumption, especially given <http://www.ietf.org/rfc/rfc2634.txt> (S/MIME). For example, let this *request* initialize one persistent client/server object that did not previously exist: > CONNECT /000 > Content-Type: multipart/mixed; boundary=stream > Content-Length: 0 > > --stream > Content-Type: xml-ietf-http/1.1; method=head; prefix="/.well-known/" > Content-Length: 0 > > --stream Instead of the proxy or tunnel (described in 9.9), the above could bind two queues (i.e. local and remote) together as one logical stream. I thought about the GET only server, yet the above appears more practical, as every GET succeeds the HEAD. The *response* could look like (in Turing-complete manner): > CONNECT /000 > Content-Type: multipart/mixed; boundary=STREAM000 > Content-Length: 0 > > --STREAM000 > Content-Disposition: head > > --STREAM000 > Content-Type: xml-ietf-http/1.1; method=post; prefix="/.well-known/"; filename="browser-hints"; format=json > > { > "max-conns": 1, > "small-hdrs": true > "omit-cookies": true > } > > --STREAM000 > Content-Disposition: body > > --STREAM000 > Content-Type: xml-ietf-http/1.1; method=put; filename="browser-hints"; format=json > > { > "omit-cookies": [ > ["/images/users/", false], > ["/images/", true] > ] > } > > --STREAM000 > Content-Disposition: tail > > --STREAM000 > Content-Type: xml-ietf-http/1.1; method=delete; prefix="/.well-known/"; filename="browser-hints" > Content-Length: 0 > > --STREAM000-- The most significant bit is that both the client and server issue the same exact CONNECT method. On 05/30/2011 12:43 PM, Dzonatas Sol wrote: > Status code 203 is more appropriate for the GET method while 214 is > more appropriate for the POST, PUT, and DELETE methods. > > If there are several POST, PUT, and DELETE operations on the queue > that expect the same definitive set of headers, 214 could indicate the > simple merge of each query was made into multi-part mime format (i.e. > where content-type now indicates the method) instead of individual > connections/queries. 214 status can include GET in the same way, yet I > think of the 203 status as an optimization in strict queries that > simply convey "there is no know cause why anything changed about the > original message". > > > On 05/30/2011 11:28 AM, Roy T. Fielding wrote: >> On May 29, 2011, at 6:27 PM, Mark Nottingham wrote: >> >>> Hmm. I see that we have warn code 214, "Transformation applied," >>> which makes me wonder about the relationship (whether or not we go >>> with the proposal below). >> The 203 status was defined in 1993 (IIRC) and later implemented in >> proxies like >> Commentor (IIRC). I don't know if anything depends on it today, but >> it is >> known and usable by Apache httpd. >> >> Warnings were added in 1996 and, AFAIK, only implemented for the >> purpose of >> server-side RFC compliance. Apache httpd's mod_filter adds it while >> filtering >> content as a proxy (it does not set 203 because it can filter error >> content, >> though I could change that if some other checks in the code are fixed). >> >> I do not know of any clients that check for either one, since there >> isn't >> much they can do about it. >> >> ....Roy >> > > -- --- https://twitter.com/Dzonatas_Sol --- Web Development, Software Engineering, Virtual Reality, Consultant
Received on Tuesday, 31 May 2011 16:40:37 UTC