0Pricing
Lua Academy · Lezione

Gestione delle richieste HTTP in Lua

Acceda agli header, al body e agli argomenti della richiesta e crei risposte con l'API ngx.

Gestione delle richieste HTTP in Lua è una lezione Lua Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Lua Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Lua Academy include 4 lezioni in totale.

Lettura del metodo e dell'URI della richiesta

Acceda al metodo HTTP e all'URI dal namespace ngx.

-- content_by_lua_block
local method = ngx.req.get_method()
local uri    = ngx.var.uri
ngx.say("Method: " .. method .. ", URI: " .. uri)

Lettura degli header della richiesta

ngx.req.get_headers() restituisce una tabella degli header della richiesta.

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

Lettura dei parametri di query

ngx.req.get_uri_args() restituisce una tabella dei parametri di query dell'URL.

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)

Lettura del corpo della richiesta

Legga il corpo della richiesta dopo aver chiamato esplicitamente ngx.req.read_body().

ngx.req.read_body()
local body = ngx.req.get_body_data()
if not body then
  ngx.status = 400
  ngx.say("Empty body")
  return
end

Analisi del corpo JSON

Utilizzi una libreria JSON (ad es., cjson) per analizzare il corpo della richiesta.

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

Impostazione degli header della risposta

Imposti gli header della risposta tramite ngx.header prima di chiamare ngx.say o ngx.print.

ngx.header["Content-Type"] = "application/json"
ngx.header["X-Request-ID"] = ngx.var.request_id

Scrittura della risposta

ngx.say(s) scrive una stringa e un carattere di nuova riga. ngx.print(s) scrive senza una nuova riga. ngx.exit(code) termina la richiesta con il codice di stato HTTP specificato.

ngx.status

Imposti il codice di stato HTTP tramite ngx.status = 404 prima di scrivere il corpo della risposta.

ngx.status = 404
ngx.header["Content-Type"] = "application/json"
ngx.say(cjson.encode({error = "Not Found"}))

Reindirizzamenti interni

ngx.exec("/other/path") esegue un reindirizzamento interno verso un altro blocco location di Nginx senza un ulteriore round trip HTTP.

Sottorichieste

ngx.location.capture("/api") esegue una sottorichiesta verso un'altra location e restituisce una tabella con stato, header e corpo.

local res = ngx.location.capture("/internal/auth")
if res.status ~= 200 then
  ngx.exit(403)
end

Condivisione del contesto della richiesta

ngx.ctx è una tabella per singola richiesta che consente di condividere dati tra diversi gestori di fase (access → content → log).

Domanda sulla gestione HTTP

Quale funzione legge i parametri di query dell'URL in OpenResty?

Riepilogo: gestione delle richieste HTTP

Utilizzi le funzioni ngx.req per leggere metodo, header, argomenti di query e corpo. Imposti ngx.header e ngx.status prima di scrivere. Utilizzi ngx.say/ngx.print per l'output. Condivida i dati per singola richiesta tramite ngx.ctx.

Domande Frequenti

La lezione «Gestione delle richieste HTTP in Lua» è gratuita?

Sì — il testo completo di «Gestione delle richieste HTTP in Lua» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Lua Academy, passa a CoddyKit PRO. Il corso Lua Academy include 4 lezioni in totale.

Cosa imparerò in «Gestione delle richieste HTTP in Lua»?

Acceda agli header, al body e agli argomenti della richiesta e crei risposte con l'API ngx. Eserciti Lua Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Lua Academy?

Non è richiesta alcuna esperienza precedente. Lua Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Gestione delle richieste HTTP in Lua»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Lua Academy?

Sì. Ogni lezione Lua Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Architettura di OpenResty
  2. Gestione delle richieste HTTP in Lua
  3. Cosocket e TCP non bloccante
  4. Dizionari in memoria condivisa
← Torna a Lua Academy