Time to Read-virus: hoe u het van de startpagina van de browser kunt verwijderen. HTTP-protocol - Wat is HyperText Transfer Protocol

Taal, enz. Dankzij de mogelijkheid om te specificeren hoe een bericht wordt gecodeerd, kunnen de client en de server binaire gegevens uitwisselen, ook al is dit protocol op tekst gebaseerd.

Voordelen

Eenvoud

Het protocol is zo eenvoudig te implementeren dat het eenvoudig is om clientapplicaties te maken.

Uitbreidbaarheid

U kunt de mogelijkheden van het protocol eenvoudig uitbreiden door uw eigen headers te implementeren, terwijl de compatibiliteit met andere clients en servers behouden blijft. Ze negeren headers die voor hen onbekend zijn, maar tegelijkertijd kunt u de functionaliteit krijgen die u nodig heeft bij het oplossen van een specifiek probleem.

Prevalentie

Bij het kiezen van het HTTP-protocol voor een oplossing specifieke taken Een belangrijke factor is de prevalentie ervan. Als gevolg hiervan is dit een overvloed aan verschillende documentatie over het protocol in vele talen van de wereld, de opname van eenvoudig te gebruiken ontwikkeltools in populaire IDE's, ondersteuning voor het protocol als client in veel programma's, en een ruime keuze uit hostingbedrijven met HTTP-servers.

Nadelen en problemen

Grote berichtgrootte

Gebruik tekstformaat in het protocol geeft aanleiding tot het overeenkomstige nadeel: grote maat berichten versus het verzenden van binaire gegevens. Hierdoor neemt de belasting van de apparatuur bij het genereren, verwerken en verzenden van berichten toe. Om dit probleem op te lossen, bevat het protocol ingebouwde middelen voor caching aan de clientzijde, evenals middelen voor het comprimeren van de verzonden inhoud. Regelgevende documenten voor het protocol voorzien in de aanwezigheid van proxyservers, waardoor de klant een document kan ontvangen van de server die het dichtst bij hem in de buurt is. Ook werd deltacodering in het protocol geïntroduceerd, zodat niet het hele document naar de klant werd verzonden, maar alleen het gewijzigde deel ervan.

Gebrek aan "navigatie"

Hoewel het protocol is ontworpen als een manier om met serverbronnen te werken, biedt het niet expliciet een manier om tussen deze bronnen te navigeren. Een opdrachtgever kan bijvoorbeeld niet expliciet een lijst opvragen beschikbare bestanden, hoe binnen. Er werd aangenomen dat de eindgebruiker de hyperlinks al kende. Dit is heel normaal en handig voor mensen, maar het is moeilijk als het de taak is om alle serverbronnen automatisch te verwerken en analyseren zonder menselijke tussenkomst. De oplossing voor dit probleem ligt volledig op de schouders van applicatieontwikkelaars die dit protocol gebruiken.

Geen distributieondersteuning

HTTP-protocol is ontwikkeld om typische alledaagse problemen op te lossen, waarbij de verwerkingstijd van de aanvraag zelf weinig tijd in beslag zou moeten nemen of helemaal geen rekening zou moeten worden gehouden. Maar bij industrieel gebruik met behulp van gedistribueerd computergebruik hoge belastingen Het HTTP-protocol blijkt hulpeloos op de server. In 1998 stelde het W3C een alternatief protocol voor HTTP-NG(Engels) HTTP volgende generatie) Voor volledige vervanging verouderd met een focus op dit gebied. Het idee van de noodzaak ervan werd gesteund door grote specialisten op het gebied van gedistribueerd computergebruik, maar dit protocol bevindt zich nog in de ontwikkelingsfase.

Software

Alle software voor het werken met het HTTP-protocol is onderverdeeld in drie grote categorieën:

  • Servers als de belangrijkste aanbieders van informatieopslag- en verwerkingsdiensten (verzoekverwerking).
  • Klanten- eindgebruikers van serverdiensten (een verzoek verzenden).
  • Volmacht vervoersdiensten uit te voeren.

Om eindservers van proxy's te onderscheiden in officiële documentatie term gebruikt oorsprong server(Engels) Origin-server). Natuurlijk hetzelfde software kan gelijktijdig de functies van een client, server of intermediair vervullen, afhankelijk van de toegewezen taken. De HTTP-protocolspecificaties beschrijven het gedrag voor elk van deze rollen.

Klanten

Het HTTP-protocol is oorspronkelijk ontwikkeld voor toegang tot hypertekstdocumenten op het World Wide Web. Daarom zijn de belangrijkste klantimplementaties dat wel browsers(gebruikersagenten). Populaire browsers (in alfabetische volgorde): Chrome, Internet Explorer, Mozilla Firefox, Safari.

Zie ook: Lijst met browsers en Vergelijking van browsers

Om de opgeslagen inhoud van sites op een computer zonder internetverbinding te bekijken, zijn ze uitgevonden offline browsers. Onder de beroemde. Hiermee kunt u op elk gewenst moment specifieke bestanden downloaden nadat de verbinding met de webserver is verbroken. Populaire programma's in Windows OS zijn Download Master, Free Beheerder downloaden, ReGet. In KGet en d4x (Downloader voor X). Veel Linux-gebruikers Ze gebruiken ook het liefst NASA World Wind, ze gebruiken ook HTTP.

Het HTTP-protocol wordt vaak door programma's gebruikt om updates te downloaden.

In internetzoekmachines wordt een hele reeks robotprogramma's gebruikt. Onder hen webspinnen(crawlers) die hyperlinks volgen, een database met serverbronnen samenstellen en de inhoud ervan opslaan voor verdere analyse.

Zie ook: Lijst met zoekmachines, Internetarchief

Origin-servers

Belangrijkste implementaties: Internet Information Services (IIS), nginx.

Zie ook: Lijst met webservers

Proxy-servers

Belangrijkste implementaties: UserGate, Multiproxy, Naviscope, Lijst met webservers

Geschiedenis van ontwikkeling

HTTP/0.9

HTTP/1.0

HTTP/1.1

