Lua Academy · Les

HTTP-verzoeken verwerken in Lua

Krijg toegang tot requestheaders, body en args en stel responses samen met de ngx-API

Les 2 van 413 stappen

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)
end

Queryparameters 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
end

JSON-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)
end

Antwoordheaders 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_id

Het 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)
end

Context 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.

Gratis beginnen

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

  1. OpenResty-architectuur
  2. HTTP-verzoeken verwerken in Lua
  3. Cosockets en niet-blokkerende TCP
  4. Gedeelde geheugendictionaries
← Terug naar Lua Academy