De uri-ID ontbreekt wat te doen. Uniform Resource Identifier (URI), doel en onderdelen

Uniform Resource Identifier URI. URI's zijn bekend onder veel van de namen WWW-adressen, Universal Document Identifiers, URI's en tenslotte als een combinatie van Uniform Resource Locators, URL's en Uniform Resource Names, URN's. HTTP definieert een URL eenvoudigweg als een opgemaakte tekenreeks die een bron identificeert op naam, locatie of enig ander kenmerk. 3.2.1 Algemene syntaxis. URI's in HTTP kunnen worden weergegeven in absolute vorm, absolute URI's of relatieve URI's ten opzichte van een bekende basis-URI, afhankelijk van de context van hun gebruik. Het verschil tussen de twee vormen is dat absolute URI's altijd beginnen met een door dubbele punten gekoloniseerde schemanaam.

URI absoluteURI relativeURI fragment absoluteURI-schema uchar gereserveerd relativeURI netto pad abs pad rel pad net pad net loc abs pad abs pad rel pad rel pad pad params? zoekpad fsegment segment fsegment 1 pchar segment pchar params param param param pchar schema 1 ALPHA DIGIT net loc pchar? query uchar gereserveerd fragment uchar gereserveerd pchar uchar uchar onvoorwaardelijk ontsnapping onvoorwaardelijk ALPHA DIGIT veilig extra nationaal ontsnapping HEX HEX gereserveerd? extra veilig onveilig CTL SP nationaal elk OCTET behalve ALPHA, DIGIT, gereserveerde, extra, veilige en onveilige octetten Volledige details van URL-syntaxis en semantiek zijn opgenomen in RFC 1738 en RFC 1808. Normale Backus-Naur-notatie omvat nationale tekens die niet zijn toegestaan in geldige URL's gedefinieerd door RFC 1738, omdat HTTP-servers een set niet-gereserveerde tekens toestaan ​​om het rel-padgedeelte van adressen weer te geven, en daarom kunnen HTTP-proxy's URI-verzoeken ontvangen die niet voldoen aan RFC 1738. Het HTTP-protocol legt geen eventuele beperkingen op URI-lengtes ... Servers moeten de URI's verwerken van elke bron, van elke lengte, die ze bedienen, en ze moeten URI's van onbeperkte lengte verwerken als ze GET-gebaseerde servers bedienen die zo'n URI kunnen genereren. De server MOET een 414-statuscode van de Request URI Too Long, Request-URI Too Long retourneren als de URI langer is dan de server aankan.

Servers moeten letten op URI's die langer zijn dan 255 bytes, omdat sommige oudere clients of proxy's deze lengtes mogelijk niet correct ondersteunen. 3.2.2 HTTP-URL. Het HTTP-schema wordt gebruikt om toegang te krijgen tot netwerkbronnen met behulp van het HTTP-protocol. Deze sectie definieert de door het schema gedefinieerde syntaxis en semantiek voor HTTP-URL's. http URL http hostpoort abs pad host een geldige domeinnaam van de machine of IP-adres in decimale notatie zoals gedefinieerd in paragraaf 2.1 van RFC 1123 poort DIGIT Als poort leeg is of niet gespecificeerd, wordt poort 80 gebruikt. resource wordt gehost op de server, wachtend op TCP-verbindingen op de opgegeven poort, host en de gevraagde resource-URI is abs-pad. Het gebruik van IP-adressen in URL's moet door RFC 1900 zoveel mogelijk worden vermeden. Als het abs-pad niet aanwezig is in de URL, MOET het worden behandeld zoals bij het berekenen van de aangevraagde resource Request-URI. 3.2.3

Einde van het werk -

Dit onderwerp hoort bij de sectie:

HTTP 1.1-protocol

Volgens RFC 1945 was HTTP 1.0 een verbetering van dit protocol, het stond een MIME-achtig formaat toe van berichten met meta-informatie over de verzonden berichten, maar HTTP 1.0 hield geen rekening met de eigenaardigheden van het werken met hiërarchische berichten. .. 1.1 ..

Als u aanvullend materiaal over dit onderwerp nodig heeft, of u heeft niet gevonden wat u zocht, raden we u aan de zoekopdracht in onze database te gebruiken:

Wat doen we met het ontvangen materiaal:

Als dit materiaal nuttig voor u bleek te zijn, kunt u het opslaan op uw pagina op sociale netwerken:

Alle onderwerpen in deze sectie:

Terminologie
Terminologie. Verbinding verbinding. Virtueel circuit met transportlaag tot stand gebracht tussen twee programma's ten behoeve van communicatie Berichtbericht. De hoofdmodule van HTTP-communicatie, bestaande uit structurele

Protocolparameters:
Protocolparameters. De HTTP.HTTP-versie gebruikt een belangrijk nummeringsschema. minor om de protocolversie aan te geven. De protocolversiestrategie is ontworpen om verzending mogelijk te maken

UR-vergelijking
Vergelijking van UR. I. Bij het vergelijken van twee URI's om te beslissen of ze al dan niet overeenkomen, MOET de klant een hoofdlettergevoelige octet-per-octet vergelijking van deze URI's gebruiken, met

Volledige datum
Volledige datum. HTTP-toepassingen hebben in het verleden drie verschillende formaten toegestaan ​​voor het weergeven van datums van de zon, 06 nov 1994 08 49 37 GMT RFC 822 gewijzigd in RFC 1123 zondag 06-nov-94 08 49 37 GMT

Tekensets
Karakter sets. HTTP gebruikt dezelfde definitie van de term codeboek die is gedefinieerd voor MIME. De term codeboek wordt gebruikt om te verwijzen naar een methode die gebruikmaakt van

Inhoudscoderingen
Contentcodering contentcoderingen. De inhoudscoderingswaarde geeft aan welke coderingstransformatie is of zal worden toegepast op het object. Er wordt inhoudscodering gebruikt

Coderingen overdragen
Overdrachtcodering Overdrachtcoderingen. Overdrachtcoderingswaarden worden gebruikt om een ​​coderingstransformatie aan te geven die is of zou moeten worden toegepast op de entiteitslichaam om

Mediatypen
Mediatypen Mediatypen. HTTP gebruikt internetmediatypen in de velden Content-Type en Accept-header om open en uitbreidbare gegevens en typetypen te bieden. mediatype t

Canonicalisering en vooraf gedefinieerde waarden van het type tekst
Canonicalisering en vooraf gedefinieerde waarden van het type tekst. Internetmediatypen worden in canonieke vorm geregistreerd. Over het algemeen moet de hoofdtekst van een object dat wordt verzonden door een HTTP-bericht:

Meerdelige typen
Meerdelige typen. MIME biedt een aantal meerdelige typen die een pakket vormen van een of meer objecten binnen de hoofdtekst van een enkel bericht. Alle meervoudige typen delen een gemeenschappelijke syntaxis, o

Producttokens
Productmunten. Productmarkeringen worden gebruikt om communicatietoepassingen in staat te stellen zichzelf te identificeren met de naam en versie van de software.

Kwaliteitswaarden
Kwaliteitswaarden. HTTP gebruikt korte getallen met drijvende komma om het relatieve belang van het gewicht van verschillende onderhandelde parameters aan te geven. Gewicht is een genormaliseerde stof

Taaltags Taaltags
Taaltags Taaltags. De taaltag identificeert een natuurlijke taal die door mensen wordt gesproken, geschreven of anderszins wordt gebruikt om informatie met andere mensen uit te wisselen. Machinetalen zijn

Entiteitstags
Entiteitstags. Objectlabels worden gebruikt om twee of meer objecten van dezelfde aangevraagde resource te vergelijken. HTTP 1.1 gebruikt entiteitslabels in ETag-headervelden

Bereik Eenheden Bereik Eenheden
Bereik Eenheden Bereik Eenheden. Met HTTP 1.1 kan een client slechts een deel van een object aanvragen. HTTP 1.1 gebruikt bereikeenheden in de header-velden Range en Content-Rang

Soorten berichten
Soorten berichten. HTTP-berichten zijn onderverdeeld in client-naar-server-verzoeken en server-naar-client-antwoorden. HTTP-bericht Request Response HTTP 1.1-berichten Request- en response-berichten gebruiken een generieke indeling

Berichtkoppen
Kopteksten plaatsen. HTTP-headervelden, waaronder de velden general-header, request-header, response-header en entiteit-h-headers

Bericht lichaam
De hoofdtekst van het bericht. De hoofdtekst van de HTTP-berichttekst, indien aanwezig, wordt gebruikt om de hoofdtekst van het object over te brengen dat is gekoppeld aan het verzoek of antwoord. De hoofdtekst van de berichttekst is anders dan de hoofdtekst over

