HTTP-Anfragen in Lua verarbeiten
Greifen Sie über die ngx-API auf Request-Header, Body und Argumente zu und erstellen Sie Antworten
HTTP-Anfragen in Lua verarbeiten ist eine kostenlose Lua Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Lua Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.
Anfragemethode und URI auslesen
Greifen Sie über den ngx-Namespace auf die HTTP-Methode und die URI zu.
-- content_by_lua_block
local method = ngx.req.get_method()
local uri = ngx.var.uri
ngx.say("Method: " .. method .. ", URI: " .. uri)Anfrage-Header auslesen
ngx.req.get_headers() gibt eine Tabelle mit den Anfrage-Headern zurück.
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)
endQuery-Parameter auslesen
ngx.req.get_uri_args() gibt eine Tabelle mit den URL-Query-Parametern zurück.
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)Request-Body auslesen
Lesen Sie den Request-Body aus, nachdem Sie explizit ngx.req.read_body() aufgerufen haben.
ngx.req.read_body()
local body = ngx.req.get_body_data()
if not body then
ngx.status = 400
ngx.say("Empty body")
return
endJSON-Body parsen
Verwenden Sie eine JSON-Bibliothek (z. B. cjson), um den Request-Body zu parsen.
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)
endAntwort-Header setzen
Setzen Sie Antwort-Header über ngx.header, bevor Sie ngx.say oder ngx.print aufrufen.
ngx.header["Content-Type"] = "application/json"
ngx.header["X-Request-ID"] = ngx.var.request_idAntwort schreiben
ngx.say(s) schreibt eine Zeichenfolge und einen Zeilenumbruch. ngx.print(s) schreibt ohne Zeilenumbruch. ngx.exit(code) beendet die Anfrage mit dem angegebenen HTTP-Status.
ngx.status
Setzen Sie den HTTP-Statuscode über ngx.status = 404, bevor Sie den Antwort-Body schreiben.
ngx.status = 404
ngx.header["Content-Type"] = "application/json"
ngx.say(cjson.encode({error = "Not Found"}))Interne Weiterleitungen
ngx.exec("/other/path") führt eine interne Weiterleitung zu einem anderen Nginx-Location-Block durch, ohne einen zusätzlichen HTTP-Roundtrip.
Subrequests
ngx.location.capture("/api") stellt eine Subrequest an eine andere Location und gibt eine Tabelle mit Status, Headern und Body zurück.
local res = ngx.location.capture("/internal/auth")
if res.status ~= 200 then
ngx.exit(403)
endAnfragekontext gemeinsam nutzen
ngx.ctx ist eine anfragebezogene Tabelle, über die Daten zwischen verschiedenen Phasen-Handlern gemeinsam genutzt werden können (access → content → log).
Frage zur HTTP-Verarbeitung
Welche Funktion liest URL-Query-Parameter in OpenResty aus?
Zusammenfassung: HTTP-Anfragen verarbeiten
Verwenden Sie ngx.req-Funktionen, um Methode, Header, Query-Argumente und Body auszulesen. Setzen Sie ngx.header und ngx.status, bevor Sie schreiben. Verwenden Sie ngx.say/ngx.print für die Ausgabe. Teilen Sie anfragebezogene Daten über ngx.ctx.
Häufig gestellte Fragen
Ist die Lektion „HTTP-Anfragen in Lua verarbeiten“ kostenlos?
Ja — der vollständige Text von „HTTP-Anfragen in Lua verarbeiten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Lua Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „HTTP-Anfragen in Lua verarbeiten“?
Greifen Sie über die ngx-API auf Request-Header, Body und Argumente zu und erstellen Sie Antworten Du übst Lua Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Lua Academy zu starten?
Keine Vorkenntnisse erforderlich. Lua Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „HTTP-Anfragen in Lua verarbeiten“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Lua Academy-Lektion Code schreiben und ausführen?
Ja. Jede Lua Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- OpenResty-Architektur
- HTTP-Anfragen in Lua verarbeiten
- Cosockets und nicht blockierendes TCP
- Shared-Memory-Dictionaries