[Cyberduck-trac] [Cyberduck] #7472: Head requests failed with 200 response (Openstack Swift)

Cyberduck trac at trac.cyberduck.ch
Wed Oct 2 19:46:57 UTC 2013


#7472: Head requests failed with 200 response (Openstack Swift)
---------------------------+------------------------
 Reporter:  виль суркин    |         Owner:  dkocher
     Type:  defect         |        Status:  new
 Priority:  normal         |     Milestone:  4.4
Component:  openstack      |       Version:  4.4
 Severity:  normal         |    Resolution:
 Keywords:                 |  Architecture:  Intel
 Platform:  Mac OS X 10.8  |
---------------------------+------------------------
Description changed by виль суркин:

Old description:

> We use nginx as reverse proxy for swift-proxy and in some cases enable
> caching. Nginx do GET queries instead of HEAD, because of improvements,
> when caching enabled. And reply to HEAD-reqs actually the same headers,
> as on GETs, but without actual response's body. This is normal behavior,
> as described here
> http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4
>
> But cyberduck, i think, expect "204 No content" response and do not apply
> reply from server.
>
> Clients should apply 200 response on HEAD requests as described in RFC.
>
> HTTP-log:
> {{{
> POST /v2.0/tokens HTTP/1.1
> Accept: application/json
> Content-Type: application/json
> Content-Length: 145
> Host: auth.dev
> Connection: Keep-Alive
> User-Agent: Cyberduck/4.4 (Mac OS X/10.8.5) (x86_64)
>
> HTTP/1.1 200 OK
> Server: nginx/1.1.19
> Date: Wed, 02 Oct 2013 19:30:09 GMT
> Content-Type: application/json
> Transfer-Encoding: chunked
> Connection: keep-alive
> Vary: X-Auth-Token
> Content-Encoding: gzip
>

>
> HEAD /v1/DEV_35611469d1f24cc596f6c949872513a3 HTTP/1.1
> X-Auth-Token: 03c0a8b7e8144584b6f1c2b1c77ab150
> Host: swift.dev:8080
> Connection: Keep-Alive
> User-Agent: Cyberduck/4.4 (Mac OS X/10.8.5) (x86_64)
>
> HTTP/1.1 200 OK
> Date: Wed, 02 Oct 2013 19:30:11 GMT
> Content-Type: text/plain; charset=utf-8
> Content-Length: 8
> Connection: close
> Accept-Ranges: bytes
> X-Timestamp: 1380717991.93372
> X-Account-Bytes-Used: 1721818
> X-Account-Container-Count: 2
> X-Account-Object-Count: 1
> }}}

New description:

 We use nginx as reverse proxy for swift-proxy and in some cases enable
 caching. Nginx do GET queries instead of HEAD, because of improvements,
 when caching enabled. And reply to HEAD-reqs actually the same headers, as
 on GETs, but without actual response's body. This is normal behavior, as
 described here
 http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4

 But cyberduck, i think, expect "204 No content" response and do not apply
 reply from server.

 Clients should apply 200 response on HEAD requests as described in RFC.

 Problem appears on stable, beta and nightly builds.

 HTTP-log:
 {{{
 POST /v2.0/tokens HTTP/1.1
 Accept: application/json
 Content-Type: application/json
 Content-Length: 145
 Host: auth.dev
 Connection: Keep-Alive
 User-Agent: Cyberduck/4.4 (Mac OS X/10.8.5) (x86_64)

 HTTP/1.1 200 OK
 Server: nginx/1.1.19
 Date: Wed, 02 Oct 2013 19:30:09 GMT
 Content-Type: application/json
 Transfer-Encoding: chunked
 Connection: keep-alive
 Vary: X-Auth-Token
 Content-Encoding: gzip



 HEAD /v1/DEV_35611469d1f24cc596f6c949872513a3 HTTP/1.1
 X-Auth-Token: 03c0a8b7e8144584b6f1c2b1c77ab150
 Host: swift.dev:8080
 Connection: Keep-Alive
 User-Agent: Cyberduck/4.4 (Mac OS X/10.8.5) (x86_64)

 HTTP/1.1 200 OK
 Date: Wed, 02 Oct 2013 19:30:11 GMT
 Content-Type: text/plain; charset=utf-8
 Content-Length: 8
 Connection: close
 Accept-Ranges: bytes
 X-Timestamp: 1380717991.93372
 X-Account-Bytes-Used: 1721818
 X-Account-Container-Count: 2
 X-Account-Object-Count: 1
 }}}

--

-- 
Ticket URL: <https://trac.cyberduck.ch/ticket/7472#comment:1>
Cyberduck <http://cyberduck.ch>
Open source FTP, SFTP, WebDAV, Cloud Files, Google Docs & Amazon S3 Browser for Mac & Windows.


More information about the Cyberduck-trac mailing list