Since | Origin / Contributor | Maintainer | Source |
---|---|---|---|
2015-01-19 | Vladimir Dronnikov | Vladimir Dronnikov | http.lua |
This Lua module provides a simple callback implementation of a HTTP 1.1 server.
httpserver = require("httpserver")
httpserver = nil
package.loaded["httpserver"] = nil
Function to start HTTP server.
httpserver.createServer(port, handler(req, res))
port
: Port number for HTTP server. Most HTTP servers listen at port 80.handler
: callback function for when HTTP request was made.net.server
sub module.
Callback function has 2 arguments: req
(request) and res
(response). The first object holds values:
conn
: net.socket
sub modulemethod
: Request method that was used (e.g.POST
or GET
)url
: Requested URLonheader
: value to setup handler function for HTTP headers like content-type
. Handler function has 3 parameters:
self
: req
objectname
: Header namevalue
: Header value
ondata
: value to setup handler function HTTP data. Handler function has 2 parameters:
self
: req
objectchunk
: Request dataThe second object holds functions:
send(self, data, [response_code])
: Function to send data to client. self
is req
object, data
is data to send and response_code
is HTTP response code like 200
or 404
(for example)send_header(self, header_name, header_data)
: Function to send HTTP headers to client. self
is req
object, header_name
is HTTP header name and header_data
is HTTP header data for client.finish([data])
: Function to finalize connection, optionally sending data. data
is optional data to send on connection finalizing.Full example can be found in http-example.lua