Print

Print


Dear XRootD devs,

trying to use rclone against an XRootD redirector using `cms.dfs lookup distrib`, I realized it fails. The cause is that the Go stdlib would rewrite the request method to `GET` when a 302 status is encountered. 

Going through history, it seems the cause is that 302 allowed clients to rewrite the request method to `GET` at least for `POST` requests, as shown in [RFC2616](https://datatracker.ietf.org/doc/html/rfc2616#section-10.3.3). 
Later on, it was recommended to clarify server intent by using one of:
* `303` in case the request method should indeed be changed to `GET`. 
* `307` in case the request method should be kept on redirect. 

You can find a more in-depth discussion at:
* https://github.com/rclone/rclone/issues/6029
* https://github.com/golang/go/issues/41377

dCache seems to use 307 at least on `PUT` requests, to clarify the request method should not be changed upon redirect:
https://github.com/dCache/dcache/blob/edb81b0cc1120721137e15f32800ee4dc7a740c4/skel/share/defaults/webdav.properties#L258-L260

Before trying to push a workaround into rclone, I wonder whether there would be any concerns against changing XrdHttp to use 307 for redirects instead of 302? 
So I am opening this as an RFC to get opinions. 

-- 
Reply to this email directly or view it on GitHub:
https://github.com/xrootd/xrootd/issues/1638
You are receiving this because you are subscribed to this thread.

Message ID: <[log in to unmask]>

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1