2.1 KiB
2.1 KiB
HTTP Server Module
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.
Require
httpserver = require("httpserver")
Release
httpserver = nil
package.loaded["httpserver"] = nil
httpserver.createServer()
Function to start HTTP server.
Syntax
httpserver.createServer(port, handler(req, res))
Parameters
port
: Port number for HTTP server. Most HTTP servers listen at port 80.handler
: callback function for when HTTP request was made.
Returns
net.server
sub module.
Notes
Callback function has 2 arguments: req
(request) and res
(response). The first object holds values:
-
conn
:net.socket
sub module. DO NOT call:on
or:send
on this object. -
method
: Request method that was used (e.g.POST
orGET
) -
url
: Requested URL -
onheader
: value to setup handler function for HTTP headers likecontent-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 data
The second object holds functions:
send(self, data, [response_code])
: Function to send data to client.self
isreq
object,data
is data to send andresponse_code
is HTTP response code like200
or404
(for example)send_header(self, header_name, header_data)
: Function to send HTTP headers to client.self
isreq
object,header_name
is HTTP header name andheader_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