IT Ordbog
Hvad er Middleware?
Middleware er software, der fungerer som et mellemlag mellem klienten og serveren. Det behandler forespørgsler undervejs — autentificering, omdirigering, logging og mere — inden de når deres endelige destination.
Hvad er middleware?
Middleware er software, der sidder mellem to systemer og behandler kommunikation mellem dem. I webudvikling refererer middleware til funktioner, der udføres på forespørgsler (requests) og svar (responses) mellem klienten og serveren. Tænk på det som et checkpoint: hver forespørgsel passerer gennem middleware-funktioner, der kan inspicere, ændre, omdirigere eller afvise forespørgslen, inden den når sin destination. Middleware følger et "kæde"-mønster, hvor forespørgslen passerer gennem flere middleware-lag.
Typiske middleware-anvendelser
Middleware bruges til mange formål: 1) Autentificering — tjek om brugeren er logget ind, 2) Autorisation — tjek om brugeren har adgang, 3) Logging — registrér alle forespørgsler for debugging, 4) CORS — håndtér cross-origin forespørgsler, 5) Rate limiting — begræns antallet af forespørgsler, 6) Caching — returner cachet data uden at kontakte serveren, 7) Komprimering — komprimer svar for hurtigere levering, 8) Locale/sprog — detekter og sæt brugerens sprog. I Next.js bruges middleware til routing og omdirigering.
Middleware i Next.js
Next.js har built-in middleware-support via en middleware.ts-fil i projektets rod. Denne kører på Edge Runtime (tæt på brugeren) og kan behandle alle indgående forespørgsler inden de når dine sider. Typiske Next.js middleware-use cases: locale-detektion og omdirigering, autentificeringstjek, A/B-testing, Content Security Policy headers, og geografisk baseret routing. Hos Grumsen Development bruger vi Next.js middleware til sproghåndtering og sikkerhedsheaders.
Hvorfor er middleware vigtigt?
Middleware giver en central placering for tværgående funktionalitet (cross-cutting concerns) — logik der skal køre for alle eller mange forespørgsler. Uden middleware ville autentificering, logging og sikkerhed skulle implementeres separat i hver route/handler. Middleware holder koden DRY (Don't Repeat Yourself) og gør det nemt at tilføje, ændre eller fjerne funktionalitet uden at ændre selve applikationslogikken. Det er et fundamentalt arkitekturmønster i professionel webudvikling.