De huidige versie van het protocol werd in juni aangenomen. Nieuw in deze versie was de “permanente verbinding”-modus: Startlijn) - bepaalt het type bericht;

  • Koppen Kopteksten) - karakteriseer de berichttekst, transmissieparameters en andere informatie;
  • Bericht lichaam bericht lichaam) - berichtgegevens zelf. Moet door een witregel van de kopteksten worden gescheiden.
  • De berichtkoppen en de hoofdtekst ontbreken mogelijk, maar de startregel is dat wel verplicht onderdeel, omdat dit het verzoek/antwoordtype aangeeft. Een uitzondering hierop is versie 0.9 van het protocol, waarin het verzoekbericht alleen de startregel bevat en het antwoordbericht alleen de hoofdtekst van het bericht.

    Startlijn

    De startlijnen zijn verschillend voor het verzoek en het antwoord. De queryreeks ziet er als volgt uit:

    KRIJGEN URI- voor protocolversie 0.9. Methode URI HTTP/ Versie- voor andere versies.

    Om een ​​pagina voor een bepaald artikel aan te vragen, moet de klant de volgende string doorgeven:

    KRIJG /wiki/Http HTTP/1.0

    De startregel van het serverantwoord heeft het volgende formaat:

    HTTP/ Versie Status code Uitleg

    • Versie- een paar Arabische cijfers gescheiden door een punt, zoals in het verzoek.
    • Status code(Engels) Status code) - drie Arabische cijfers. De statuscode bepaalt de verdere inhoud van het bericht en het gedrag van de cliënt.
    • Uitleg(Engels) Reden zin) - een korte tekstuitleg van de responscode voor de gebruiker. Heeft op geen enkele wijze invloed op de boodschap en is optioneel.

    De server reageerde bijvoorbeeld op ons eerdere verzoek van de client voor deze pagina met de regel:

    HTTP/1.0 200 Oké

    Methoden

    OPTIES

    Wordt gebruikt om de mogelijkheden van de webserver of verbindingsparameters voor een specifieke bron te bepalen. De server MOET een Allow-header in zijn antwoord opnemen met een lijst met ondersteunde methoden. De antwoordheaders kunnen ook informatie bevatten over ondersteunde extensies.

    Er wordt verwacht dat het verzoek van de klant een berichttekst kan bevatten om aan te geven in welke informatie hij geïnteresseerd is. Het formaat van het lichaam en de procedure om ermee te werken zijn momenteel niet bepaald. De server moet het voorlopig negeren. De situatie is vergelijkbaar met de body in het serverantwoord.

    Om de mogelijkheden van de hele server te achterhalen, moet de client een asterisk - “*” in de URI opgeven. OPTIES * HTTP/1.1-verzoeken kunnen ook worden gebruikt om de gezondheid van de server te controleren (vergelijkbaar met pingen) en om te testen of de server HTTP-versie 1.1 ondersteunt.

    Het resultaat van deze methode wordt niet in de cache opgeslagen.

    KRIJGEN

    Wordt gebruikt om inhoud aan te vragen gespecificeerde bron. Door het gebruiken van GET-methode Je kunt ook een proces starten. In dit geval moet informatie over de voortgang van het proces worden opgenomen in de hoofdtekst van het antwoordbericht.

    De client kan aanvraaguitvoeringsparameters doorgeven in de doelbron-URI na de '? ":
    GET /pad/bron?param1=waarde1¶m2=waarde2 HTTP/1.1

    Volgens de HTTP-standaard worden verzoeken typ GET worden als idempotent beschouwd - het meerdere keren herhalen van hetzelfde GET-verzoek zou dezelfde resultaten moeten opleveren (op voorwaarde dat de bron zelf niet is veranderd in de tijd tussen verzoeken). Hiermee kunt u antwoorden in de cache opslaan KRIJG verzoeken.

    Naast de gebruikelijke GET-methode is er ook een onderscheid. Voorwaardelijke GET-aanvragen bevatten If-Modified-Since, If-Match, If-Range en soortgelijke headers. Gedeeltelijke GET's bevatten Range in het verzoek. De procedure voor het uitvoeren van dergelijke verzoeken wordt afzonderlijk gedefinieerd door de standaarden.

    HOOFD

    Vergelijkbaar met de GET-methode, behalve dat er geen hoofdtekst in het serverantwoord zit. Het HEAD-verzoek wordt doorgaans gebruikt om metagegevens op te halen, te controleren op het bestaan ​​van een bron (URL-validatie) en om te zien of deze is gewijzigd sinds deze voor het laatst werd geopend.

    Antwoordheaders kunnen in de cache worden opgeslagen. Als de metagegevens van een bron niet overeenkomen met de overeenkomstige informatie in de cache, wordt de kopie van de bron gemarkeerd als verouderd.

    NA

    Wordt gebruikt om gebruikersgegevens over te dragen naar een opgegeven bron. Op blogs kunnen bezoekers bijvoorbeeld doorgaans opmerkingen over berichten in een HTML-formulier invoeren, waarna ze naar de server worden gePLAATST en op de pagina worden geplaatst. In dit geval worden de verzonden gegevens (in het voorbeeld bij blogs de tekst van de opmerking) opgenomen in de hoofdtekst van het verzoek. Op dezelfde manier worden bestanden meestal geüpload met behulp van de POST-methode.

    In tegenstelling tot de GET-methode wordt de POST-methode niet als idempotent beschouwd, dat wil zeggen hetzelfde herhalen POST-verzoeken kan verschillende resultaten opleveren (nadat elke opmerking is ingediend, verschijnt er bijvoorbeeld één kopie van die opmerking).

    Als de uitvoeringsresultaten 200 (Ok) en 204 (Geen inhoud) zijn, moet een bericht over het resultaat van het verzoek worden opgenomen in de antwoordtekst. Als er een bron is gemaakt, MOET de server een 201 (aangemaakt) antwoord retourneren met de URI van de nieuwe bron in de locatieheader.

    Het serverantwoordbericht op de POST-methode wordt niet in de cache opgeslagen.

    NEERZETTEN

    Wordt gebruikt om de aanvraaginhoud te laden naar de URI die in de aanvraag is opgegeven. Als een bron niet bestaat op de opgegeven URI, maakt de server deze aan en retourneert status 201 (Aangemaakt). Als de bron is gewijzigd, retourneert de server 200 (Ok) of 204 (Geen inhoud). De server MOET ongeldige Content-* headers die door de client samen met het bericht zijn verzonden NIET negeren. Als een van deze headers niet kan worden herkend of onder de huidige omstandigheden niet geldig is, moet de foutcode 501 (Niet geïmplementeerd) worden geretourneerd.

    Het fundamentele verschil tussen de POST- en PUT-methoden is het begrip van het doel van de resource-URI. POST-methode gaat ervan uit dat de opgegeven URI wordt gebruikt om de door de client verzonden inhoud te verwerken. Door PUT te gebruiken, gaat de client ervan uit dat de inhoud die wordt gedownload overeenkomt met de bron die zich op de opgegeven URI bevindt.

    Serverantwoordberichten op de PUT-methode worden niet in de cache opgeslagen.

    LAPJE

    Vergelijkbaar met PUT, maar alleen van toepassing op een fragment van de bron.

    VERWIJDEREN

    Verwijdert de opgegeven bron.

    SPOOR

    Retourneert het ontvangen verzoek zodat de client kan zien welke tussenliggende servers het verzoek toevoegen of wijzigen.

    AANSLUITEN

    Voor gebruik met proxyservers die dynamisch naar de tunnelmodus kunnen overschakelen

    KOPPELING

    Brengt een verbinding tot stand tussen de opgegeven bron en andere.

    ONTKOPPELEN

    Verwijdert de verbinding van de opgegeven bron met anderen.

    Statuscodes

    De statuscode maakt deel uit van de eerste regel van het serverantwoord. Het vertegenwoordigt een geheel getal van 3 Arabische cijfers. Het eerste cijfer geeft aan conditie klasse. De responscode wordt meestal gevolgd door een verklarende zin, gescheiden door een spatie. de Engelse taal, wat de reden voor dit specifieke antwoord aangeeft.

    De klant leert uit de responscode over de resultaten van zijn verzoek en bepaalt welke acties vervolgens moeten worden ondernomen. De set statuscodes is een standaard en wordt allemaal beschreven in de relevante IETF-documenten. De client kent mogelijk niet alle statuscodes, maar moet reageren volgens de klasse van de code.

    Er zijn momenteel vijf klassen statuscodes.

    1xx Informatief (Russisch) Informatief) Deze klasse bevat codes die informatie geven over het overdrachtsproces. In HTTP/1.0 moeten berichten met dergelijke codes worden genegeerd. In HTTP/1.1 moet de client bereid zijn deze klasse berichten als een normaal antwoord te accepteren, maar hoeft hij niets naar de server te sturen. De berichten zelf van de server bevatten alleen de startregel van het antwoord en, indien nodig, enkele antwoordspecifieke headervelden. Proxy-servers soortgelijke berichten moet verder van de server naar de client worden verzonden. 2xx Succes (Russisch) Met succes) Berichten van deze klasse informeren over gevallen van succesvolle acceptatie en verwerking van het verzoek van een klant. Afhankelijk van de status kan de server ook de headers en de hoofdtekst van het bericht verzenden. 3xx Omleiding (Russisch) Omleiding ) Klasse 3xx-statuscodes vertellen de client dat het volgende verzoek naar een andere URI moet worden gedaan om de bewerking te laten slagen. In de meeste gevallen nieuw adres aangegeven in het veld Locatie van de koptekst. In dit geval moet de klant dit in de regel doen automatische overgang(jarg. omleiden). Houd er rekening mee dat wanneer u de volgende bron opent, u een antwoord kunt krijgen van dezelfde codeklasse. Er kan zelfs sprake zijn van een lange keten van omleidingen die, als ze automatisch worden uitgevoerd, een overmatige belasting van de apparatuur zouden veroorzaken. Daarom raden de ontwikkelaars van het HTTP-protocol ten zeerste aan dat u na de tweede reactie op rij een bevestiging van de omleiding van de gebruiker moet vragen (voorheen werd dit na de 5e aanbevolen). De client is verantwoordelijk voor het monitoren hiervan, aangezien de huidige server de client kan omleiden naar een bron op een andere server. De klant moet ook voorkomen dat hij in circulaire omleidingen terechtkomt. 4xx Clientfout (Russisch) Klantfout) De codeklasse 4xx is bedoeld om fouten aan de clientzijde aan te geven. Wanneer alle methoden behalve HEAD worden gebruikt, moet de server een hypertext-uitleg terugsturen naar de gebruiker in de hoofdtekst van het bericht. Om de waarden van codes van 400 tot 417 te onthouden, zijn er methoden voor illustratieve geheugensteuntjes 5xx Serverfout(Russisch) Serverfout) Codes 5xx worden toegewezen voor gevallen van mislukte bediening vanwege een fout van de server. Voor alle andere situaties dan het gebruik van de HEAD-methode moet de server in de hoofdtekst van het bericht een uitleg opnemen die de client aan de gebruiker zal tonen.

    Koppen

    Bericht lichaam

    Voorbeelden van HTTP-dialoogvensters

    Regelmatig GET-verzoek

    Klantverzoek:

    KRIJG /wiki/ bladzijde HTTP/1.1 Host: ru.wikipedia.org User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5 Accepteren: tekst/html Verbinding: sluiten

    Serverreactie:

    HTTP/1.0 200 OK Datum: wo, 11 februari 2009 11:20:59 GMT Server: Apache X-Powered-By: PHP/5.2.4-2ubuntu5wm1 Laatst gewijzigd: wo, 11 februari 2009 11:20:59 GMT Inhoud -Taal: ru Inhoudstype: tekst/html; charset=utf-8 Inhoudslengte: 1234 Verbinding: sluiten (het volgende is de gevraagde pagina in

    Omleidingen

    Laten we zeggen dat het fictieve bedrijf Voorbeeld Corp. er is een hoofdsite op http://example.com en een aliasdomein example-corp.com. De client stuurt een verzoek voor de Over-pagina naar het secundaire domein (sommige headers zijn weggelaten):

    Locatie: http://www.example.com/about.html#contacts Datum: do, 19 februari 2009 11:08:01 GMT Server: Apache/2.2.4 Inhoudstype: text/html; charset=windows-1251 Inhoudslengte: 110 (lege regel) Klik hier

    In de locatiekop kun je fragmenten opgeven zoals in dit voorbeeld. De browser heeft het fragment niet in het verzoek opgenomen, omdat deze geïnteresseerd is in het gehele document. Maar het zal automatisch door de pagina scrollen naar het fragment “contacten” zodra het wordt geladen. Ook is er in de responsbody een kort HTML-document met een link geplaatst, die de bezoeker naar de landingspagina brengt als de browser daar niet automatisch naartoe gaat. Koptekst Inhoudstype bevat kenmerken van deze specifieke HTML-uitleg, en niet van het document dat zich op de doel-URL bevindt.

    Laten we zeggen dat hetzelfde bedrijf Voorbeeld Corp. heeft verschillende regionale kantoren over de hele wereld. En voor elk vertegenwoordigingskantoor hebben ze een website met de bijbehorende ccTLD. Een verzoek voor de hoofdpagina van de hoofdsite example.com kan er als volgt uitzien:

    / HTTP/1.1 Host: www.example.com User-Agent: MyLonelyBrowser/5.0 Accepteren: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accepteren-taal: ru ,en-us;q=0.7,en;q=0.3 Accepteer tekenset: windows-1251,utf-8;q=0.7,*;q=0.7

    De server hield rekening met de Accept-Language-header en genereerde een reactie met een tijdelijke omleiding naar Russische server example.ru, met vermelding van het adres in de locatieheader:

    HTTP/1.x 302 gevonden Locatie: http://www.example.ru/ Cache-Control: privé Datum: do, 19 februari 2009 11:08:01 GMT Server: Apache/2.2.6 Inhoudstype: text/html; charset=windows-1251 Inhoudslengte: 82 (lege regel) Voorbeeld Corp. Rusland

    Let op de Cache-Control-header. De 'private'-waarde vertelt andere servers (voornamelijk proxy's) dat het antwoord aan de clientzijde in de cache kan worden opgeslagen. Anders is het mogelijk dat volgende bezoekers uit andere landen altijd naar een ander vertegenwoordigingskantoor gaan.

    Voor de doorverwijzing worden tevens de responscodes (Zie Overige) en (Tijdelijke Omleiding) gebruikt.

    Hervatten en fragmentarisch downloaden

    Laten we zeggen dat een fictieve organisatie aanbiedt een video van een eerdere conferentie te downloaden van de website http://example.org/conf-2009.avi met een volume van ongeveer 160 MB. Laten we eens kijken hoe dit bestand wordt gedownload in geval van een storing en hoe de downloadmanager het multi-threaded downloaden van verschillende fragmenten zou organiseren.

    In beide gevallen zullen klanten hun eerste verzoek als volgt indienen:

    GET /conf-2009.avi HTTP/1.0 Host: example.org Accepteren: */* User-Agent: Mozilla/4.0 (compatibel; MSIE 5.0; Windows 98) Verwijzing: http://example.org/

    De Referer-header geeft aan dat het bestand is opgevraagd vanaf de startpagina van de site. Downloadmanagers geven dit meestal ook aan om een ​​overgang van een websitepagina te emuleren. Zonder dit kan de server reageren (Toegang verboden) als verzoeken van andere sites niet zijn toegestaan. In ons geval heeft de server een succesvol antwoord geretourneerd:

    HTTP/1.1 200 OK Datum: donderdag 19 februari 2009 12:27:04 GMT Server: Apache/2.2.3 Laatst gewijzigd: woensdag 18 juni 2003 16:05:58 GMT ETag: "56d-9989200-1132c580" Inhoud -Type: video/x-msvideo Inhoud-lengte: 160993792 Accepteerbereiken: bytes Verbinding: dichtbij (lege regel) (binaire inhoud van het gehele bestand)

    De Accept-Ranges-header informeert de client dat deze fragmenten van de server kan opvragen, waarbij de offsets vanaf het begin van het bestand in bytes worden aangegeven. Als deze header ontbreekt, kan de client de gebruiker waarschuwen dat het hoogstwaarschijnlijk niet mogelijk zal zijn om het bestand te downloaden. Op basis van de waarde van de Content-Length-header verdeelt de downloadmanager het volledige volume in gelijke fragmenten en vraagt ​​deze afzonderlijk op, waarbij verschillende threads worden georganiseerd. Als de server de grootte niet specificeert, kan de client geen parallel downloaden implementeren, maar kan hij tegelijkertijd doorgaan met het downloaden van het bestand totdat de server reageert (Requested Range Not Satisfiable).

    Laten we zeggen dat bij 84 megabyte de internetverbinding werd onderbroken en het downloadproces werd onderbroken. Toen de internetverbinding hersteld was, werd de browser automatisch verzonden Nieuw verzoek naar de server, maar met instructies om de inhoud uit de 84e megabyte uit te voeren:

    GET /conf-2009.avi HTTP/1.0 Host: example.org Accepteren: */* User-Agent: Mozilla/4.0 (compatibel; MSIE 5.0; Windows 98) Bereik: bytes=88080384- Verwijzer: http://example.org/

    De server hoeft niet te onthouden wat en van wie de eerdere verzoeken waren, en daarom heeft de client de Referer-header opnieuw ingevoegd alsof het zijn allereerste verzoek was. De opgegeven Range header-waarde vertelt de server om “de inhoud van de 88080384e byte tot het einde te geven.” In dit verband zal de server het volgende antwoord retourneren:

    HTTP/1.1 206 Gedeeltelijke inhoud Datum: donderdag 19 februari 2009 12:27:08 GMT Server: Apache/2.2.3 Laatst gewijzigd: woensdag 18 juni 2003 16:05:58 GMT ETag: "56d-9989200-1132c580" Accepteerbereiken: bytes Inhoudsbereik: bytes 88080384-160993791/160993792 Inhoud-lengte: 72913408 Verbinding: sluiten Inhoudstype: video/x-msvideo (lege regel) (binaire inhoud vanaf 84 megabytes)

    De Accept-Ranges-header is hier niet langer vereist, omdat de client al op de hoogte is van deze servermogelijkheden. De klant leert dat er een fragment wordt verzonden door de code (Gedeeltelijke inhoud). De Content-Range-header bevat informatie over dit fragment: de begin- en eindbytenummers, en na de schuine streep - de totale grootte van het gehele bestand in bytes. Let op de Content-Length-header: deze geeft de grootte van de berichttekst aan, dat wil zeggen het verzonden fragment. Als de server meerdere fragmenten retourneert, bevat Content-Length het totale volume ervan.

    Laten we nu terugkeren naar de downloadmanager. Omdat het programma de totale grootte van het bestand "conf-2009.avi" kende, verdeelde het programma het in 10 gelijke secties. De manager laadt de eerste op het allereerste verzoek en verbreekt de verbinding zodra deze het begin van de tweede bereikt. De rest vraagt ​​hij apart aan. De 4e sectie wordt bijvoorbeeld opgevraagd met de volgende headers (sommige headers zijn weggelaten - zie compleet voorbeeld hoger):

    KRIJG /conf-2009.avi HTTP/1.0 Bereik: bytes=64397516-80496894

    Het antwoord van de server zal in dit geval als volgt zijn (sommige headers zijn weggelaten - zie het volledige voorbeeld hierboven):

    HTTP/1.1 206 Gedeeltelijke inhoud Accepteerbereiken: bytes Inhoudsbereik: bytes 64397516-80496894/160993792 Inhoud-lengte: 16099379 (lege regel) (binaire inhoud van deel 4)

    Als een dergelijk verzoek naar een server wordt verzonden die geen fragmenten ondersteunt, retourneert deze een standaardantwoord (OK) zoals helemaal aan het begin wordt weergegeven, maar zonder de Accept-Ranges-header.

    Zie ook bytebereiken, antwoord 406, antwoord 416.

    Basisprotocolmechanismen

    Gedeeltelijke GET's

    Met HTTP kunt u niet in één keer de volledige inhoud van een bron opvragen, maar slechts een specifiek fragment. Dergelijke verzoeken worden genoemd gedeeltelijke GET's, is de mogelijkheid om ze uit te voeren optioneel (maar wenselijk) voor servers. Gedeeltelijke GET's worden voornamelijk gebruikt voor het hervatten van bestanden en snelle parallelle downloads in meerdere threads. Sommige programma's downloaden de archiefkop en geven deze aan de gebruiker weer interne structuur, en dan vragen ze fragmenten aan met gespecificeerde elementen archief.

    Om een ​​fragment te ontvangen, stuurt de client een verzoek naar de server met een Range-header, waarin hij het nodige aangeeft bytebereiken. Als de server gedeeltelijke verzoeken niet begrijpt (de Range-header negeert), retourneert hij de volledige inhoud met de status , zoals bij een reguliere GET . Als dit lukt, retourneert de server een antwoord met status 206 (Gedeeltelijke inhoud) in plaats van code 200, inclusief de Content-Range-header in het antwoord. De fragmenten zelf kunnen op twee manieren worden verzonden:

    Zie ook .

    Voorwaardelijke GET

    Onderhandeling over inhoud

    Onderhandeling over inhoud(Engels) Onderhandeling over inhoud) - mechanisme automatische detectie noodzakelijke bron wanneer er verschillende soorten documentversies zijn. De onderwerpen van coördinatie kunnen niet alleen serverbronnen zijn, maar ook geretourneerde pagina's met foutmeldingen (, enz.).

    Er zijn twee hoofdtypen goedkeuringen:

    • Serverbeheerd(Engels) Servergestuurd).
    • Klantgedreven(Engels) Agentgestuurd).

    Beide typen of elk afzonderlijk kunnen gelijktijdig worden gebruikt.

    De belangrijkste protocolspecificatie (RFC 2616) benadrukt ook de zogenaamde transparante goedkeuring(Engels) Transparant onderhandelen) als de voorkeursoptie voor het combineren van beide typen. Dit laatste mechanisme moet niet worden verward met onafhankelijke technologie Transparante inhoudsonderhandelingen (TCN, Russisch Transparante inhoudsonderhandelingen , zie RFC 2295), dat geen deel uitmaakt van het HTTP-protocol, maar er wel mee kan worden gebruikt. Beide hebben aanzienlijke verschillen in het werkingsprincipe en de betekenis zelf van het woord ‘transparant’ ( transparant). In de HTTP-specificatie betekent transparantie dat het proces onzichtbaar is voor de client en server, en in de TCN-technologie betekent transparantie toegankelijkheid volle lijst resourceopties voor alle deelnemers aan het gegevensleveringsproces.

    Serverbeheerd

    Als er meerdere versies van een bron zijn, kan de server de verzoekheaders van de client analyseren om te produceren wat volgens hem de meest geschikte versie is. De belangrijkste geanalyseerde headers zijn Accept, Accept-Charset, Accept-Encoding, Accept-Languages ​​en User-Agent. Het is raadzaam dat de server een Vary-header in het antwoord opneemt, die de parameters aangeeft waarmee de inhoud van de opgevraagde URI verschilt.

    De geografische locatie van de client kan worden bepaald aan de hand van het externe IP-adres.

    Servergestuurde onderhandeling heeft verschillende nadelen:

    • De server raadt alleen welke optie de meeste voorkeur heeft eindgebruiker, maar weet niet precies wat er nodig is dit moment(bijvoorbeeld versie in het Russisch of Engels).
    • Er worden veel Acceptgroepheaders verzonden, maar weinig bronnen met meerdere opties. Hierdoor wordt de apparatuur overmatig belast.
    • De gedeelde cache is beperkt in zijn vermogen om hetzelfde antwoord te geven op identieke verzoeken van verschillende gebruikers.
    • Het doorgeven van Accept-headers brengt ook de privacy van de gebruiker in gevaar doordat bepaalde informatie over de voorkeuren van de gebruiker wordt onthuld.

    Klantgedreven

    IN in dit geval het inhoudstype wordt alleen aan de clientzijde bepaald. Om dit te doen, retourneert de server met statuscode 300 (Meerdere keuzes) of 406 (Niet acceptabel) een lijst met opties waaruit de gebruiker de juiste selecteert. Klantgestuurde afstemming is goed als de inhoud op veel voorkomende manieren varieert (zoals taal en codering) en er een openbare cache wordt gebruikt. Het grootste nadeel: extra belasting, omdat je een extra aanvraag moet doen om de gewenste inhoud te krijgen.

    Transparante goedkeuring

    Deze onderhandeling is volledig transparant voor de client en server. In dit geval wordt er gebruik van gemaakt gedeelde cache, dat een lijst met opties bevat voor klantgestuurd onderhandelen. Als de cache al deze opties begrijpt, maakt hij zelf de keuze, zoals bij servergestuurde onderhandeling. Dit vermindert de belasting van de oorspronkelijke server en elimineert het extra verzoek van de client.

    De kern-HTTP-specificatie beschrijft het transparante onderhandelingsmechanisme niet in detail.

    Meerdere inhoud

    Hoofd artikel: hiërarchieën met het in elkaar nesten van elementen. De mediatypen multipart/* worden gebruikt om meerdere inhoud aan te duiden. Het werken met dergelijke typen wordt uitgevoerd met behulp van algemene regels zoals beschreven in RFC 2046 (tenzij anders gespecificeerd door een specifiek mediatype). Als de ontvanger niet weet hoe hij met het type moet omgaan, behandelt hij het op dezelfde manier als multipart/mixed .

    Aan de serverzijde kunnen als reactie hierop berichten met meerdere inhoud worden verzonden bij het aanvragen van meerdere bronfragmenten. In dit geval wordt het mediatype multipart/byteranges gebruikt.



    Standaardprotocol voor het verzenden van gegevens via het World Wide Web is HTTP (HyperText Overdrachtsprotocol-- hypertext-overdrachtsprotocol). Het beschrijft berichten die kunnen worden uitgewisseld tussen clients en servers. Elke interactie bestaat uit een enkel ASCII-verzoek gevolgd door een enkel antwoord, vergelijkbaar met het RFC 822 MIME-standaardantwoord. Alle clients en alle servers moeten dit protocol volgen. Het wordt gedefinieerd in RFC 2616.

    Verbindingen

    De gebruikelijke manier waarop een browser met een server communiceert, is door een TCP-verbinding tot stand te brengen met poort 80 van de server, hoewel deze procedure formeel niet vereist is. De waarde van het gebruik van TCP is dat noch browsers, noch servers zich zorgen hoeven te maken over verloren, dubbele of te lange berichten en bevestigingen. Dit alles is voorzien TCP-protocol.

    In HTTP 1.0 werd nadat een verbinding tot stand was gebracht één verzoek verzonden, waarop één antwoord werd ontvangen. Hierna werd de TCP-verbinding verbroken. Destijds bestond een typische webpagina volledig uit HTML-tekst en deze manier van interactie voldeed. Er gingen echter enkele jaren voorbij en de pagina bevatte veel pictogrammen, afbeeldingen en andere versieringen. Het is duidelijk dat het opzetten van een TCP-verbinding om een ​​enkel pictogram te verzenden verspillend en te duur is.

    Deze overweging leidde tot de creatie van het HTTP 1.1-protocol, dat stabiele verbindingen ondersteunde. Dit betekende dat het mogelijk was om een ​​TCP-verbinding tot stand te brengen, een verzoek te verzenden, een antwoord te ontvangen en vervolgens aanvullende verzoeken en antwoorden te verzenden en ontvangen. Zo werden de overheadkosten die tijdens permanente verbindingsinstallaties en ontkoppelingen werden gemaakt, verlaagd. Het is ook mogelijk geworden om verzoeken te pijplijnen, dat wil zeggen verzoek 2 te verzenden nog voordat het antwoord op verzoek 1 arriveert.

    Hoewel HTTP specifiek is ontworpen voor gebruik in webtechnologieën, is het met opzet algemener gemaakt dan noodzakelijk, omdat het bedoeld was voor toekomstig gebruik in objectgeoriënteerde toepassingen. Om deze reden zijn er, naast de reguliere zoekopdrachten op webpagina's, speciale bewerkingen ontwikkeld die methoden worden genoemd. Ze danken hun bestaan ​​aan de SOAP-technologie. Elk verzoek bestaat uit een of meer ASCII-strings, waarbij het eerste woord de naam is van de aan te roepen methode. De ingebouwde methoden staan ​​vermeld in de tabel in figuur 6. Naast deze algemene methoden, diverse voorwerpen Er kunnen ook specifieke methoden zijn. Methodenamen zijn hoofdlettergevoelig, wat betekent dat de GET-methode bestaat, maar de get-methode niet.

    Figuur 6 - Ingebouwd HTTP-methoden-verzoeken

    De GET-methode vraagt ​​van de server een pagina op (die over het algemeen een object is, maar in de praktijk meestal slechts een bestand is) gecodeerd volgens de MIME-standaard. Het merendeel van de verzoeken aan de server zijn GET-verzoeken.

    De HEAD-methode vraagt ​​eenvoudigweg om de header van het bericht, zonder de pagina zelf. Met deze methode kunt u achterhalen wanneer een pagina voor het laatst is gewijzigd om indexinformatie te verzamelen of eenvoudigweg om de functionaliteit van een bepaalde URL te controleren.

    De PUT-methode is het tegenovergestelde van de GET-methode: deze leest de pagina niet, maar schrijft deze. Met deze methode kunt u een reeks webpagina's maken externe server. De hoofdtekst van het verzoek bevat de pagina. Het kan MIME-gecodeerd zijn. In dit geval kunnen de regels die volgen op de PUT-opdracht verschillende headers bevatten, zoals Content-Type of authenticatieheaders, die de rechten van de abonnee op de gevraagde bewerking bevestigen.

    De POST-methode lijkt enigszins op de PUT-methode. Het bevat ook een URL, maar in plaats van bestaande gegevens te vervangen, worden de nieuwe gegevens (in zekere zin) aan de bestaande gegevens "toegevoegd". Dit kan het posten van een bericht op een conferentie zijn of het toevoegen van een bestand aan een BBS-prikbord. In de praktijk wordt noch PUT, noch POST veel gebruikt.

    Het is niet verwonderlijk dat de DELETE-methode de pagina verwijdert. Zoals in de PUT-methode, hier bijzondere rol authenticatie en toestemming om deze bewerking uit te voeren kunnen een rol spelen. Zelfs als de gebruiker toestemming heeft om de pagina te verwijderen, is er geen garantie dat de DELETE-methode de pagina zal verwijderen, want zelfs als de gebruiker ermee instemt externe HTTP-server het bestand zelf kan worden beschermd tegen wijziging of verplaatsing.

    De TRACE-methode is bedoeld voor foutopsporing. Het vertelt de server om het verzoek terug te sturen. Deze methode is vooral handig wanneer verzoeken niet correct worden verwerkt en de client wil weten wat voor soort verzoek de server daadwerkelijk ontvangt.

    De CONNECT-methode wordt momenteel niet gebruikt. Het is gereserveerd voor toekomstig gebruik.

    Met de OPTIONS-methode kan de client de server vragen naar zijn eigenschappen of de eigenschappen van een specifiek bestand.

    Als antwoord op elk verzoek van de server wordt een antwoord ontvangen met daarin een statusregel en eventueel ook Extra informatie(bijvoorbeeld een webpagina of een deel daarvan). De statusregel kan een driecijferige statuscode bevatten die aangeeft of het verzoek succesvol was of waarom het mislukte. De eerste categorie is bedoeld om alle antwoorden in vijf hoofdgroepen te verdelen, zoals weergegeven in de tabel in figuur 7. Codes die beginnen met 1 Aхх) worden in de praktijk zelden gebruikt. Codes die beginnen met 2 betekenen dat het verzoek succesvol is verwerkt en dat de gegevens (indien gevraagd) zijn verzonden. De 3xx-codes vertellen de client dat hij zijn geluk ergens anders moet beproeven - met behulp van een andere URL of zijn eigen cache.

    Figuur 7 - Groepen statuscodes in serverreacties

    Codes die beginnen met 4 betekenen dat het verzoek is mislukt om een ​​of andere reden die verband houdt met de klant: er is bijvoorbeeld een niet-bestaande pagina opgevraagd of het verzoek zelf was onjuist. Ten slotte duiden 5xx-codes op serverfouten, hetzij als gevolg van een programmafout of tijdelijke overbelasting.

    Voorbeeld van HTTP-gebruik

    Omdat HTTP dat is tekstprotocol, kan de interactie met de server via een terminal (die in dit geval fungeert als het tegenovergestelde van een browser) vrij eenvoudig worden georganiseerd. U hoeft alleen maar een TCP-verbinding tot stand te brengen met poort 80 van de server. De lezer mag zelf zien hoe dit script werkt (het verdient de voorkeur om het in te voeren). UNIX-systeem, aangezien sommige andere systemen de verbindingsstatus mogelijk niet weergeven). De volgorde van de opdrachten is dus:

    Figuur 8 - reeks HTTP-protocolopdrachten

    Deze reeks opdrachten brengt een telnet-verbinding tot stand (dat wil zeggen een TCP-verbinding) met poort 80 van de IETF-webserver op www.ietf.org.

    Het resultaat van de communicatiesessie wordt vastgelegd in logbestand, die u vervolgens kunt bekijken. Vervolgens komt het GET-commando. De naam van het opgevraagde bestand en het overdrachtsprotocol worden aangegeven. Vervolgens komt de vereiste regel met de Host-header. De lege regel die erop volgt, is ook vereist. Het signaleert aan de server dat de verzoekheaders op zijn. Het close-commando (dit is een Telnet-programmacommando) sluit de verbinding.

    Het verbindingslogbestand, log, kan met elke teksteditor worden bekeken. Het zou ongeveer moeten beginnen zoals weergegeven in de lijst in Figuur 8, tenzij er in deze periode enkele wijzigingen zijn aangebracht op de IETF-website.

    Figuur 9 - Start van de uitvoer van het bestand “www.ietf.org/rfc.html”

    De eerste drie regels in deze aanbieding zijn gemaakt Telenet programma, niet de afgelegen locatie. Maar de regel die begint met HTTP/1.1 is al een IETF-antwoord, wat aangeeft dat de server met u wil communiceren via het HTTP/1.1-protocol. Dit wordt gevolgd door een reeks headers en ten slotte de inhoud van het opgevraagde bestand zelf. De ETag-header, een unieke pagina-ID die is gekoppeld aan caching, en de X-Pad, een niet-standaard header die browserfouten helpt bestrijden.

    De kern van het internet is het Hypertext Transfer Protocol (HTTP). toepassingsniveau. HTTP-beschrijving is te vinden in RFC 1945 en RFC 2616. Het HTTP-protocol wordt geïmplementeerd met behulp van twee programma's: een client en een server, die, gelegen op verschillende eindsystemen, HTTP-berichten uitwisselen. De volgorde van uitwisseling en de inhoud van berichten worden beschreven in het protocol. Voordat we in HTTP duiken, moeten we eerst de terminologie begrijpen die in de webcontext wordt gebruikt.

    Elke webpagina of document bestaat uit objecten. Het object is een gewoon bestand in HTML-formaat, een afbeelding in JPEG-formaat of GIF, Java-applet, audioclip, enz., dat wil zeggen een eenheid die zijn eigen Uniform Resource Locator (URL) heeft. Normaal gesproken bestaan ​​webpagina's uit een basis-HTML-bestand en de objecten waarnaar het linkt. Dus als een webpagina een eenvoudig HTML-bestand en vijf afbeeldingen bevat, bestaat deze uit zes objecten. Objectkoppelingen die verband houden met een webpagina zijn URL's die zijn opgenomen in het onderliggende HTML-bestand. Een URL bestaat uit twee delen: de hostnaam van de server waarop het object zich bevindt, en het pad naar het object. Voor de URL _www.someSchool.edu/someDepartment/picture.gif is de hostnaam bijvoorbeeld het fragment _www.someSchool.edu en is het pad naar het object het fragment someDepartment/picture.gif.

    De webuser-agent wordt de browser genoemd; het geeft webpagina's weer en voert ook veel extra hulpprogramma's uit. Bovendien vertegenwoordigen browsers de clientzijde van het HTTP-protocol. De termen “browser” en “client” zullen in de webcontext dus als gelijkwaardig worden gebruikt. Een van de meesten populaire browsers omvat Netscape Navigator en Microsoft-internet Ontdekkingsreiziger.

    De webserver bevat objecten, die elk worden geïdentificeerd door hun URL. Bovendien bieden webservers serverkant HTTP-protocol. De meest populaire webservers zijn Apache en Microsoft Internet Information Server.

    Het HTTP-protocol definieert hoe clients (zoals browsers) webpagina's opvragen en hoe servers die pagina's afleveren. We zullen later meer in detail praten over de interactie tussen client en server, maar het basisidee kan worden begrepen uit Fig. 2.4. Wanneer een gebruiker een webpagina opvraagt ​​(bijvoorbeeld op een hyperlink klikt), stuurt de browser een HTTP-verzoek naar de server voor de objecten waaruit de webpagina bestaat. De server ontvangt het verzoek en verzendt antwoordberichten met de vereiste objecten. In 1997 begonnen bijna alle webbrowsers en webservers HTTP-versie 1.0 te ondersteunen, beschreven in RFC-document 1945. In 1998 begon de overgang naar versie 1.1, die werd beschreven in RFC 2616. Versie 1.1 heeft terugwaartse compatibiliteit met versie 1.0, dat wil zeggen dat elke server of browser die versie 1.1 gebruikt, volledig kan communiceren met een browser of server die versie 1.0 ondersteunt.

    Zowel HTTP 1.0 als HTTP 1.1 gebruiken TCP als protocol transport laag. Een HTTP-client brengt eerst een TCP-verbinding met de server tot stand, en nadat de verbinding tot stand is gebracht, beginnen de client en de server via een socketinterface met het TCP-protocol te communiceren. Zoals eerder vermeld zijn sockets "deuren" tussen processen en het transportlaagprotocol.

    De client verzendt verzoeken en ontvangt antwoorden via de socketinterface, en de server gebruikt de socketinterface om verzoeken te ontvangen en uit te voeren. Nadat het webverzoek de client-socket passeert, is het in handen van het TCP-protocol. Bedenk dat een van de functies van het TCP-protocol het garanderen van betrouwbare gegevensoverdracht is; dit betekent dat elk verzoek dat door de client wordt verzonden en elk antwoord van de server precies wordt afgeleverd zoals het is verzonden. Dit is waar een van de voordelen van het meerlaagse communicatiemodel zich manifesteert: het HTTP-protocol hoeft de betrouwbaarheid van de transmissie niet te controleren en te garanderen heruitzending pakketten met vervorming. Al het ‘vuile’ werk zal worden gedaan door het TCP-protocol en protocollen op een lager niveau.

    Opgemerkt moet worden dat nadat het onderhoud aan clients is voltooid, de server geen informatie over hen opslaat. Als een client bijvoorbeeld twee verzoeken achter elkaar voor dezelfde bron indient, zal de server deze vervullen zonder de klant enige kennisgeving te geven over het dubbele verzoek. Er wordt gezegd dat het HTTP-protocol een staatloos protocol voor verbindingen is.

    In het tijdperk van wijdverbreid gebruik van internet zijn virussen die in de browser worden geïnstalleerd vooral gebruikelijk geworden. Op onze informatiebron kunt u verschillende artikelen over dergelijke kwaadaardige programma's vinden, maar Time to Read springt eruit. Dit virus kunnen de computer van een onoplettende gebruiker binnendringen en het plezier van het werken met de browser aanzienlijk bederven. De gebruiker zal advertenties zien, hij zal voortdurend worden doorgestuurd naar de Time to Read-website en er zullen zich nog veel andere problemen voordoen, maar eerst en vooral eerst.

    Net als de meeste Trojaanse virussen, Time to Read voert een eenvoudige taak uit: laat het aan de gebruiker zien maximaal aantal reclame zodat de makers van het programma geld ontvangen voor de uitzending, erop klikken en overboeken naar partnersites. Meestal worden de diensten voor het promoten van hun websites met behulp van virussen gebruikt door frauduleuze bronnen of pagina's die zijn geïnfecteerd met iets ernstigers dan een reclametrojan.

    Zodra het Time to Read-virus op uw computer terechtkomt, manifesteert het zich met de volgende “symptomen”:

    • Er verschijnen voortdurend aanvullende advertenties op sites, waaronder pop-upbanners die de inhoud volledig verbergen totdat u erop klikt;
    • De beveiligingsinstellingen van de computer zijn onderhevig aan wijzigingen, wat gevaarlijk is voor een computer die dat wel doet permanente verbinding naar het internet;
    • De startpagina van alle browsers verandert automatisch naar de Time to Read-site, die zichzelf probeert te positioneren als zoek- en nieuwsbron;
    • Automatisch doorsturen naar bronnen van derden. Belangrijk: vanaf een onbekende site waarnaar de gebruiker mogelijk wordt doorverwezen Tijdvirus Als u wilt lezen, bestaat er een groot risico dat u andere virussen naar uw computer downloadt.

    Als u bovenstaande symptomen op uw computer opmerkt, betekent dit dat uw computer is geïnfecteerd met het Time to Read-virus. Het moet dringend worden verwijderd om ernstiger problemen waartoe het kan leiden te voorkomen.

    Om het Time to Read-virus van uw computer te verwijderen, moet u eerst twee programma's downloaden en installeren: AdwCleaner en CCleaner. Deze toepassingen zullen u helpen automatische modus omgaan met het virus, en de gebruiker hoeft alleen de eenvoudigste taken uit te voeren in de “handmatige” modus.

    Het proces om het Time to Read-virus van uw computer te verwijderen is als volgt:

    1. De eerste stap is om alles van uw computer te verwijderen tijdelijke bestanden, naar virusprogramma kon niet herstellen na verwijdering. Om dit te doen, gaat u naar de betreffende secties:
    Op Windows 7:(Systeemstation):\Gebruikers\Gebruikersnaam\AppData\Local\Temp Op Windows 10:(Systeemstation):\Users\Administrator\AppData\Local\Temp

    U mag niet selectief handelen; u moet alle bestanden in het bestand verwijderen Tijdelijke map, aangezien elk van hen gevaarlijk kan zijn.


    Houd er rekening mee dat u de cache van de oplosser opnieuw moet instellen vanuit een beheerdersprofiel.


    Hoe CCleaner correct te installeren en configureren:


    Op dit punt kan de verwijdering van het Time to Read-virus van uw computer als voltooid worden beschouwd. Wij raden u aan uw computer opnieuw op te starten voordat u de browser gaat gebruiken.

    Meestal komt het Time to Read-virus op de computer van de gebruiker terecht als gevolg van zijn nalatigheid. Een paar basisaanbevelingen die het risico dat uw computer door dit Trojaanse paard wordt geïnfecteerd, aanzienlijk zullen helpen verminderen:

    • Download programma's op internet alleen van vertrouwde sites. Als de applicatie gratis wordt verspreid, is het beter om deze te downloaden van de website van de ontwikkelaar;
    • Let bij het installeren van programma's goed op alle “vinkjes” in het installatieprogramma. Vaak onder " volledige installatie programma's" begrijpen de ontwikkelaars de installatie van een applicatie met aangesloten software, die viraal kan zijn. Wij raden u ook aan om er kennis mee te maken gebruikersovereenkomst, wat erop kan wijzen dat dit of dat partnerprogramma standaard op de computer wordt geïnstalleerd;
    • Download geen programma's van internet van onbekende ontwikkelaars die ongelooflijke functionaliteit beloven.

    Door de hierboven beschreven eenvoudige regels te volgen, kunt u het risico dat uw computer geïnfecteerd raakt met het Time to Read-virus, dat veel problemen kan veroorzaken, aanzienlijk verminderen.

    Het HTTP- of HyperText Transfer Protocol is de grootste fout ( World Wide Web). De hoofdtaak van het protocol is het verzekeren van de overdracht van hypertekst over het netwerk. Het protocol beschrijft nauwkeurig het berichtformaat voor de uitwisseling van clients en servers.

    Het HTTP-protocol wordt beschreven in RFC 2616 (HTTP1.1).

    De basis van het protocol is om interactie tussen de client en de server te garanderen met behulp van één ASCII-verzoek en het daaropvolgende antwoord daarop in de RFC 822 MIME-standaard.

    In de praktijk werkt het HTTP-protocol op poort 80, maar kan anders worden geconfigureerd. En hoewel TCP/IP niet verplicht is, blijft het de voorkeur hebben, omdat het zorgt voor het splitsen en samenstellen van berichten en de browser of de server niet “overbelast”.

    Opgemerkt moet worden dat het HTTP-protocol niet alleen in webtechnologieën kan worden gebruikt, maar ook in andere OOP-toepassingen (objectief georiënteerd).

    URL

    De basis van client-server webcommunicatie is het verzoek. Het verzoek wordt verzonden via een URL: de Uniform Internet Resource Locator. Laat me je eraan herinneren wat een URL is.

    Duidelijk en eenvoudige structuur De URL bestaat uit de volgende elementen:

    • Protocol;
    • Gastheer;
    • Haven;
    • Bronnenmap;
    • Etiketten (query).

    Let op: Het http-protocol is een protocol voor eenvoudige, niet-beveiligde verbindingen. Beveiligde verbindingen werken met behulp van het https-protocol. Het is veiliger voor gegevensuitwisseling.

    HTTP-verzoekmethoden

    Een van de URL-parameters specificeert de naam van de host waarmee we willen communiceren. Maar dit is niet genoeg. U moet bepalen welke actie u moet ondernemen. Dit kan worden gedaan met behulp van een methode die is gedefinieerd door het HTTP-protocol.

    HTTP-methoden

    • Methode/beschrijving
    • HEAD/Lees de titel van de webpagina
    • GET/Lees webpagina
    • POST/Toevoegen aan webpagina
    • PUT/Save webpagina
    • TRACEREN/Verzoek terugsturen
    • VERWIJDEREN/Verwijder een webpagina
    • OPTIES/Weergaveopties
    • VERBINDEN/Gereserveerd voor toekomstig gebruik

    Laten we HTTP-methoden in meer detail bekijken

    GET-methode. vraagt ​​een pagina (bestand, object) aan die is gecodeerd met behulp van de MIME-standaard. Dit is de meest gebruikte methode. Methode structuur:
    GET bestandsnaam HTTP/1.1

    HEAD-methode. Deze methode vraagt ​​om de berichtkop. De pagina laadt echter niet. Met deze methode kunt u de tijd achterhalen laatste update pagina's, die nodig zijn om de paginacache te beheren. Met deze methode kunt u de functionaliteit van de gevraagde URL controleren.

    PUT-methode. Met deze methode kan de pagina op de server worden geplaatst. De PUT-aanvraagtekst bevat de te hosten pagina, die MIME-gecodeerd is. Deze methode vereist identificatie van de klant.

    POST-methode. Deze methode voegt inhoud toe aan een bestaande pagina. Gebruikt als voorbeeld om een ​​bericht aan een forum toe te voegen.

    DELETE-methode. Deze methode vernietigt de pagina. Voor de verwijderingsmethode is bevestiging van de rechten van de gebruiker om te verwijderen vereist.

    TRACE-methode. Dit is een foutopsporingsmethode. Het instrueert de server om het verzoek terug te sturen en zorgt ervoor dat hij kan weten of het verzoek van de client beschadigd is of niet wanneer het terugkeert van de server.

    CONNECT-methode– reservemethode, niet gebruikt.

    OPTIES-methode Hiermee kunt u servereigenschappen en eigenschappen van elk bestand opvragen.

    Bij verzoek-antwoordcommunicatie tussen de client en de server genereert de server noodzakelijkerwijs een antwoord. Dit kan een webpagina zijn of een statusbalk met een statuscode. Je kent de statuscode goed. Eén van de codes is de bekende code 404 – Pagina niet gevonden.

    Statuscodegroepen

    1хх: Servergereedheid, Code 100 – de server is klaar om clientverzoeken te verwerken;

    2xx: Succes.

    • Code 200 – de aanvraag is succesvol verwerkt;
    • Code 204 – Geen inhoud.

    3xx: Omleiding.

    • Code 301 – De opgevraagde pagina is verplaatst;
    • Code 304 – De pagina in de cache is nog steeds relevant.

    4xx: Clientfout.