client: allow keep-alive for POST requests
authorJo-Philipp Wich <jo@mein.io>
Fri, 13 Mar 2020 11:57:44 +0000 (12:57 +0100)
committerJo-Philipp Wich <jo@mein.io>
Fri, 13 Mar 2020 12:16:35 +0000 (13:16 +0100)
Allow POST requests via persistent connections to improve performance
especially when using HTTPS on older devices.

After this change, average page load times in LuCI improve significantly
once the TLS connections are initiated.

When testing an ar71xx 19.07.2 build on an ethernet connected TL-WR1043nd
using luci-ssl-openssl and the ustream-openssl backend, the average page
load time for the main status page decreased to 1.3s compared to 4.7s
before, the interface and wireless configuration pages loaded in 1.2s
seconds each compared to the 4.2s and 4.9s respectively before.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
client.c

index 92f7609..2a2393f 100644 (file)
--- a/client.c
+++ b/client.c
@@ -194,8 +194,7 @@ static int client_parse_request(struct client *cl, char *data)
 
        req->method = h_method;
        req->version = h_version;
-       if (req->version < UH_HTTP_VER_1_1 || req->method == UH_HTTP_MSG_POST ||
-           !conf.http_keepalive)
+       if (req->version < UH_HTTP_VER_1_1 || !conf.http_keepalive)
                req->connection_close = true;
 
        return CLIENT_STATE_HEADER;