Bericht lengte
De lengte van het bericht. Wanneer een berichttekst in een bericht aanwezig is, wordt de lengte van die hoofdtekst bepaald door een van de volgende methoden, in volgorde van prioriteit 1. Elk antwoordbericht dat niet

Methode Methode:
Methode Methode. Het methodetoken specificeert de methode die moet worden toegepast op de resource die wordt geïdentificeerd door de aangevraagde Request-URI. De methode is hoofdlettergevoelig. Methode OPTIES KRIJG HOOFD PO

Statuscode en verklarende zin
Statuscode en verklarende zin. Het Status-Code-element is een driecijferige integercode voor het resultaat van een poging om een ​​verzoek te begrijpen en uit te voeren. Deze codes zijn volledig gedefinieerd in de sectie:

Aanhoudende verbindingen
Blijvende verbindingen. Doelwit. Voorafgaand aan de introductie van persistente verbindingen in het protocol, werd voor elk URL-verzoek een afzonderlijke TCP-verbinding tot stand gebracht, waardoor de belasting op HTTP van

Discussie Onderhandeling
Discussie Onderhandeling. Een HTTP 1.1-server kan ervan uitgaan dat een HTTP 1.1-client geen permanente verbinding ondersteunt als de Connection-header die in de aanvraag is verzonden het connect-token bevat

Transportbandverwerking Pipelining
Transportband verwerking Pipelining. Een client die persistente verbindingen onderhoudt, kan verzoeken pijplijnen, dat wil zeggen meerdere verzoeken verzenden zonder op een reactie op elk te wachten

Praktische overwegingen
Praktische overwegingen. Servers hebben meestal een time-outwaarde, waarna ze geen inactieve verbinding onderhouden. Proxy's kunnen het hoger instellen

Vereisten voor berichtoverdracht
Vereisten voor het verzenden van berichten. Algemene vereisten - HTTP 1.1-servers MOETEN persistente verbindingen onderhouden en TCP-stroomcontrolemechanismen gebruiken om tijdelijke

Veilige methoden
Veilige methoden. Programmeurs moeten begrijpen dat software, bij interactie met internet, de gebruiker vertegenwoordigt, en het programma moet de gebruiker op de hoogte stellen van elke actie

Definitie van statuscodes
Definitie van statuscodes. Elke statuscode, die hieronder wordt beschreven, bevat een beschrijving van de methode of methoden die deze kan volgen en de meta-informatie die vereist is in het antwoord. 10.1 1xx - Informeren

Toegangsverificatie
Toegang tot authenticatie. Om toegang te verifiëren, biedt HTTP een eenvoudig challenge-response-mechanisme dat kan worden gebruikt door:

Basis verificatieschema
Basis authenticatieschema. Het basisauthenticatieschema is gebaseerd op het feit dat de user agent zijn identiteit moet bewijzen met behulp van een ID.

HTTP-caching
HTTP-caching. HTTP wordt vaak gebruikt voor gedistribueerde informatiesystemen, waarvan de efficiëntie kan worden verbeterd door gecachte reacties te gebruiken. Het HTTP 1.1-protocol bevat p

juistheid cache
De juistheid van de cache. Een geldige cache moet op een verzoek reageren met het meest recente antwoord, dat overeenkomt met het verzoek, opgeslagen door een cache die aan een van de volgende voorwaarden voldoet: 1. Het is gevalideerd.

Cache-control Mechanismen
Cache-controlemechanismen. Basiscachemechanismen in HTTP 1.1 server-gespecificeerde vervaltijd en validator zijn impliciete richtlijnen

Expliciete gebruikersagentwaarschuwingen
Expliciete gebruikersagentwaarschuwingen. Veel user-agents maken het voor gebruikers mogelijk om elementaire caching-mechanismen te negeren. Een user-agent kan bijvoorbeeld toestaan ​​dat p

Uitzonderingen op regels en waarschuwingen
Uitzonderingen op regels en waarschuwingen. In sommige gevallen kan de cache-operator het configureren om verlopen antwoorden terug te sturen, zelfs als de client hier niet om heeft gevraagd.

Klantgestuurd gedrag
Klantgestuurd gedrag. Terwijl de oorspronkelijke server en, in mindere mate, de tussenliggende caches en hun bijdrage aan de leeftijd van de respons de primaire bron van informatie over veroudering zijn

verouderingsmodel
Het afschrijvingsmodel. Door de server gespecificeerde veroudering. HTTP-caching werkt het beste wanneer de caches verzoeken aan de oorspronkelijke server volledig kunnen vermijden. primair mechanisme en

Heuristische veroudering
Heuristische veroudering. Omdat de oorspronkelijke servers niet altijd expliciete vervaltijden bieden, wijzen HTTP-caches doorgaans heuristische vervaltijden toe met behulp van algoritmen die worden gebruikt

Leeftijd berekenen
Leeftijd berekenen. Om te weten of een object in de cache vers is, moet de cache weten of het ouder is dan de versheidsdatum. Hosts die HTTP gebruiken, vooral hos

verouderingsberekening
Berekening van veroudering. Om te beslissen of een reactie vers of achterstallig is, moeten we de levensduur ervan vergelijken met de leeftijd. Leeftijd wordt berekend met behulp van het algoritme beschreven in paragraaf 13.2.3

Stadia van ontwikkeling van de hesychastentraditie
Stadia van ontwikkeling van de hesychastische traditie. Hesychasten traditie uit het Grieks. term - vrede, stilte - een bepaalde school van spirituele oefening, die zich ontwikkelt vanaf de IVe eeuw. tot op de dag van vandaag. 7 Op deze lange reistijden

Werken met URI

