I sent this HTTP POST request via Tasker (Android app) to my NodeMCU, which looks like this:
POST / HTTP/1.1 Content-Type: application/x-www-form-urlencoded User
For the sake of completeness, here is another solution I came up with:
string.gsub(request, "<(%a+)>([^<]+)%a+>", function(key, val) print(key .. ": " .. val) end)
A working example using the given HTTP request in your question can be seen here:
https://repl.it/repls/GlamorousAnnualConferences