Dit materiaal maakt deel uit van de serie "Inleiding tot Enterprise Development". Vorige artikelen:
Hoi! Vandaag leren we over de HTTP- en HTTPS-protocollen. Maar laten we eerst één punt verduidelijken: we hebben het over protocollen voor het verzenden van gegevens over een netwerk op het toepassingsniveau van het OSI-model. U herinnert zich misschien dat we het OSI-model hebben leren kennen in een van de vorige artikelen. Als je dat niet meer weet, hier is het .
Wat is een datacommunicatieprotocol?
Dit noemen we de overeengekomen set regels waarmee ontwikkelaars van verschillende services informatie kunnen verzenden in een formaat dat anderen kunnen begrijpen. U kunt bijvoorbeeld Google Chrome gebruiken om informatie van zowel Facebook als Twitter te krijgen, omdat de ontwikkelaars deze verzenden via het standaard HTTP-protocol, waardoor uw browser deze kan verwerken. Uniforme regels zijn erg handig voor de mensen die het servergedeelte ontwikkelen: er zijn veel bibliotheken die informatie voor je kunnen converteren en verzenden met het juiste protocol. HTTP is oorspronkelijk bedacht als een protocol voor het verzenden van HTML-pagina's. Zo werd het lange tijd gebruikt, maar nu gebruiken programmeurs het vaak om zowel strings als mediabestanden te verzenden. Over het algemeen is dit protocol universeel geaccepteerd en veelzijdig, en het is heel gemakkelijk te gebruiken. En nu gaan we onderzoeken hoe het te gebruiken.De structuur van HTTP
We moeten meteen opmerken dat het HTTP-protocol alleen uit tekst bestaat. Wat ons het meest interesseert is de structuur van deze tekst. Elk bericht bestaat uit drie delen:- Startlijn - Dit definieert enkele huishoudelijke gegevens.
- Headers — Deze beschrijven de berichtparameters.
- Body — Dit is de inhoud van het bericht. De hoofdtekst moet door een lege regel van de kopteksten worden gescheiden.
Zo ziet een eenvoudig HTTP-verzoek eruit:
GET / HTTP/1.1
Host: codegym.cc
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
De startlijn geeft aan:
- GET — De methode van het verzoek
- / — Het pad van het verzoek
- HTTP/1.1 — De protocolversie
- Host — De host waaraan het verzoek is gericht
- User-Agent — De client die het verzoek verzendt
https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
waarbij codegym.cc de host is, /send het pad van het verzoek, en ? is een scheidingsteken dat aangeeft dat de queryparameters volgen. Aan het einde worden sleutel-waardeparen ("sleutel=waarde") weergegeven, gescheiden door een ampersand. POST — Deze methode publiceert informatie op de server. Een POST-verzoek kan verschillende soorten informatie verzenden: parameters als "sleutel=waarde"-paren, JSON, HTML-code of zelfs bestanden. Alle informatie wordt verzonden in de hoofdtekst van het bericht. Bijvoorbeeld:
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: codegym.cc
{
"Id": 12345,
"User": "John"
}
Het verzoek wordt verzonden naar codegym.cc/user/create/json en de protocolversie is HTTP/1.1. "Accepteren" geeft het antwoordformaat aan dat de klant verwacht te ontvangen. "Content-Type" geeft het formaat aan van de berichttekst die in het verzoek is verzonden. "Content-Length" is het aantal karakters in de body. Een HTTP-verzoek kan veel verschillende headers bevatten. Bekijk voor meer informatie de specificatie van het protocol .
HTTP-antwoorden
Na ontvangst van een verzoek verwerkt de server het en stuurt een antwoord naar de client:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98
<html>
<head>
<title>An Example Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
De startregel van het antwoord bevat de protocolversie (HTTP/1.1), de statuscode (200) en de statusbeschrijving (OK). De headers bevatten het type en de lengte van de inhoud. De hoofdtekst van het antwoord bevat HTML-code die de browser weergeeft als een HTML-pagina.
Reactiestatuscodes
Alles is duidelijk wat betreft de berichttekst en headers, maar we moeten een paar woorden zeggen over statuscodes. Antwoordstatuscodes bestaan altijd uit drie cijfers. Het eerste cijfer van de code geeft de categorie van het antwoord aan:- 1xx — Informatief. Het verzoek is ontvangen. De server is klaar om verder te gaan.
- 2xx — Succesvol. Het verzoek is ontvangen, begrepen en verwerkt.
- 3xx — Omleiding. Er moeten aanvullende acties worden uitgevoerd om de aanvraag te verwerken.
- 4xx — Clientfout. De aanvraag bevat fouten of voldoet niet aan het protocol.
- 5xx — Serverfout. Het verzoek was correct samengesteld, maar de server kon het niet verwerken.
- 200 OK — Het verzoek is ontvangen en succesvol verwerkt.
- 201 Gemaakt: het verzoek is ontvangen en succesvol verwerkt, wat heeft geleid tot het maken van een nieuwe bron of instantie.
- 301 Permanent verplaatst — De aangevraagde resource is permanent verplaatst. Bij latere verzoeken moet het nieuwe adres worden gebruikt.
- 307 Tijdelijke omleiding — De bron is tijdelijk verplaatst. Voorlopig is het toegankelijk via automatisch doorsturen.
- 403 Verboden — Het verzoek is begrepen, maar autorisatie is vereist.
- 404 Niet gevonden — De server heeft de bron op dit adres niet gevonden.
- 501 Niet geïmplementeerd — De server ondersteunt niet de functionaliteit die nodig is om op het verzoek te reageren.
- 505 HTTP-versie niet ondersteund: de server ondersteunt de opgegeven versie van het HTTP-protocol niet.
GO TO FULL VERSION