You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by "Nathan Vander Wilt (JIRA)" <ji...@apache.org> on 2011/04/28 23:58:04 UTC

[jira] [Updated] (COUCHDB-1146) Content-Length ignored on GET requests

     [ https://issues.apache.org/jira/browse/COUCHDB-1146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nathan Vander Wilt updated COUCHDB-1146:
----------------------------------------

    Description: 
In the case of a GET request, CouchDB does not wait for the client to send any content promised by a Content-Length header but sends its response as soon as the last header is received. This can confuse some HTTP client libraries (such as node.js) that do not expect to receive a response before they have finished the request.

To reproduce:
$ telnet localhost 5984
GET / HTTP/1.1
Content-Length: 3

...


Expected results:
No response from CouchDB until last "." is typed

Actual results:
CouchDB sends response and closes the client's connection as soon as request headers are done.

>From IRC conversation (and RFC 2616) this doesn't seem to be out-of-spec per se, but is a bit "rude" and therefore can break fragile clients (eg https://github.com/joyent/node/issues/989).

  was:
In the case of a GET request, CouchDB does not wait for the client to send any content promised by a Content-Length header but sends its response as soon as the last header is received. This can confuse some HTTP client libraries (such as node.js) that do not expect to receive a response before they have finished the request.

To reproduce:
$ telnet localhost 5984
GET / HTTP/1.1
Content-Length: 3

...


Expected results:
No response from CouchDB until last "." is typed

Actual results:
CouchDB sends response and closes the client's connection as soon as request headers are done.

>From IRC conversation (and RFC 2616) this doesn't seem to be out-of-spec per se, but is a bit "rude" and therefore can break fragile clients.


> Content-Length ignored on GET requests
> --------------------------------------
>
>                 Key: COUCHDB-1146
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1146
>             Project: CouchDB
>          Issue Type: Bug
>          Components: HTTP Interface
>            Reporter: Nathan Vander Wilt
>
> In the case of a GET request, CouchDB does not wait for the client to send any content promised by a Content-Length header but sends its response as soon as the last header is received. This can confuse some HTTP client libraries (such as node.js) that do not expect to receive a response before they have finished the request.
> To reproduce:
> $ telnet localhost 5984
> GET / HTTP/1.1
> Content-Length: 3
> ...
> Expected results:
> No response from CouchDB until last "." is typed
> Actual results:
> CouchDB sends response and closes the client's connection as soon as request headers are done.
> From IRC conversation (and RFC 2616) this doesn't seem to be out-of-spec per se, but is a bit "rude" and therefore can break fragile clients (eg https://github.com/joyent/node/issues/989).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira