local RESPONSE = [[ plop

Hello, from plop/lua!

MethodPathVersion
%s%s%s

HeaderValue %s
]] local HEADER = "%s%s%s\n" --- Default client request handler. -- TODO: Add documentation once request and response API are more stable. return function (stream) local status = 200 local method, path, version, h = stream:read(" ", " ", "\r\n", "\r\n\r\n") local headers = {} if h then for header, value in h:gmatch "([^%s:]+)%s*:%s+([^\r\n]*)" do headers[header:lower()] = value end end if method == nil or path == nil or version ~= "HTTP/1.1" or h == nil then status = 400 end local headers_table = "" for header, value in pairs(headers) do headers_table = HEADER:format(headers_table, header, value) end local response = RESPONSE:format(method, path, version, headers_table) local headers = {Connection="close", ["Content-Length"]=#response, ["Content-Type"]="text/html"} return {status=status, headers=headers, data=response} end