| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | mg.write("HTTP/1.1 200 OK\r\n")mg.write("Connection: close\r\n")mg.write("Content-Type: text/html\r\n")mg.write("\r\n")mg.write("<!DOCTYPE html>\r\n")mg.write("<html>\r\n")mg.write("<head>\r\n")mg.write("  <meta charset=\"UTF-8\">\r\n")mg.write("  <title>HTTP reflector</title>\r\n")mg.write([[<style type="text/css" media="screen">table{border-collapse:collapse;border:1px solid #FF0000;text-align: left;}table td{border:1px solid #FF0000;}table th{border:1px solid #FF0000;}</style>]]);mg.write("</head>\r\n")mg.write("<body>\r\n")mg.write("  <h1>HTTP reflector</h1>\r\n")mg.write(mg.request_info.request_method .. " " .. mg.request_info.request_uri .. "  HTTP/" .. mg.request_info.http_version .. "\r\n")mg.write("  <h2>Header</h2>\r\n")mg.write("    <table>\r\n");mg.write("      <tr>\r\n");mg.write("        <th>Header Name</th>\r\n")mg.write("        <th>Value</th>\r\n")mg.write("      </tr>\r\n");for k,v in pairs(mg.request_info.http_headers) do  mg.write("      <tr>\r\n");  mg.write("        <td>" .. k .. "</td>\r\n")  mg.write("        <td>" .. v .. "</td>\r\n")mg.write("      </tr>\r\n");endmg.write("    </table>\r\n");mg.write("  <h2>Info</h2>\r\n")info = {}info["path_info"] = mg.request_info.path_infoinfo["query_string"] = mg.request_info.query_stringmg.write("    <table>\r\n");mg.write("      <tr>\r\n");mg.write("        <th>Info</th>\r\n")mg.write("        <th>Value</th>\r\n")mg.write("      </tr>\r\n");for k,v in pairs(info) do  mg.write("      <tr>\r\n");  mg.write("        <td>" .. k .. "</td>\r\n")  mg.write("        <td>" .. v .. "</td>\r\n")endmg.write("      </tr>\r\n");mg.write("    </table>\r\n");mg.write("  <h2>Body</h2>\r\n")mg.write("<pre>\r\n");repeat  local r = mg.read()  if (r) then    mg.write(r)  enduntil not rmg.write("\r\n</pre>\r\n");mg.write("  <h2>-</h2>\r\n")mg.write("</body>\r\n")mg.write("</html>\r\n")
 |