summaryrefslogtreecommitdiffstats
path: root/src/civetweb/test/page_keep_alive.lua
blob: d869ce46f16bc7d7ca899b7eab962372a76cc3b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
-- Set keep_alive. The return value specifies if this is possible at all.
canKeepAlive = mg.keep_alive(true)

if canKeepAlive then
    -- Create the entire response in a string variable first. Content-Length will be set to the length of this string.
    reply = [[
        <html><body>
        <p>This is a Lua script supporting html keep-alive with the 
        <a href="https://github.com/civetweb/civetweb/">CivetWeb web server</a>.
        </p>
        <p>It works by setting the Content-Length header field properly.
        </body></html>
    ]]
else
    reply = "<html><body>Keep alive not possible!</body></html>"
end

-- First send the http headers
mg.write("HTTP/1.1 200 OK\r\n")
mg.write("Content-Type: text/html\r\n")
mg.write("Date: " .. os.date("!%a, %d %b %Y %H:%M:%S") .. " GMT\r\n")
mg.write("Cache-Control: no-cache\r\n")

if canKeepAlive then
    mg.write("Content-Length: " .. tostring(string.len(reply)) .. "\r\n")
    mg.write("Connection: keep-alive\r\n")
else
    mg.write("Connection: close\r\n")
end
mg.write("\r\n")

-- Finally send the content
mg.write(reply)