diff --git a/httplib.h b/httplib.h index 5fb8308..2544c88 100644 --- a/httplib.h +++ b/httplib.h @@ -1528,7 +1528,7 @@ inline bool Server::parse_request_line(const char* s, Request& req) std::cmatch m; if (std::regex_match(s, m, re)) { - req.version = std::string(m[4]); + req.version = std::string(m[5]); req.method = std::string(m[1]); req.target = std::string(m[2]); req.path = detail::decode_url(m[3]); @@ -1560,10 +1560,14 @@ inline void Server::write_response(Stream& strm, bool last_connection, const Req // Headers if (last_connection || - req.version == "HTTP/1.0" || req.get_header_value("Connection") == "close") { res.set_header("Connection", "close"); } + + if (!last_connection && + req.get_header_value("Connection") == "Keep-Alive") { + res.set_header("Connection", "Keep-Alive"); + } if (!res.body.empty()) { #ifdef CPPHTTPLIB_ZLIB_SUPPORT