Hello.
I'm trying to setup HTTP keepalive and, although my application appears to send
all the right headers, the connection is always closed when the client issues
requests with a body, like POSTs or PUTs. GETs keep the connection open.
Example (even with a content-length of 0 this breaks the connection):
Connected to localhost.
Escape character is '^]'.
POST /XXX HTTP/1.1
User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r
zlib/1.2.5
Host: localhost:8000
Accept: */*
Content-Length: 0
Expect: 100-continue
HTTP/1.1 200 OK
Date: Fri, 17 May 2013 15:52:23 GMT
Vary: Accept-Language, Cookie
Content-Length: 413
Content-Type: application/json
Content-Language: pt
Connection: Keep-Alive
{"bytes": 0, "thumb_exists": false, "rev":
"c3dcd9eb-bf09-11e2-9267-406c8f001c8a", "modified": "Fri, 17 May 2013 15:52:23
+0000", "cursor":
"action_upload,event_c3dc7f2e-bf09-11e2-95e7-406c8f001c8a,d1508fef-7bec-4641-a2ed-571abf52606b_c3dcfef3-bf09-11e2-8c83-406c8f001c8a",
"path": "/11232", "is_dir": false, "icon": "page_white.gif", "root":
"dropbox", "mime_type": "application/octet-stream", "size": "0
bytes"}Connection closed by foreign host. <-----------
I have added to my config:
add-header: Connection: Keep-Alive
http-keepalive: 1
http-auto-chunked: 1
On another note, I've noticed that by connecting to the http socket and sending
just carriage returns, my WSGI application is invoked with invalid arguments.
The connection is broken after the first corrupted request. In the case of
Django, it blows up with:
Traceback (most recent call last):
File
"/Users/andre/work/penv/discosite/lib/python2.7/site-packages/django/core/handlers/wsgi.py",
line 245, in __call__
request = self.request_class(environ)
File
"/Users/andre/work/penv/discosite/lib/python2.7/site-packages/django/core/handlers/wsgi.py",
line 147, in __init__
self.method = environ['REQUEST_METHOD'].upper()
KeyError: u'REQUEST_METHOD'
Is this permitted by the WSGI spec? If I send a GET first, and the connection
is kept alive, I'm allowed to just keep sending carriage returns, generating
errors, and the connection is not broken.
Best regards,
André
_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi