HTTP-verzoeken verwerken in Lua
Krijg toegang tot requestheaders, body en args en stel responses samen met de ngx-API
HTTP-verzoeken verwerken in Lua is een gratis Lua Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Lua Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Lua Academy bevat in totaal 4 lessen.
De verzoekmethode en URI lezen
Je kunt de HTTP-methode en URI lezen vanuit de naamruimte ngx.
-- content_by_lua_block
local method = ngx.req.get_method()
local uri = ngx.var.uri
ngx.say("Method: " .. method .. ", URI: " .. uri)Verzoekheaders lezen
ngx.req.get_headers() retourneert een tabel met verzoekheaders.
local headers = ngx.req.get_headers()
local auth = headers["Authorization"]
if not auth then
ngx.status = 401
ngx.say("Unauthorized")
ngx.exit(ngx.HTTP_UNAUTHORIZED)
endQueryparameters lezen
ngx.req.get_uri_args() retourneert een tabel met URL-queryparameters.
local args = ngx.req.get_uri_args()
local page = tonumber(args.page) or 1
local size = tonumber(args.size) or 20
ngx.say("Page: " .. page .. ", Size: " .. size)De verzoekinhoud lezen
Lees de verzoekinhoud nadat je expliciet ngx.req.read_body() hebt aangeroepen.
ngx.req.read_body()
local body = ngx.req.get_body_data()
if not body then
ngx.status = 400
ngx.say("Empty body")
return
endJSON-inhoud parseren
Gebruik een JSON-bibliotheek (bijvoorbeeld cjson) om de verzoekinhoud te parseren.
local cjson = require("cjson")
ngx.req.read_body()
local body = ngx.req.get_body_data()
local ok, data = pcall(cjson.decode, body)
if not ok then
ngx.status = 400
ngx.say("Invalid JSON")
return ngx.exit(400)
endAntwoordheaders instellen
Stel antwoordheaders in via ngx.header voordat je ngx.say of ngx.print aanroept.
ngx.header["Content-Type"] = "application/json"
ngx.header["X-Request-ID"] = ngx.var.request_idHet antwoord schrijven
ngx.say(s) schrijft een tekenreeks en een nieuwe regel. ngx.print(s) schrijft zonder nieuwe regel. ngx.exit(code) beëindigt het verzoek met de opgegeven HTTP-status.
ngx.status
Stel de HTTP-statuscode in via ngx.status = 404 voordat je de antwoordinhoud schrijft.
ngx.status = 404
ngx.header["Content-Type"] = "application/json"
ngx.say(cjson.encode({error = "Not Found"}))Interne omleidingen
ngx.exec("/other/path") voert een interne omleiding uit naar een ander Nginx-locatieblok zonder een extra HTTP-rondreis.
Subverzoeken
ngx.location.capture("/api") maakt een subverzoek naar een andere locatie en retourneert een tabel met status, headers en inhoud.
local res = ngx.location.capture("/internal/auth")
if res.status ~= 200 then
ngx.exit(403)
endContext delen tussen verzoekfasen
ngx.ctx is een tabel per verzoek waarmee je gegevens kunt delen tussen verschillende fasehandlers (toegang → inhoud → logging).
Vraag over HTTP-afhandeling
Welke functie leest URL-queryparameters in OpenResty?
Samenvatting: HTTP-verzoeken afhandelen
Gebruik ngx.req-functies om de methode, headers, queryargumenten en inhoud te lezen. Stel ngx.header en ngx.status in voordat je gaat schrijven. Gebruik ngx.say/ngx.print voor uitvoer. Deel gegevens per verzoek via ngx.ctx.
Leer Lua met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 40
- Lessen
- 159
Veelgestelde vragen
Is de les “HTTP-verzoeken verwerken in Lua” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Lua Academy, waaronder “HTTP-verzoeken verwerken in Lua”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Lua Academy bevat in totaal 4 lessen.
Wat leer ik in “HTTP-verzoeken verwerken in Lua”?
Krijg toegang tot requestheaders, body en args en stel responses samen met de ngx-API Je oefent met Lua Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Lua Academy te beginnen?
Ervaring vooraf is niet nodig. Lua Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “HTTP-verzoeken verwerken in Lua”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Lua Academy?
Ja. Elke les over Lua Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- OpenResty-architectuur
- HTTP-verzoeken verwerken in Lua
- Cosockets en niet-blokkerende TCP
- Gedeelde geheugendictionaries