Håndtering af HTTP-forespørgsler
Skriv en grundlæggende Worker, der opfanger og besvarer HTTP-forespørgsler, og demonstrér den centrale funktionalitet.
Håndtering af HTTP-forespørgsler er en gratis Edge computing med Cloudflare Workers og Deno-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Edge computing med Cloudflare Workers og Deno, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Edge computing med Cloudflare Workers og Deno-kurset indeholder 4 lektioner i alt.
Workers og webforespørgsler
Cloudflare Workers er effektive værktøjer, der befinder sig ved internettets kant. Tænk på dem som yderst effektive portvagter for din webtrafik.
Deres primære opgave er at opfange indgående HTTP-forespørgsler, behandle dem med din kode og derefter sende et passende HTTP-svar tilbage.
Forstå forespørgslen
Hver gang en brugers browser interagerer med din Worker, modtager den et Request-objekt. Dette objekt indeholder alle oplysninger om den indgående forespørgsel:
- URL: Den fulde webadresse, som brugeren forsøgte at nå.
- Metode: HTTP-handlingen, f.eks. GET (hentning af data) eller POST (afsendelse af data).
- Headere: Ekstra oplysninger som browsertype, cookies og foretrukket sprog.
- Brødtekst: Data, der sendes med forespørgslen, hvilket er almindeligt ved POST- eller PUT-metoder.
Opfang fetch-hændelsen
Cloudflare Workers bruger en hændelseslytter til at "opfange" indgående forespørgsler. Hændelsen fetch udløses for hver HTTP-forespørgsel, der rammer din Worker.
Det almindelige startpunkt for en Worker er et eksporteret objekt med en async fetch-metode. Denne metode modtager request-objektet som sit første argument.
export default {
async fetch(request, env, ctx) {
// Your Worker logic goes here
// The 'request' object holds all incoming request details
return new Response("Hello from Worker!");
}
}Opret et simpelt svar
Efter at din Worker har behandlet en forespørgsel, skal den sende et Response-objekt tilbage. Dette objekt indeholder det indhold og de metadata, som brugerens browser modtager.
Et grundlæggende Response-objekt kan oprettes ved blot at sende en tekststreng til dets konstruktør.
export default {
async fetch(request, env, ctx) {
const responseText = "Welcome to the edge!";
return new Response(responseText);
}
}Dit første 'Hello Worker!'
Lad os samle det, vi har lært, og oprette en simpel Worker, der siger "Hello Cloudflare Worker!" til hver indgående forespørgsel.
Dette er den grundlæggende struktur, du vil bruge til næsten alle Cloudflare Workers.
export default {
async fetch(request, env, ctx) {
return new Response("Hello Cloudflare Worker!");
}
}Se nærmere på forespørgslens URL
Du kan tilgå forskellige egenskaber på request-objektet for at få oplysninger om den indgående forespørgsel. For eksempel giver request.url dig den fulde URL, der blev anmodet om.
Det giver dig mulighed for at oprette dynamiske svar baseret på den bestemte sti eller de forespørgselsparametre, som en bruger forsøger at nå.
export default {
async fetch(request, env, ctx) {
const url = request.url;
return new Response(`You requested: ${url}`);
}
}Svar på GET kontra POST
Egenskaben request.method fortæller, hvilken HTTP-metode der blev brugt (f.eks. GET, POST, PUT, DELETE). Du kan bruge den til at levere forskellig logik for forskellige typer anmodninger.
En GET-anmodning kan f.eks. hente data, mens en POST-anmodning kan indsende data til oprettelse.
export default {
async fetch(request, env, ctx) {
if (request.method === "GET") {
return new Response("This is a GET request.");
} else if (request.method === "POST") {
return new Response("This is a POST request.", { status: 201 });
}
return new Response("Method not allowed.", { status: 405 });
}
}Brugerdefinerede headere og status
Du kan tilpasse Response-objektet yderligere ved at tilføje HTTP-headere eller ændre statuskoden. Det gør du ved at angive et options-objekt som det andet argument til Response-konstruktøren.
- Headere: Indeholder metadata om svaret (f.eks.
Content-Type: text/plain). - Statuskode: Angiver resultatet af anmodningen (f.eks.
200 OK,404 Not Found).
export default {
async fetch(request, env, ctx) {
return new Response("Custom response!", {
status: 200,
headers: {
"Content-Type": "text/plain",
"X-Worker-Info": "Processed at the Edge"
}
});
}
}Hentning fra en oprindelsesserver
Din Worker fungerer ofte som en proxy. Det betyder, at den henter indhold fra en »origin-server« (dit faktiske websted eller din API-backend) og eventuelt ændrer det, før det sendes til brugeren.
Du kan bruge den globale funktion fetch() og give den det oprindelige request-objekt for at videresende anmodningen til en anden server.
export default {
async fetch(request, env, ctx) {
// Fetch the request from the origin server
const response = await fetch(request);
// You can modify the response here before returning it
return response;
}
}Kontrol af Worker-svar
Du er ved at opbygge en Cloudflare Worker. Hvilken af følgende muligheder angiver korrekt statuskoden for et svar til 404 Not Found?
Opsummering: Håndtering af HTTP-anmodninger
I denne lektion har du lært det grundlæggende i Cloudflare Workers: hvordan de håndterer HTTP-anmodninger og sender svar tilbage.
- Workers opfanger
fetch-hændelser. Request-objektet indeholder alle data fra den indgående anmodning.- Du returnerer et
Response-objekt til brugeren. - Du kan få adgang til oplysninger om anmodningen, f.eks. URL og metode.
- Svar kan have brugerdefinerede statuskoder og headere.
- Workers kan fungere som proxyer, der henter indhold fra oprindelsesservere.
Derefter lærer du, hvordan du implementerer din første Worker på Cloudflares edge-netværk, så den kan betjene brugere over hele verden!
Lær Edge computing med Cloudflare Workers og Deno med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 47
Ofte stillede spørgsmål
Er lektionen “Håndtering af HTTP-forespørgsler” gratis?
Ja — hele teksten til “Håndtering af HTTP-forespørgsler” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Edge computing med Cloudflare Workers og Deno-kurset, skal du opgradere til CoddyKit PRO. Edge computing med Cloudflare Workers og Deno-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Håndtering af HTTP-forespørgsler”?
Skriv en grundlæggende Worker, der opfanger og besvarer HTTP-forespørgsler, og demonstrér den centrale funktionalitet. Du øver dig i Edge computing med Cloudflare Workers og Deno med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Edge computing med Cloudflare Workers og Deno?
Der kræves ingen tidligere erfaring. Edge computing med Cloudflare Workers og Deno på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Håndtering af HTTP-forespørgsler”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Edge computing med Cloudflare Workers og Deno-lektion?
Ja. Alle Edge computing med Cloudflare Workers og Deno-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Opsætning af Worker-miljøet
- Håndtering af HTTP-forespørgsler
- Implementering af Deres første Worker
- Environment variables og secrets i Workers