Elke dag gebruiken we Uniform Resource Identifiers (URI's) als je iets zoekt op het WWW. URI's zijn nodig om een ​​nieuw soort bron te identificeren en aan te vragen. Met URI's hebt u niet alleen toegang tot webpagina's, maar ook tot de FTP-server, webservice en lokale bestanden.

De term wordt vaak gebruikt in plaats van URI Uniform Resource Locator (URL)... URI is een algemene term die wordt gebruikt voor links naar bronnen. Een URL is een URI die is gekoppeld aan populaire URI-schema's zoals http, ftp en mailto. In technische documentatie wordt de term URL niet meer gebruikt.

Een andere term is je misschien al bekend - Uniform Resource Name (URN)... URN is een gestandaardiseerde URI die wordt gebruikt om een ​​bron te identificeren, ongeacht de locatie op het netwerk.

Laten we de delen van de URI analyseren die naar een pagina op de Global Knowledge-website linken:

http://www.globalknowledge.net:80/training/generic.asp?pageid=1078&country=DACH

    Het eerste deel van de URI heet schema... Het schema definieert de naamruimte van de URI en kan de syntaxis van de expressie die op het schema volgt, beperken. Veel schema's zijn genoemd naar de respectievelijke protocollen (zoals http, ftp) die ze gebruiken, maar dit is optioneel. In ons voorbeeld is de schema-ID http. Circuitbegrenzer(// in dit voorbeeld) scheidt het schema van de rest van de URL.

    Het schemascheidingsteken wordt gevolgd door de servernaam of het IP-adres in decimale notatie met punten, zoals www.globalknowledge.net.

    Achter de servernaam of het IP-adres staat het poortnummer dat de verbinding met een specifieke applicatie op de server identificeert. Als er geen poortnummer is opgegeven, wordt het standaardpoortnummer voor dat protocol gebruikt (bijvoorbeeld poort 80 voor HTTP).

    Manier definieert de pagina (en directory) van de gevraagde bron. Het vertegenwoordigt niet noodzakelijk een fysiek bestand op de server, maar het kan dynamisch worden gegenereerd. In dit geval ziet het pad eruit als /training/generic.asp.

    Van het pad bij het symbool? ontdaan van het laatste deel van deze URI genaamd vraag... In ons voorbeeld wordt het verzoek gedefinieerd door de regel pageid = 1078 & country = DACH. Een querytekenreeks kan verschillende componenten hebben, die elk een variabele en waarde specificeren, aaneengeschakeld met het &-symbool. Met & kunnen meerdere querycomponenten worden gecombineerd. Dus in ons voorbeeld is de eerste component pageid = 1078 met de pageid variabele en een waarde van 1078, en de tweede component is country = DACH.

    Secties binnen een bron kunnen worden geïdentificeerd met fragmenten. Fragmenten worden gebruikt om te linken naar secties binnen een HTML-pagina. In webdesign worden fragmenten ook wel bladwijzers genoemd. Het #-teken scheidt de fragment-ID van het pad. In de URL http; // www.microsoft.com/net/basics/glossary.asp#NETFramework is het fragment #NETFramework.

Als het #-teken aan de queryreeks wordt toegevoegd, is het geen fragment meer. De URL kan een querytekenreeks of een fragment bevatten, maar niet beide.

Meerdere tekens zijn gereserveerd in URI's — ze kunnen niet worden opgenomen in hostnamen of padnamen omdat het speciale scheidingstekens zijn. De volgende tekens zijn gereserveerd in de URI:

; / ? : @ & = + $ ,

Uri-klas uit de systeemnaamruimte bevat een uniforme resource-ID. Het bevat eigenschappen en methoden voor het ontleden, vergelijken en combineren van URI's.

U kunt een Uri-object maken door een URI-tekenreeks door te geven aan de constructor:

Uri baseURI = nieuwe Uri ("http: // site");

Als u al een basis-URI-object hebt, kunt u een nieuwe URI maken door de basis-URI te combineren met een relatieve URI:

Uri baseURI = nieuwe Uri ("http: // site"); Uri newURI = nieuwe Uri (baseURI, "mijn / csharp / web / level2 / 2_2.php");

Als de basis-URI al een pad bevat, wordt dit genegeerd. Alleen het schema, de poort en de servernaam worden als basis genomen voor de nieuwe URI.

De klasse Uri heeft verschillende alleen-lezen statische velden om enkele van de algemene schema's te krijgen:

Uri.UriSchemeFile

Het bestandsschema wordt gebruikt om bestanden lokaal of op gedeelde netwerkbronnen te openen, die een naam kunnen krijgen volgens de universele naamgevingsconventie ( Universele naamgevingsconventie, UNC).

Uri.UriSChemeFtp

FTP met het ftp-schema wordt gebruikt om bestanden op te halen van een ftp-server en, omgekeerd, om bestanden op een ftp-server te zetten.

Uri.UriSchemeGopher

Het gopher-protocol was de voorloper van HTTP. Het bood hiërarchische weergavemogelijkheden voor tekstuele inhoudsinformatie, wat superieur was aan FTP. Maar het werd al snel vervangen door het HTTP-protocol.

Uri.UriSchemeHttp, Uri.UriSchemeHttps

Deze twee schema's zijn bekend: http en https. Het https-schema wordt gebruikt voor veilige uitwisseling.

Uri.UriSchemeMailto

Het mailto-schema wordt gebruikt om e-mailberichten te verzenden.

Uri.UriSchemeNieuws, Uri.UriSchemeNntp

De schema's nieuws en nntp worden gebruikt in nieuwsgroepen die gebruikmaken van het NNTP-protocol.

De klasse Uri heeft statische methoden om te controleren of het schema en de hostnaam correct zijn: Uri.CheckSchemeName () retourneert true als de schemanaam correct is en de methode UriCheckHostNaam () valideert niet alleen de hostnaam, maar retourneert ook een UriHostNameType-opsommingswaarde die het type host aangeeft.

De klasse Uri heeft veel alleen-lezen-eigenschappen waarmee u toegang hebt tot alle delen van een URI. In de volgende tabel gebruiken we de bovenstaande URI als voorbeeld om het gebruik van eigenschappen te demonstreren:

AbsoluutUri Deze eigenschap toont de volledige URI. Als het opgegeven poortnummer voor het protocol gelijk is aan het standaardpoortnummer, verwijdert de Uri-constructor dit automatisch. Voor ons voorbeeld ziet de waarde van de eigenschap AbsoluteUri er als volgt uit: http://www.globalknowledge.net/t raining / generic.asp?pageid = 1078 & land = DACH... Als u een bestandsnaam doorgeeft aan de Uri-klassenconstructor, gaat de eigenschap AbsoluteUri automatisch vooraf aan de bestandsnaam met het bestand: // schema.
Schema Het schema is het eerste deel van de URI en in dit geval retourneert deze eigenschap de waarde http.
Gastheer Hosteigenschap toont hostnaam van URI: www.globalknowledge.net
Autoriteit Als het poortnummer gelijk is aan de standaardwaarde van het protocol, geeft de eigenschap Authority dezelfde tekenreeks weer als de eigenschap Host. Als een ander poortnummer wordt gebruikt, toont de eigenschap Authority ook het poortnummer.
HostNaamType Het type hostnaam is afhankelijk van de gebruikte naam. In dit geval wordt dezelfde waarde van de UriHostNameType-opsomming verkregen die hierboven is besproken.
Haven Met behulp van de eigenschap Port wordt het poortnummer verkregen - 80.
Absoluut Pad Een absoluut pad begint na het poortnummer in de URI en eindigt voor de querytekenreeks. In dit geval is het ingesteld op /training/generic.asp.
Lokaal Pad Het lokale pad geeft de waarde /training/generic.asp. Zoals u kunt zien, is er voor een HTTP-verzoek geen verschil tussen AbsolutePath en LocalPath. Het verschil verschijnt wanneer de URI verwijst naar een gedeelde netwerkbron. Voor URI's van het formulierbestand: \\ server \ share \ directory \ file.txt, retourneert de eigenschap LocalPath alleen de directory- en bestandsnamen, terwijl de eigenschap AbsolutePath de server- en sharenamen bevat.
Vraag De eigenschap Query toont de regel die het pad volgt:? Pageid = 1078 & land = DACH.
PathAndQuery De eigenschap PathAndQuery geeft een combinatie van pad en querytekenreeks: /training/generic.asp?pageid=1078&country=DACH.
Fragment Als het pad wordt gevolgd door een fragment, wordt dit geretourneerd in de eigenschap Fragment. Het pad kan alleen worden gevolgd door een queryreeks of fragment. Het fragment wordt geïdentificeerd door het # teken
Segmenten De eigenschap Segmenten retourneert een array van tekenreeksen gevormd uit het pad. In dit geval hebben we drie segmenten: /, training / en generic.asp.
Gebruikers informatie De gebruikersnaam die is ingesteld in de URI kan worden gelezen uit de eigenschap UserInfo. Gebruikersnamen doorgeven is gebruikelijk in FTP, en als een niet-anonieme gebruiker is opgegeven, zoals ftp: // [e-mail beveiligd] dan zal de eigenschap UserInfo myuser retourneren.

Naast de genoemde zijn er verschillende andere eigenschappen die booleaanse waarden retourneren als de URI een bestand, UNC-pad, loopback-adres vertegenwoordigt of als het standaardpoortnummer voor dit protocol wordt gebruikt. Dit zijn respectievelijk de eigenschappen IsFile, IsUnc, IsLoopback en IsDefaultPort.


Soms kunnen URI.as en andere AS systeemfouten gerelateerd zijn aan problemen in het Windows-register. Verschillende programma's kunnen hetzelfde URI.as-bestand delen, maar wanneer deze programma's worden verwijderd of gewijzigd, blijven er soms zwevende (ongeldige) AS-registervermeldingen achter.

Kort gezegd betekent dit dat hoewel het werkelijke pad naar het bestand mogelijk is gewijzigd, de onjuiste voormalige locatie nog steeds wordt vastgelegd in het Windows-register. Wanneer Windows probeert deze onjuiste bestandsverwijzingen op te zoeken (locaties van bestanden op uw pc), kunnen URI.as-fouten optreden. Bovendien kan malware-infectie de registervermeldingen geassocieerd met Fueling ColdFusion Development corrupt hebben gemaakt. Deze ongeldige AS-registervermeldingen moeten dus worden gerepareerd om de oorzaak van het probleem op te lossen.

Het handmatig bewerken van het Windows-register om ongeldige URI.as-sleutels te verwijderen wordt niet aanbevolen, tenzij u een professionele PC service-medewerker bent. Fouten die worden gemaakt tijdens het bewerken van het register kunnen ervoor zorgen dat uw pc niet goed werkt en onherstelbare schade aan uw besturingssysteem toebrengen. Zelfs een enkele komma op de verkeerde plaats kan zelfs voorkomen dat uw computer opstart!

Vanwege dit risico raden we ten zeerste aan om betrouwbare hulpprogramma's voor het opschonen van het register te gebruiken, zoals: WinThruster(Ontwikkeld door Microsoft Gold Certified Partner) om URI.as-gerelateerde problemen te scannen en te repareren. Gebruik makend van het register opschonen U kunt het proces van het vinden van ongeldige registervermeldingen, ontbrekende bestandsverwijzingen (zoals degene die uw URI.as fout veroorzaakt) en verbroken links binnen het register automatiseren. Voor elke scan wordt automatisch een back-up gemaakt, zodat u eventuele wijzigingen met één klik ongedaan kunt maken en u bent beschermd tegen mogelijke schade aan uw computer. Het beste deel is dat eliminatie van registerfouten kan de systeemsnelheid en -prestaties drastisch verbeteren.


Een waarschuwing: Tenzij u een ervaren pc-gebruiker bent, raden we NIET aan om het Windows-register handmatig te bewerken. Onjuist gebruik van de Register-editor kan tot ernstige problemen leiden en vereisen dat u Windows opnieuw installeert. We kunnen niet garanderen dat problemen die het gevolg zijn van oneigenlijk gebruik van de Register-editor, kunnen worden gecorrigeerd. Uw gebruik van de Register-editor is op eigen risico.

Om handmatig uw Windows-register te herstellen, moet u eerst een back-up maken door een gedeelte van het register gerelateerd aan URI.as (bijv. Fueling ColdFusion Development) te exporteren:

  1. Klik op de knop Beginnen.
  2. Binnenkomen " opdracht" v zoekbalk ... DRUK NOG NIET BINNENKOMEN!
  3. De sleutels vasthouden CTRL-Shift op het toetsenbord, druk op BINNENKOMEN.
  4. Er wordt een dialoogvenster voor toegang weergegeven.
  5. Klik op Ja.
  6. De zwarte doos wordt geopend met een knipperende cursor.
  7. Binnenkomen " regedit" en druk op BINNENKOMEN.
  8. In de Register-editor, selecteer de URI.as-relateerde sleutel (bijv.Fueling ColdFusion Development) waarvan u een back-up wil maken.
  9. Op het menu Bestand Kiezen Exporteren.
  10. In de lijst Opslaan in seleceer de map waarin u de Fueling ColdFusion Development back-upsleutel wil bewaren.
  11. In veld Bestandsnaam typ een naam voor uw back-upbestand, zoals "Fueling ColdFusion Development Backup".
  12. Zorg ervoor dat in de doos Bereik exporteren waarde geselecteerd Geselecteerde tak.
  13. Klik op Opslaan.
  14. Het bestand wordt opgeslagen met de extensie .reg.
  15. U heeft nu een backup van uw URI.as-gerelateerde registervermelding.

De volgende stappen voor het handmatig bewerken van het register worden in dit artikel niet beschreven, omdat ze hoogstwaarschijnlijk uw systeem kunnen beschadigen. Raadpleeg de onderstaande links als u meer informatie wilt over het handmatig bewerken van het register.

Om toegang te krijgen tot netwerkbronnen, moet u weten waar ze zich bevinden en hoe u er toegang toe krijgt. Het World Wide Web gebruikt een gestandaardiseerd adresserings- en identificatieschema, rekening houdend met de ervaring van het adresseren en identificeren van e-mail, Gopher, WAIS, telnet, ftp, enz. - URL, Uniform Resource Locator.

URI(Uniform Resource Identifier) ​​​​(RFC 2396, augustus 1998) is een compacte tekenreeks die wordt gebruikt om een ​​abstracte of fysieke bron te identificeren. Onder een resource wordt elk object verstaan ​​dat bij een bepaalde ruimte hoort. Omvat en vervangt eerder gedefinieerde URL's (RFC 1738 / RFC 1808) en URN's (RFC 2141, RFC 2611).

De URI is ontworpen om elke bron op unieke wijze te identificeren.

Enkele subsets van URI's:

URN(Uniform Resource Name) - Een privé "urn:" URI met een subset van de "namespace" die uniek en onveranderlijk moet zijn, zelfs als de resource niet meer bestaat of niet beschikbaar is.

Aangenomen wordt dat bijvoorbeeld de browser weet waar hij deze bron moet zoeken.

Syntaxis:

urn: namespace: data1.data2, more-data, waarbij de namespace definieert hoe de gegevens na de tweede ":" worden gebruikt.

URN-voorbeeld:

urn: ISBN: 0-395-36341-6

ISBN - thematische classificatie voor uitgevers

0-395-36341-6 - een specifiek nummer van het onderwerp van een boek of tijdschrift



Na ontvangst van de URN gaat het clientprogramma over op het ISBN (de directory "Topical Classifier for Publishers" op internet). En hij krijgt een decodering van het onderwerpnummer "0-395-36341-6" (bijvoorbeeld: "kwantumchemie").

URN wordt veel gebruikt in P2P-netwerken (zoals edonkey).

Voorbeeld URN die verwijst naar een Adobe Photoshop v8.0-schijfkopie op het edonkey-netwerk:

urn: ed2k: // | bestand | AdobePhotoshopv8.0.iso | 940769280 | | /

ed2k - geeft het netwerk aan

Adobe Photoshop v8.0.iso - bestandsnaam

940769280 - grootte in bytes

- bestandsidentificatie (berekend met behulp van een hash-functie)

URL Uniform Resource Locator:

URL(Uniform Resource Locator, RFC 1738) is een unified resource locator (locator), een gestandaardiseerde manier om het adres van een resource op het WWW en internet vast te leggen. De URL heeft een flexibele en uitbreidbare structuur om de locatie van bronnen op het netwerk zo natuurlijk mogelijk aan te geven, waarbij een bron wordt geïdentificeerd aan de hand van de manier waarop deze wordt benaderd (bijvoorbeeld de "netwerklocatie") in plaats van deze te identificeren met de naam of andere kenmerken van die bron.

Voorbeelden van URL's:

http://www.ipm.kstu.ru/index.php

ftp://www.ipm.ktu.ru/

Een beperkte set ASCII-tekens wordt gebruikt om het adres weer te geven.

Het algemene beeld van het adres kan als volgt worden weergegeven:

<схема>://<логин>:<пароль>@<хост>:<порт>/<полный-путь-к-ресурсу >

schema voor toegang tot bronnen: http, ftp, gopher, mailto, nieuws, telnet, file, man, info, whatis, ldap, wais, etc.

Login wachtwoord- gebruikersnaam en wachtwoord gebruikt om toegang te krijgen tot de bron

gastheer- de domeinnaam van de host of zijn IP-adres.

Haven- hostpoort voor verbinding

full-path-to-resource - verduidelijking van informatie over de locatie van de bron (afhankelijk van het protocol).

Voorbeelden van URL's:

http://example.com # verzoek voor de standaard startpagina

http://www.example.com/site/map.html # verzoek om een ​​bepaalde pagina in een bepaalde directory

http://example.com:81/script.php # verbinding maken met een niet-standaard poort

http://example.org/script.php?key=value # verzoek met het doorgeven van parameters aan het script

ftp: // gebruiker: [e-mail beveiligd]# verbind met ftp-server met autorisatie

http://192.168.0.1/example/www # verbinden met netwerkadres

bestand: ///srv/www/htdocs/index.html # open lokaal bestand

gopher: //example.com/1 # maak verbinding met de gopher-server

URL - Uniform Resource Locators beschrijven expliciet hoe u bij een object kunt komen.

De komst van URL's is een belangrijke innovatie op internet. Vanaf het moment van zijn uitvinding tot op de dag van vandaag heeft de URL-standaard echter een serieus nadeel: hij kan slechts een beperkte set tekens gebruiken, zelfs minder dan in ASCII: Latijnse letters, cijfers en slechts een paar leestekens.

Als we Cyrillische tekens, of hiërogliefen, of bijvoorbeeld specifieke tekens van de Franse taal in de URL willen gebruiken, dan moeten de tekens die we nodig hebben op een speciale manier worden gehercodeerd.

Op de Russischtalige Wikipedia moet je elke dag voorbeelden zien van URL-codering, aangezien de Russische taal Cyrillische karakters gebruikt. Bijvoorbeeld een regel als deze:

http://ru.wikipedia.org/wiki/Microcredit

URL gecodeerd als:

http://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D1%80%D0%B5%D0%B4%D0 % B8% D1% 82

Deze conversie vindt plaats in twee fasen: eerst wordt elk Cyrillisch teken in Unicode (UTF-8) gecodeerd in een reeks van twee bytes, en vervolgens wordt elke byte van deze reeks in hexadecimale notatie geschreven:

M → D0 en 9C →% D0% 9C

en → D0 en B8 →% D0% B8

k → D0 en BA →% D0% BA

p → D1 en 80 →% D1% 80, enz.

Elke dergelijke hexadecimale bytecode wordt voorafgegaan door een procentteken (%) volgens de URL-specificatie - vandaar de Engelse term "percent-encoding", die aangeeft hoe tekens worden gecodeerd in URL's en URI's.

Aangezien de letters van alle alfabetten, behalve het basis-Latijnse alfabet, een dergelijke transformatie ondergaan, kan de URL met woorden in de overgrote meerderheid van de talen (behalve Engels, Italiaans, Latijn) onleesbaar worden voor een persoon.

Dit alles druist in tegen het principe van internationalisme, dat door alle toonaangevende organisaties op internet, waaronder de W3C en ISOC, is afgekondigd. Dit probleem is bedoeld om te worden opgelost door de IRI (International Resource Identifier) ​​standaard - internationale resource identifiers waarin het zonder problemen mogelijk zou zijn om Unicode-tekens te gebruiken en die daarom geen inbreuk zouden maken op de rechten van andere talen.

Andere URL-schema's

HTTP-schema.

Het schema specificeert zijn identifier, machineadres, TCP-poort, pad in de serverdirectory, variabelen en hun waarden, label.

Syntaxis:

http: // [ [:@][:][?]]

http - schemanaam

gebruiker - gebruikersnaam

host - hostnaam

poort - poortnummer

vraag (<имя-поля>=<значение>{&<имя-поля>=<значение>) - querytekenreeks

Gedefinieerd in RFC 2068. Standaard is poort = 80.

Voorbeelden:
http://ipm.kstu.ru/internet/index.php

Dit is het meest voorkomende type URI dat wordt gebruikt in WWW-documenten. De schemanaam (http) wordt gevolgd door een pad dat bestaat uit het domeinadres van de machine en het volledige adres van het HTML-document in de HTTP-serverstructuur.

Het IP-adres kan ook als machineadres worden gebruikt:

http://195.208.44.20/internet/index.php

Als de HTTP-server op een andere TCP-poort dan 80 draait, wordt dit weergegeven in het adres:

http://195.208.44.20:8080/internet/index.php

http://195.208.44.20/internet/index.php#metka1
Het "#"-teken scheidt de documentnaam van de tagnaam.

Variabelen en hun waarden worden als volgt doorgegeven:
http://ipm.kstu.ru/internet/index.php?var1=value1&vard2=value2

De waarden "var1" en "var2" zijn namen van variabelen en "waarde1" en "waarde2" zijn hun waarden.

FTP-schema

Met dit schema kunt u FTP-bestandsarchieven adresseren.

Syntaxis:

ftp: // [ [:@][:]

ftp - schemanaam

gebruiker - gebruikersnaam

wachtwoord - gebruikerswachtwoord

host - hostnaam

poort - poortnummer

url-path - het pad naar het bestand en het bestand zelf

Gedefinieerd in RFC 1738. Standaard, poort = 21, gebruiker = anoniem, wachtwoord = e-mailadres, als de naam is opgegeven maar het wachtwoord niet, dan wordt deze gevraagd in het dialoogvenster.

lijkt op:

//...//[; typ = ], waar :

Voorbeelden: ftp://ipm.ktu.ru/students/name/

Om een ​​gebruikersnaam en wachtwoord op te geven, moet u deze als volgt schrijven:
ftp: // naam: [e-mail beveiligd]: //ipm.kstu.ru/studenten/naam/

In dit geval worden deze parameters van het machineadres gescheiden door het "@"-symbool en van elkaar door een dubbele punt.

MAILTO-schema

Deze regeling is bedoeld voor het verzenden van post.

Syntaxis:

mailto: [ {,,...}][?]

mailto - schemanaam

e-mail-1 ( @) - het eerste e-mailadres

gebruiker - gebruikersnaam

host - hostnaam

e-mail-2 - tweede e-mailadres

vraag (<имя-поля-заголовка>=<значение>{&<имя-поля-заголовка>=<значение>) - querytekenreeks

mailto: [e-mail beveiligd]

In dit schema worden velden en hun waarden doorgegeven:

mailto: [e-mail beveiligd]?subject = Subject_Email & body = Text_who_will_be_inserted_in_the_mail

Het adres van de ontvanger kan ook worden geschreven als de waarde van het veld to:

mailto: [e-mail beveiligd]?subject = Subject_Email & body = Text_who_will_be_inserted_in_the_mail

Wat is HTTP?

Het eerste document (maar niet de standaard) is RFC1945 (Hypertext Transfer Protocol - HTTP / 1.0 T. Berners-Lee, R. Fielding, H. Frystyk mei 1996)

De nieuwste versie is RFC2616 (Hypertext Transfer Protocol - HTTP / 1.1 R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee juni 1999)

Hypertext Transfer Protocol is een hypertext-overdrachtsprotocol, een protocol op hoog niveau (namelijk de applicatielaag). Gebruikt door de WWW-service om webpagina's over te dragen.

HTTP (HyperText Transfer Protocol, RFC 2616, huidige versie is HTTP / 1.1) is een hypertext-overdrachtsprotocol. Dit protocol was oorspronkelijk bedoeld voor het uitwisselen van hypertext-documenten, nu zijn de mogelijkheden aanzienlijk uitgebreid (met name ondersteuning voor streaming is toegevoegd).

HTTP is een typisch client-serverprotocol; berichten worden uitgewisseld volgens het "request-response"-schema in de vorm van ASCII-commando's. Een kenmerk van het HTTP-protocol is de mogelijkheid om in het verzoek en de reactie te specificeren hoe dezelfde bron in verschillende parameters moet worden weergegeven: formaat, codering, taal, enz. Het is dankzij de mogelijkheid om de methode voor het coderen van het bericht te specificeren dat de client en de server kunnen binaire gegevens uitwisselen, hoewel dit protocol tekst is.

HTTP is een applicatielaagprotocol, maar het wordt ook gebruikt als een "transport" voor andere applicatieprotocollen zoals SOAP, XML-RPC, WebDAV.

Het HTTP-protocol definieert een verzoek-antwoord manier van communicatie tussen een clientprogramma en een serverprogramma in het kader van de World Wide Web-technologie.

Om een ​​webpagina in een clientbrowser te laden, stuurt deze een verzoek naar een speciaal programma dat op de servercomputer is geïnstalleerd, een http-server genaamd, en verwerkt de gegevens die ervan worden ontvangen. In dit geval zijn de functies van de browser om een ​​specifieke pagina van de server op te vragen, deze op te halen en op het scherm van de gebruiker weer te geven. De server daarentegen accepteert het verzoek, zoekt naar het gevraagde document en geeft de client ofwel de inhoud van het gevonden bestand, of een foutmelding als een dergelijk bestand niet werd gevonden of de toegang ertoe werd geweigerd om een ​​of andere reden . Een belangrijk punt om dit proces te begrijpen is dat de http-server de inhoud van het verzonden document niet ontleedt. Het maakt de http-server grofweg niet uit wat er in het opgevraagde bestand staat, hij stuurt het alleen naar de browser en al het werk aan het structureren en weergeven van de ontvangen informatie is al overgenomen

Het zoeken naar de gevraagde pagina wordt uitgevoerd in een specifieke map, die is toegewezen aan de servercomputer voor deze site - een link naar deze map is aanwezig in het adres dat door de gebruiker is ingevoerd. In het geval dat niet naar een specifiek document wordt gebeld, maar naar de site als geheel, vervangt de http-server automatisch de zogenaamde "startpagina" in plaats van de naam van het bestand dat wordt overgedragen, met de naam index .htm of index.html (in sommige gevallen - default.htm of default.html). Dit document moet zich bevinden in de hoofdmap die is bestemd voor het hosten van uw site, of, indien anders aangegeven, in een map met de naam WWW. Alle andere bestanden kunnen in dezelfde map of in submappen worden geplaatst, wat soms handig is, vooral wanneer de site meerdere thematische secties of koppen bevat.

Naast de submappen die u aanmaakt, waarin u vrijwel alle inhoud kunt plaatsen die u nodig heeft, bevat de servermap meestal nog een aantal mappen die apart vermeld moeten worden. Ten eerste is dit de CGI-BIN-map, waar CGI-scripts en andere interactieve toepassingen die vanaf uw site zijn gestart zich bevinden, evenals verschillende servicedirectory's die nodig zijn voor de normale werking van de server. In de beginfase moet u er gewoon geen aandacht aan besteden. Soms zijn er in dezelfde map waar index.html is opgeslagen een aantal extra bestanden: not_found.html - een document dat wordt weergegeven als de http-server het door de gebruiker gevraagde bestand niet kan vinden, verboden.html - wordt weergegeven als een foutmelding, als de toegang tot het gevraagde document wordt geweigerd, en ten slotte is robots.txt een bestand dat specifiek de regels beschrijft voor het indexeren van uw site door zoekmachines.

In de meeste gevallen, en vooral bij het publiceren van een startpagina op servers die gratis hosting bieden, wordt gebruikers de toegang tot servicedirectory's en de CGI-BIN-map ontzegd, en is het ook onmogelijk om de inhoud van de not_found en verboden.html-bestanden te wijzigen. Hiermee moet rekening worden gehouden als u van plan bent om interactieve inhoud in uw bron op te nemen die ten minste de mogelijkheid vereist om bestanden in een van de servicemappen te plaatsen. In sommige gevallen kan het u verboden zijn om geneste mappen op de server te maken, dan zal de gebruiker zich tevreden moeten stellen met slechts één map die voor uw behoeften is gereserveerd.

Uit alles wat is gezegd, wordt duidelijk dat de browser van de client alleen informatie van de server kan ontvangen en verwerken, en deze alleen kan plaatsen en wijzigen als het uploaden van bestanden naar de server is geïmplementeerd op basis van het HTTP-protocol met behulp van speciale meegeleverde CGI-scripts in de webinterface van de server. In alle andere gevallen moet u de zogenaamde ftp-server gebruiken, waarnaar u met speciale software de benodigde bestanden kunt overbrengen en ze automatisch uploadt naar de map die voor uw site is bestemd. In beide gevallen heeft u uw inlognaam en wachtwoord nodig om toegang te krijgen tot het systeem. Houd er ook rekening mee dat de meeste serverprogramma's (met name Apache voor UNIX-compatibele platforms) onderscheid maken tussen kleine letters en hoofdletters, dus alle bestandsnamen en hun extensies moeten in kleine letters en altijd in het Latijn worden geschreven om fouten te voorkomen. Dit laatste is te wijten aan verschillen in de verwerking van Russische taalcoderingen, typisch voor bepaalde servers.

Het werk via het HTTP-protocol is als volgt: het clientprogramma brengt een TCP-verbinding tot stand met de server (het standaardpoortnummer is 80) en geeft er een HTTP-verzoek aan. De server verwerkt dit verzoek en stuurt een HTTP-antwoord naar de client.

De communicatie tussen de client en de webserver vindt plaats via de uitwisseling van berichten. HTTP-berichten zijn onderverdeeld in client-naar-server-verzoeken en server-naar-client-antwoorden.

Verzoek- en antwoordberichten hebben een gemeenschappelijk formaat. Beide typen berichten zien er als volgt uit: eerst is er een beginregel (startregel), dan eventueel een of meer koptekstvelden, ook wel gewoon kopteksten genoemd, dan een lege regel (dat wil zeggen een regel die bestaat uit de tekens CR en LF), waarmee het einde van de koptekstvelden wordt aangegeven en mogelijk de hoofdtekst van het bericht:

startlijn

koptekstveld 1

kopveld 2

kopveld N

bericht lichaam

HTTP-protocolheaders

De formaten van de startlijn van de client en de server zijn verschillend en zullen hieronder worden besproken. Er zijn vier soorten koppen:

Algemene headers (general-headers), die zowel in het verzoek als in het antwoord aanwezig kunnen zijn;

Request-headers, die alleen in een request aanwezig kunnen zijn;

Reactieheaders, die alleen in een reactie aanwezig kunnen zijn;

Entiteitskoppen die verwijzen naar de hoofdtekst van een bericht en de inhoud ervan beschrijven.

Elke titel bestaat uit een titel, een dubbele punt ":" en een waarde. De belangrijkste kopjes zijn weergegeven in tabel 1.

tafel 1

HTTP-protocolheaders

rubriek Afspraak
Objectkoppen
Toestaan Geeft methoden weer die door de server worden ondersteund
Inhoud-codering De manier waarop de berichttekst is gecodeerd, bijvoorbeeld om de grootte te verkleinen
Inhoud lengte Berichtlengte in bytes
Inhoudstype Bevat de aanduiding van het MIME-inhoudstype van het antwoord. Afhankelijk van het inhoudstype interpreteert de browser het antwoord als een HTML-pagina, gif- of jpeg-afbeelding, een bestand dat op schijf moet worden opgeslagen of iets anders en onderneemt de juiste actie. Enkele soorten inhoud: tekst / html - HTML-tekst (webpagina); tekst / platte tekst (vergelijkbaar met "Kladblok"); afbeelding / jpeg - afbeelding in JPEG-formaat; afbeelding / gif - hetzelfde, in GIF-formaat; Het kan ook codering doorgeven voor tekstgegevens. Bijvoorbeeld: charset = windows-1251 charset = koi8-rus Content-Length - lengte van de responsinhoud in bytes (bestandsgrootte). Laatst gewijzigd - datum en tijd waarop het document voor het laatst is gewijzigd.
Etag Een unieke resourcetag op de server waarmee u resources kunt vergelijken
Verloopt Datum en tijd waarop de bron op de server wordt gewijzigd en opnieuw moet worden opgehaald
Laatst gewijzigd Datum en tijd van de laatste wijziging van de inhoud
Reactiekoppen
Leeftijd Het aantal seconden waarna het verzoek opnieuw moet worden gedaan om nieuwe inhoud te krijgen
Plaats De URI van de bron die moet worden geraadpleegd om de inhoud op te halen
Opnieuw proberen na Datum en tijd of aantal seconden waarna het verzoek moet worden herhaald om een ​​succesvol antwoord te krijgen
Server Naam van de serversoftware die heeft gereageerd
Kopteksten aanvragen
Aanvaarden Een lijst met inhoudstypen die door de browser worden ondersteund in de volgorde van hun voorkeur voor deze browser, bijvoorbeeld: Accepteren: afbeelding / gif, afbeelding / x-xbitmap, afbeelding / jpeg, afbeelding / pjpeg, toepassing / vnd.ms-excel, application / msword, application / vnd.ms-powerpoint, * / * Dit is uiteraard nodig voor het geval de server hetzelfde document in verschillende formaten kan aanbieden. De waarde van deze parameter wordt voornamelijk gebruikt door CGI-scripts om een ​​antwoord te genereren dat is aangepast aan een bepaalde browser.
Accept-Charset Tekencoderingen waarin de client tekstinhoud kan accepteren
Accepteren-codering De manier waarop de server het bericht kan coderen
Gastheer Host- en poortnummer waarvan het document wordt opgevraagd
Indien-gewijzigd-sinds If-overeenkomst Vraag headers voor voorwaardelijke toegang tot bronnen
Bereik Een deel van een document aanvragen
User-agent Naam clientsoftware - de waarde is de "codenaam" van de browser, bijvoorbeeld: Mozilla / 4.0 (compatibel; MSIE 5.0; Windows 95; DigExt)
Algemene koppen
Verbinding Verbinding - kan Keep-Alive en dichtbij zijn. Keep-Alive houdt in dat na afgifte van dit document de verbinding met de server niet wordt verbroken en er meer verzoeken kunnen worden gedaan. De meeste browsers werken in de Keep-Alive-modus, omdat u hiermee een html-pagina en afbeeldingen kunt "downloaden" in één verbinding met de server. Eenmaal ingesteld, blijft de Keep-Alive-modus behouden tot de eerste fout of totdat expliciet wordt aangegeven in het volgende verzoek voor Verbinding: sluiten. close - de verbinding wordt verbroken na het beantwoorden van dit verzoek.
Datum Datum en tijd van berichtvorming
Pragma Implementatiespecifieke opdrachten voor de overgedragen inhoud
Overdracht-codering Berichtcoderingsmethode voor verzending:

In sommige koppen is de waarde datum en tijd. Ze moeten het formaat hebben dat wordt beschreven in RFC 1123, bijvoorbeeld:

De hoofdtekst van het bericht bevat de feitelijke informatie die wordt verzonden - de lading van het bericht. De berichttekst is een reeks octetten (bytes). De hoofdtekst van het bericht kan worden gecodeerd, met de codering die is opgegeven in de koptekst van het Content-Encoding-object.

Een verzoekbericht van client naar server bestaat uit een verzoekregel, headers (algemeen, verzoek, object) en mogelijk een berichttekst.

De aanvraagregel begint met een methode, gevolgd door de gevraagde resource-ID, de protocolversie en de laatste tekens aan het einde van de regel:

<Метод> <Идентификатор> <Версия HTTP>

Methode specificeert de methode die moet worden toegepast op de aangevraagde resource. De GET-methode zegt bijvoorbeeld dat de klant de inhoud van de bron wil krijgen. De identifier identificeert de gevraagde resource. De HTTP-versie wordt aangegeven door een regel als deze:

HTTP /<версия>.<подверсия>

HTTP-protocolmethoden

Laten we eens kijken naar de belangrijkste methoden van het HTTP-protocol.

De OPTIONS-methode zoekt naar informatie over verbindingsopties (bijvoorbeeld methoden, documenttypen, coderingen) die de server ondersteunt voor de gevraagde bron. Met deze methode kan de client opties en/of vereisten definiëren die verband houden met de bron, of de mogelijkheden van de server, zonder enige actie op de bron te ondernemen of een download te starten.

Als het antwoord van de server geen foutmelding is, bevatten de objectheaders informatie die kan worden beschouwd als verbindingsopties. De header Allow geeft bijvoorbeeld alle methoden weer die door de server worden ondersteund voor een bepaalde resource.

Als de identificatie van de gevraagde bron een asterisk ("*") is, is het OPTIONS-verzoek bedoeld om de server als geheel aan te spreken.

Als de ID van de aangevraagde bron geen asterisk is, is het OPTIONS-verzoek van toepassing op de beschikbare opties bij het verbinden met de opgegeven bron.

Met de GET-methode kunt u alle informatie krijgen met betrekking tot de gevraagde bron. In de meeste gevallen, als de identifier van de gevraagde bron naar een document verwijst (bijvoorbeeld tekstdocument, grafische afbeelding, video), retourneert de server de inhoud van dit document (bestandsinhoud). Als de aangevraagde bron een toepassing (programma) is die gegevens genereert, worden de gegenereerde gegevens geretourneerd in de hoofdtekst van het antwoordbericht en niet in een binaire afbeelding van het uitvoerbare bestand. Dit wordt bijvoorbeeld gebruikt bij het maken van CGI-applicaties. Als de identifier van de gevraagde bron verwijst naar een directory (directory, folder), dan, afhankelijk van de serverinstellingen, ofwel de inhoud van de directory (lijst met bestanden) of de inhoud van een van de bestanden in deze directory (meestal index.html of Standaard.htm). In het laatste geval kan de mapnaam worden opgegeven met of zonder het symbool "/". Als dit symbool aan het einde van de identifier ontbreekt, geeft de server een van de antwoorden met omleiding (met statuscodes 301 of 302).

Maak onderscheid tussen "voorwaardelijke GET", waarin het verzoekbericht de aanvraagheaders If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match of If-Range bevat. De voorwaardelijke GET-methode vraagt ​​alleen om de overdracht van een object als het voldoet aan de voorwaarden die in de gegeven headers worden beschreven. De voorwaardelijke GET-methode is ontworpen om onnodige netwerkbelasting te verminderen, omdat u de gegevens die al door de client zijn opgeslagen niet een tweede keer kunt downloaden.

Er wordt ook onderscheid gemaakt tussen "partial GET", waarbij het verzoekbericht een Range request-header bevat. Een gedeeltelijke GET verzoekt om de overdracht van slechts een deel van het object. De gedeeltelijke GET-methode is ontworpen om onnodige netwerkbelasting te verminderen door slechts een deel van het object op te vragen wanneer het andere deel al door de client is gedownload. De Range-headerwaarde is het bereik van te ontvangen bytes. De bytes zijn genummerd vanaf 0. De begin- en eindbytes van het bereik worden gescheiden door een "-" teken. Als u meerdere bereiken moet krijgen, worden deze weergegeven, gescheiden door komma's.

De HEAD-methode is identiek aan GET, behalve dat de server de berichttekst niet retourneert in het antwoord. De meta-informatie in de HTTP-headers van het antwoord op een HEAD-verzoek is identiek aan de informatie in het antwoord op een GET-verzoek. Deze methode kan worden gebruikt om informatie over het aanvraagobject te krijgen zonder de objecttekst rechtstreeks door te sturen. De HEAD-methode wordt vaak gebruikt om hypertekstlinks te testen.

De POST-methode wordt gebruikt voor een verzoek, waarbij de geadresseerde server de gegevens ontvangt die zijn opgenomen in de berichttekst (object) van het verzoek en deze voor verwerking naar de toepassing verzendt die is opgegeven als de gevraagde bron. POST is ontworpen om de volgende functies in het algemeen te implementeren:

Annotatie van bestaande bronnen;

Het plaatsen van een bericht op een elektronisch prikbord (BBS), nieuwsgroepen, mailinglijsten of een vergelijkbare groep artikelen;

Het doorgeven van een gegevensblok, zoals het resultaat van een invoer in een formulier, aan een verwerkingsproces;

Uitvoeren van queries naar databases (DB);

In feite wordt de functie die wordt uitgevoerd door de POST-methode bepaald door de toepassing waarnaar wordt verwezen door de ID van de gevraagde bron. Samen met de GET-methode wordt de POST-methode gebruikt bij het bouwen van CGI-applicaties. De browser kan verzoeken indienen met de POST-methode bij het indienen van formulieren. Om dit te doen, moet het FORM-element van het HTML-document dat het formulier bevat, het kenmerk METHOD hebben ingesteld op POST.

Een POST-actie kan een actie op de server uitvoeren en als resultaat geen inhoud doorgeven. In dit geval, afhankelijk van of het antwoord een berichttekst bevat die het resultaat beschrijft of niet, kan de statuscode in het antwoord 200 (OK) of 204 (Geen inhoud) zijn.

Als de bron op de server is gemaakt, bevat het antwoord een 201 (Gemaakt) statuscode en bevat het de antwoordkop Locatie.

De hoofdtekst van het bericht, dat wordt verzonden in een verzoek met de PUT-methode, wordt opgeslagen op de server en de identifier van de gevraagde bron is de identifier van het opgeslagen document. Als de identifier van de gevraagde bron verwijst naar een reeds bestaande bron, dan wordt het object in de hoofdtekst van het bericht behandeld als een gewijzigde versie van de bron die zich op de server bevindt. Als er een nieuwe resource wordt gemaakt, informeert de server de user-agent hierover met een antwoord met een statuscode 201 (Gecreëerd).

Het fundamentele verschil tussen de POST- en PUT-methoden is de verschillende betekenis van de ID van de gevraagde bron. De URI in het POST-verzoek identificeert de bron die het object verwerkt dat is opgenomen in de hoofdtekst van het bericht. Deze bron kan een toepassing zijn die gegevens ontvangt. Daarentegen identificeert de URI in een PUT-verzoek het object dat in het verzoek is opgenomen als een berichttekst, dat wil zeggen, de user-agent wijst de gegeven URI toe aan de opgenomen bron.

De DELETE-methode vraagt ​​de server om een ​​resource met de gevraagde identifier te verwijderen. Een verzoek met deze methode kan door de server worden afgewezen als de gebruiker geen toestemming heeft om de gevraagde bron te verwijderen.

De TRACE-methode wordt gebruikt om het ingediende verzoek op HTTP-protocolniveau te retourneren. De ontvanger van het verzoek (webserver) stuurt het ontvangen bericht terug naar de client als de hoofdtekst van een antwoordobject met een 200 (OK) statuscode. Een TRACE-verzoek mag geen berichttekst bevatten.

Met TRACE kan de client zien wat de server aan de andere kant ontvangt en die gegevens gebruiken voor testen of diagnostiek.

Als het verzoek succesvol is, bevat het antwoord het volledige verzoekbericht in de hoofdtekst van het antwoordbericht en is de header van het Content-Type-object "message / http".

Antwoordcodes:

Na ontvangst en interpretatie van het verzoekbericht, reageert de server met een HTTP-antwoordbericht.

De eerste regel van het antwoord is de Status-Line. Het bestaat uit een versie van het protocol, een numerieke statuscode, een verklarende zin, gescheiden door spaties, en afsluitende tekens aan het einde van de regel:

<Версия HTTP> <Код состояния> <Поясняющая фраза>

De protocolversie heeft dezelfde betekenis als in de aanvraag.

Het Status-Code-element is een integere driecijferige (driecijferige) code van het resultaat van het begrijpen en voldoen aan het verzoek. Reason-Phrase is een korte tekstuele beschrijving van de statuscode. De statuscode is voor softwareverwerking en de verklarende zin is voor gebruikers.

Het eerste cijfer van de statuscode identificeert de klasse van het antwoord. De laatste twee cijfers hebben geen specifieke rol in de classificatie. Er zijn 5 waarden voor het eerste cijfer:

1xx: Informatiecodes - aanvraag ontvangen, verwerking gaat door.

2xx: Succescodes - De actie is met succes ontvangen, begrepen en verwerkt.

3xx: Omleidingscodes - Er moet verdere actie worden ondernomen om het verzoek te voltooien.

4xx: Clientfoutcodes - De aanvraag bevat een syntaxisfout of kan niet worden voltooid.

5xx: Serverfoutcodes - De server kan niet aan een geldig verzoek voldoen.

Reden-zinnen voor elke statuscode worden vermeld in RFC 2068 en worden aanbevolen, maar kunnen worden vervangen door equivalenten zonder het protocol te beïnvloeden. In gelokaliseerde Russischtalige versies van HTTP-servers worden deze zinnen bijvoorbeeld vervangen door Russische. Tabel 2 vermeldt de responscodes van de HTTP-server.

tafel 2

HTTP-serverresponscodes

Code Verklarende zin volgens RFC 2068 Gelijkwaardige verklarende zin in het Russisch
1xx: Informatiecodes
Doorgaan met Doorgaan met
2xx: Succescodes
Oke Oke
Gemaakt Gemaakt door
Geen inhoud Geen inhoud
Inhoud resetten Inhoud resetten
Gedeeltelijke inhoud Gedeeltelijke inhoud
3xx: Omleidingscodes
Tijdelijk verplaatst Tijdelijk verplaatst
Niet-gemodificeerd Niet-gemodificeerd
4xx: Client foutcodes
Foutief verzoek Beschadigd verzoek
ongeautoriseerd ongeautoriseerd
Niet gevonden Niet gevonden
methode niet toegestaan Methode is niet toegestaan
Verzoek time-out Verzoek time-out
Conflict Conflict
Lengte vereist Lengte vereist
Aanvraag entiteit te groot Verzoekobject is te groot
5xx: Serverfoutcodes
Interne Server Fout Interne Server Fout
Niet geïmplementeerd Niet geïmplementeerd
Service onbeschikbaar Dienst is niet beschikbaar
HTTP-versie niet ondersteund Niet-ondersteunde HTTP-versie

De statusbalk wordt gevolgd door de kopteksten (algemeen, antwoord en object) en mogelijk de berichttekst.

Een van de belangrijkste functies van een webserver is het verlenen van toegang tot een deel van het lokale bestandssysteem. Om dit te doen, wordt een bepaalde directory gespecificeerd in de serverinstellingen, dit is de root voor deze server. Om een ​​document te publiceren, dat wil zeggen om het beschikbaar te maken voor gebruikers die deze server hebben "bezocht" (er een verbinding mee hebben gemaakt via HTTP), moet u dit document kopiëren naar de hoofdmap van de webserver of naar een van zijn submappen . Bij het verbinden via het HTTP-protocol wordt op de server een proces met gebruikersrechten gemaakt, dat in de regel niet bestaat, maar speciaal is gemaakt om de bronnen van de server te bekijken. Door de rechten en machtigingen van deze gebruiker te configureren, kunt u de toegang tot webbronnen beheren.

Laten we eens kijken naar het eenvoudigste voorbeeld van een HTTP-verzoek. Als we in het adresvenster van de browser het adres http://yandex.ru typen, bepaalt de browser het IP-adres van de server yandex.ru en stuurt het het volgende HTTP-verzoek op de 80e poort:

GET http://yandex.ru/ HTTP / 1.0

Accepteren: afbeelding / gif, afbeelding / x-xbitmap, afbeelding / jpeg, afbeelding / pjpeg, applicatie / vnd.ms-excel, applicatie / msword, applicatie / vnd.ms-powerpoint, * / *

Accepteer-taal: ru

Cookie: yandexuid = 2464977781018373381

User-Agent: Mozilla / 4.0 (compatibel; MSIE 5.5; Windows 98)
Gastheer: yandex.ru

Verwijzer: narod.ru

Proxy-verbinding: Keep-Alive

Het verzoek wordt verzonden in niet-versleutelde tekst. Het belangrijkste deel van het verzoek bevindt zich in de eerste regel: dit is het verzoektype (GET), het URL-adres van het gevraagde document (http://yandex.ru) en de versie van het HTTP-protocol (HTTP / 1.0 ). Hieronder volgen de aanvraagparameters. Elke regel komt overeen met één parameter. De regel begint met de naam van de parameter, gevolgd door een dubbele punt en de waarde van de parameter.

Accepteren is het type gegevens dat de browser kan accepteren (MIME-gecodeerd).

Accept-Language is de voorkeurstaal waarin de browser gegevens wil accepteren. User-Agent - het type programma dat het verzoek heeft verzonden.

Host - DNS (of IP) naam van de host waaraan het verzoek is gericht.

Cookie - cookies (gegevens die door de server zijn opgeslagen op de lokale schijf van de client bij het laatste bezoek aan deze host).

Verwijzer - de host vanaf wiens pagina we het verzoek verzenden. Dus als we bijvoorbeeld op de pagina http://narod.ru zijn en daar op de link http://yandex.ru klikken, wordt het verzoek naar de host yandex.ru gestuurd en wordt het veld voor de verwijzingsaanvraag zal de hostnaam van narod.ru bevatten.

De set queryparameters staat niet vast. Naast het bovenstaande kunnen er nog andere parameters zijn.

De meest interessante parameters zijn referer en cookie. Deze parameters worden voornamelijk gebruikt om de gebruiker bij de server te authenticeren.

Een GET-verzoek kan gegevens bevatten die van de client naar de server zijn doorgegeven. Ze worden rechtstreeks via de URL doorgegeven met behulp van het CGI-protocol. De gegevens worden van de URL gescheiden door een "?" en zijn verbonden met het "&" teken:

KRIJGEN ?<параметр 1>=<значение 1>&<параметр 2>=<значение 2>&…

Dit type gegevensoverdracht naar de server is handig, maar heeft beperkingen op het volume. Te grote hoeveelheden gegevens kunnen niet via de URL worden overgedragen. Voor dergelijke doeleinden is er een ander type verzoek: een POST-verzoek. Een POST-verzoek lijkt erg op een GET-verzoek, met het enige verschil dat de gegevens in het POST-verzoek afzonderlijk van de verzoekheader zelf worden verzonden:

De hoofdtekst van de aanvraag moet door een lege regel van de kop worden gescheiden. Als de server een lege string tegenkomt in een POST-verzoek, dan beschouwt alles wat erop volgt de hoofdtekst van het verzoek (verzonden gegevens). Let op het volgende: het formaat van de gegevens in de hoofdtekst van het POST-verzoek is willekeurig. Hoewel het CGI-formaat het meest wordt gebruikt, is het niet vereist. Bovendien vereist een POST-verzoek geen verzoekinstantie en kan het ook gegevens via een URL overbrengen.

Naast het CGI-formaat, soms ook het zg. meerdelige indeling (het formaat van de verzonden gegevens wordt bepaald door de parameter Content-Type):

Moderne browsers bevatten tools voor webontwikkelaars om informatie te krijgen over de postverzoeken die worden verzonden. Als u de headers van slechts een paar verzoeken hoeft te bekijken, zal het gebruik ervan eenvoudiger en sneller zijn dan andere methoden.

Als u Firefox gebruikt, kunt u de webconsole gebruiken. Het toont de verzoekheaders en de inhoud van de verzonden cookies. Om het te starten, opent u het browsermenu, klikt u op het item "Webontwikkeling" en selecteert u "Webconsole". Activeer in het paneel dat verschijnt de knop "Netwerk". Voer de naam van de methode - post in het filterveld in. Afhankelijk van uw doelen, klikt u op de knop van het formulier om het vereiste verzoek te verzenden of vernieuwt u de pagina. De console geeft het ingediende verzoek weer. Klik erop met de muis om meer details te zien.

Google Chrome-browser heeft krachtige hulpprogramma's voor foutopsporing. Om ze te gebruiken, klikt u op het pictogram met de afbeelding van een moersleutel en opent u vervolgens het item "Google Chrome configureren en beheren". Selecteer "Tools" en start "Developer Tools". Selecteer in de werkbalk het tabblad Netwerk en dien uw verzoek in. Zoek de gewenste aanvraag in de lijst en klik erop om de details te bestuderen.

De Opera-browser heeft ingebouwde ontwikkelaarstools voor Opera Dragonfly. Om ze te starten, klikt u met de rechtermuisknop op de gewenste pagina en selecteert u het contextmenu-item "Element inspecteren". Ga naar het tabblad Netwerk voor ontwikkelaarstools en dien uw verzoek in. Zoek het in de lijst en vouw het uit om de serverheaders en antwoorden te bekijken.

Internet Explorer 9 bevat een kit genaamd F12 Developer Tools die gedetailleerde informatie geeft over uitgevoerde verzoeken. Ze worden gestart door op de F12-knop te drukken of door het menu "Service" te gebruiken dat het item met dezelfde naam bevat. Ga naar het tabblad "Netwerk" om de aanvraag te bekijken. Zoek de opgegeven vraag in de samenvatting en dubbelklik om de details uit te vouwen.

De browsers Chrome en Internet Explorer 9 bevatten ingebouwde tools waarmee u het ingediende postverzoek tot in detail kunt onderzoeken. Gebruik deze voor volledige details of Firefox met de Firebug-plug-in geïnstalleerd. Het is erg handig om regelmatig vragen te onderzoeken, bijvoorbeeld bij het debuggen van sites.

Als u een verzoek wilt zien dat door een ander programma dan een browser is verzonden, gebruikt u de Fiddler HTTP-debugger. Het werkt als een proxyserver en onderschept verzoeken van elk programma en biedt ook zeer gedetailleerde informatie over hun headers en inhoud.