Vad är HTTP?
Hypertext Transfer Protocol (HTTP) utgör grunden för World Wide Web och används för att ladda webbsidor med hjälp av hypertextlänkar. HTTP är ett applikationslagerprotokoll designat för att överföra information mellan nätverksanslutna enheter och körs ovanpå andra lager i nätverksprotokollstacken. En typisk process över HTTP innebär att en klientmaskin skickar en förfrågan till en server, som sedan skickar ett svar.
Vad ingår i en HTTP-förfrågan?
En HTTP-förfrågan är det sätt internetkommunikationsplattformar som webbläsare använder för att be om den information de behöver för att ladda en webbplats.
Varje HTTP-förfrågan som görs över internet bär med sig en serie kodade data som innehåller olika typer av information. En typisk HTTP-förfrågan innehåller:
- Typ av HTTP-version
- En webbadress (URL)
- En HTTP-metod
- HTTP-förfrågan rubriker (headers)
- Valfri HTTP-kropp (body)
Låt oss utforska på djupet hur dessa förfrågningar fungerar och hur innehållet i en förfrågan kan användas för att dela information.
Vad är en HTTP-metod?
En HTTP-metod, ibland kallad en HTTP-verb, indikerar handlingen som förväntas från den frågande servern. Till exempel är två av de vanligaste HTTP-metoderna ’GET’ och ’POST’; en ’GET’-förfrågan förväntar sig information tillbaka (vanligtvis i form av en webbplats), medan en ’POST’-förfrågan vanligtvis indikerar att klienten skickar information till webbservern (såsom formulärinformation, t.ex. användarnamn och lösenord).
Vad är HTTP-förfrågan rubriker?
HTTP-rubriker innehåller textinformation lagrad som nyckel-värdepar och de inkluderas i varje HTTP-förfrågan (och svar, mer om det senare). Dessa rubriker kommunicerar grundläggande information, såsom vilken webbläsare klienten använder och vilken data som efterfrågas.
Vad finns i en HTTP-förfrågan kropp?
Förfrågans kropp är den del som innehåller den information som förfrågan överför. Kroppen av en HTTP-förfrågan innehåller all information som skickas till webbservern, såsom användarnamn och lösenord, eller andra data som matats in i ett formulär.
Vad finns i ett HTTP-svar?
Ett HTTP-svar är vad webbklienter (ofta webbläsare) får från en internetserver som svar på en HTTP-förfrågan. Dessa svar kommunicerar värdefull information baserat på vad som efterfrågades i HTTP-förfrågan.
Ett typiskt HTTP-svar innehåller:
- En HTTP-statuskod
- HTTP-svar rubriker
- Valfri HTTP-kropp
Låt oss bryta ner dessa:
Vad är en HTTP-statuskod? HTTP-statuskoder är 3-siffriga koder som oftast används för att indikera om en HTTP-förfrågan har slutförts framgångsrikt. Statuskoder är uppdelade i följande 5 block:
- 1xx Informativt
- 2xx Framgång
- 3xx Omdirigering
- 4xx Klientfel
- 5xx Serverfel
”xx” hänvisar till olika siffror mellan 00 och 99.
Statuskoder som börjar med siffran ’2’ indikerar en framgång. Till exempel, efter att en klient begärt en webbsida, har de mest vanligt förekommande svaren en statuskod ’200 OK’, vilket indikerar att förfrågan slutfördes korrekt.
Om svaret börjar med en ’4’ eller en ’5’ betyder det att det uppstod ett fel och webbsidan kommer inte att visas. En statuskod som börjar med en ’4’ indikerar ett fel på klientens sida (det är mycket vanligt att stöta på en statuskod ’404 NOT FOUND’ när man gör ett fel i en webbadress). En statuskod som börjar med ’5’ betyder att något gick fel på serverns sida. Statuskoder kan också börja med en ’1’ eller en ’3’, vilket indikerar ett informativt svar och en omdirigering, respektive.
Vad är HTTP-svar rubriker?
På samma sätt som en HTTP-förfrågan, kommer ett HTTP-svar med rubriker som förmedlar viktig information såsom språket och formatet på datan som skickas i svarskroppen.
Vad finns i en HTTP-svar kropp?
Lyckade HTTP-svar på ’GET’-förfrågningar har generellt en kropp som innehåller den efterfrågade informationen. I de flesta webbförfrågningar är detta HTML-data som en webbläsare kommer att översätta till en webbsida.
Kan DDoS-attacker lanseras över HTTP?
Tänk på att HTTP är ett ”stateless” protokoll, vilket innebär att varje kommando körs oberoende av något annat kommando. I den ursprungliga specifikationen skapade varje HTTP-förfrågan och stängde en TCP-anslutning. I nyare versioner av HTTP-protokollet (HTTP 1.1 och högre) tillåter ihållande anslutning att flera HTTP-förfrågningar passera över en ihållande TCP-anslutning, vilket förbättrar resursförbrukningen. I sammanhanget av DoS- eller DDoS-attacker kan HTTP-förfrågningar i stora mängder användas för att montera ett angrepp på en målserver och betraktas som en del av applikationslagerattacker eller lager 7-attacker.