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 92f760937a12ea207b10fc872401cab05f475e6b..2a2393f66a2750335148849b97435410eaf40de9 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;