Webové protokoly. Co je to webová služba. Základní aspekty HTTP

World Wide Web je hotová platforma pro vytváření a používání distribuovaných strojově orientovaných systémů založených na webových službách. Webový server funguje jako aplikační server, ke kterému nemají přístup koncoví uživatelé, ale aplikace třetích stran. To vám umožní znovu použít funkční prvky, odstranit duplicitu kódu a zjednodušit řešení problémů s integrací aplikací.

webová služba, webová služba(anglicky web-service) je síťová technologie, která zajišťuje meziprogramovou interakci založenou na webových standardech. W3C definuje webovou službu jako „softwarový systém navržený pro podporu interoperabilní komunikace mezi stroji přes síť“.

Webové služby: koncepty a protokoly

Webová služba je identifikována řetězcem URI. Webová služba má softwarové rozhraní prezentované ve strojově zpracovatelném formátu. Jiné systémy komunikují s touto webovou službou výměnou protokolových zpráv. Jako přenos zpráv se používá protokol HTTP. Popisy webových služeb a jejich API lze nalézt pomocí . Koncepční schéma technologie je znázorněno na a vztah mezi protokoly je znázorněn na Obr. 2.

Rýže. 1. Koncept webové služby

  • MÝDLO(Simple Object Access Protocol) - protokol pro výměnu zpráv mezi spotřebitelem a poskytovatelem webových služeb;
  • WSDL(Web Services Description Language) - jazyk pro popis externích rozhraní webové služby;
  • UDDI(Universal Discovery, Description and Integration) je univerzální rozhraní pro rozpoznávání, popis a integraci sloužící k vytvoření katalogu webových služeb a přístupu k němu.

Rýže. 2. Protokoly webových služeb

Všechny specifikace použité v technologii jsou založeny na XML a podle toho přebírají jeho výhody (strukturalita, flexibilita atd.) a nevýhody (neskladnost, pomalost).

MÝDLO

SOAP (původně Simple Object Access Protocol, a ve verzi 1.2 chybí oficiální dekódování zkratky) je jednoduchý protokol pro přístup k objektům (komponentám distribuovaného výpočetního systému), založený na výměně strukturovaných zpráv. Jako každý textový protokol lze SOAP použít s jakýmkoli protokolem aplikační vrstvy: SMTP, FTP, HTTPS atd., ale nejčastěji se SOAP používá přes HTTP.

Všechny zprávy SOAP jsou formátovány ve struktuře tzv obálka(obálka), která obsahuje následující prvky:

  • ID zprávy (místní název).
  • Volitelný prvek záhlaví:
    • V tomto jmenném prostoru není k dispozici žádná nebo více vlastností.
  • Povinný prvek těla (tělo zprávy)
    • Žádné nebo více odkazů na použité jmenné prostory;
    • Podřízené prvky těla zprávy

Podrobný seznam prvků zprávy SOAP je uveden v datovém schématu (pro SOAP verze 1.2).

Ukázka zprávy SOAP:

Obálka xmlns:env=" http://www.w3.org/2003/05/soap-envelope"> Záhlaví> 1 2001-06-22T14:00:00-05:00 Záhlaví> Tělo> Vstávat v 6:30 Tělo> Obálka>

XML-RPC: Není konkurentem, ale alternativou k SOAP

XML-RPC je velmi jednoduchý a efektivní protokol pro komunikaci webových služeb. Není navržen tak, aby řešil globální problémy jako SOAP, ale je široce používán v mnoha webových aplikacích.

Koncept XML-RPC

Tabulka 1. Základní prvky protokolu WSDL.

prvek WSDL 1.1 prvek WSDL 2.0 Stručný popis
PortType Rozhraní Představuje popis rozhraní webové služby (seznam operací a jejich parametrů).
Servis Servis Seznam funkcí systému
Vazba Vazba Určuje rozhraní a nastavuje parametry vazby s protokolem SOAP: styl vazby (RPC/Document) a transport (SOAP). Tato sekce je také dostupná pro každou z operací
Operace Operace Definuje operaci prezentovanou webovým serverem. Operace WSDL je analogická tradičním funkcím a procedurám.
Zpráva nepoužívané Zpráva spojená s konkrétní operací. Obsahuje informace potřebné k provedení dané operace. Každá zpráva se může skládat z několika logických částí popisujících datové typy a názvy atributů. Ve verzi 2.0 to bylo vyloučeno, protože Pro všechny prvky byla zavedena podpora schématu XML.
Typy Typy Popis dat v souladu se schématem XML.

Rýže. 3. Struktura protokolu WSDL

Specifikace WSDL 1.1 definovala 4 vzory výměny zpráv (typy operací):

  • Jednosměrné operace: Operace může přijmout zprávu, ale nevrátí odpověď.
  • Požadavek-odpověď: Operace může přijmout požadavek a musí vrátit odpověď.
  • Otázka-odpověď (Solicit-response): operace může odeslat požadavek a bude čekat na odpověď.
  • Upozornění: Operace může odeslat zprávu, ale nebude čekat na odpověď.

Ve WSDL 2.0 jsou tyto šablony upraveny a rozšířeny tak, aby podporovaly chybové zprávy (například šablona Robust-in-only), ale typy WSDL 1.1 jsou podporovány kvůli zpětné kompatibilitě.

UDDI spoléhá na průmyslové standardy HTTP, XML, XML Schema (XSD), SOAP a WSDL. Koncepční vztah mezi UDDI a dalšími protokoly v zásobníku webových služeb je znázorněn v .

Rýže. 4. Místo UDDI v zásobníku protokolů webových služeb

Funkce registru UDDI je reprezentovat data a metadata o webových službách. Lze jej použít jak ve veřejné síti, tak v rámci vnitřní infrastruktury organizace. Registr UDDI poskytuje na standardech založený mechanismus pro klasifikaci, katalogizaci a správu webových služeb, takže webové služby mohou být používány jinými aplikacemi. Tento mechanismus zahrnuje prostředky pro nalezení služby, vyvolání této služby a správu metadat o této službě.

Klíčovými funkcemi UDDI je publikování informací o službě do registru a to, že aplikace třetích stran tyto informace vyhledávají. Spolu s nimi jsou implementovány také funkce typické pro adresářovou službu: reprezentace uloženého datového modelu a struktury infobáze, vztahy mezi objekty registru, replikace, zabezpečení atd. —Všechny hlavní funkce registru jsou prezentovány jako webové služby a jsou přístupné prostřednictvím UDDI API.

Webové služby: Pro et Contra

Výhody

  • Zajistit interakci softwarových systémů bez ohledu na platformu.
  • Založeno na otevřených standardech a protokolech.
  • Použití HTTP umožňuje aplikacím komunikovat přes firewall.

Nedostatky

  • Nižší výkon a vyšší objem síťového provozu ve srovnání s technologiemi jako CORBA nebo DCOM.

Trvalá adresa této stránky:

Protokol je soubor dohod, které definují výměnu dat mezi různými programy. Protokoly definují způsob přenosu zpráv a zpracování chyb v síti a také umožňují vývoj standardů, které nejsou vázány na konkrétní hardwarovou platformu.

Síťové protokoly předepisují pravidla pro provoz počítačů připojených k síti. Jsou postaveny na víceúrovňovém principu. Protokol na určité úrovni definuje jedno z technických pravidel komunikace. V současnosti se pro síťové protokoly používá model OSI (Open System Interconnection). Model OSI je sedmivrstvý logický model síťového provozu. Model OSI je implementován skupinou protokolů a komunikačních pravidel organizovaných do několika vrstev.

Na fyzické úrovni jsou určeny fyzikální (mechanické, elektrické, optické) charakteristiky komunikačních linek.

Na úroveň odkazu jsou určena pravidla pro použití fyzické vrstvy uzly sítě.

- Síťová vrstva odpovídá za adresování a doručování zpráv.

- Transportní vrstvařídí pořadí přenosu složek zprávy.

Úkol úroveň relace- koordinace komunikace mezi dvěma aplikačními programy běžícími na různých pracovních stanicích.

- Prezentační vrstva slouží k převodu dat z interního počítačového formátu do přenosového formátu.

- Aplikační vrstva je hranicí mezi aplikačním programem a ostatními úrovněmi. Aplikační vrstva poskytuje pohodlné komunikační rozhraní pro uživatelské síťové programy.

TCP/IP protokol jsou dva protokoly nižší úrovně, které jsou základem internetové komunikace. TCP protokol(Transmission Control Protocol) rozděluje přenášené informace na části a čísluje všechny části. Použitím IP protokol(Internet Protocol) všechny části jsou přenášeny k příjemci. Dále se pomocí protokolu TCP zkontroluje, zda byly přijaty všechny díly. Při příjmu všech částí je TCP umístí do požadovaného pořadí a sestaví je do jediného celku.

Nejznámější protokoly používané na internetu:

HTTP (Hyper Text Transfer Protocol) je hypertextový přenosový protokol. Protokol HTTP se používá k odesílání webových stránek z jednoho počítače do druhého.

FTP (File Transfer Protocol) je protokol pro přenos souborů ze speciálního souborového serveru do počítače uživatele. FTP umožňuje předplatiteli vyměňovat si binární a textové soubory s jakýmkoli počítačem v síti. Po navázání spojení se vzdáleným počítačem může uživatel zkopírovat soubor ze vzdáleného počítače do svého nebo zkopírovat soubor ze svého počítače na vzdálený.

POP (Post Office Protocol) je standardní protokol pro připojení pošty. Servery POP zpracovávají příchozí poštu a protokol POP je navržen pro zpracování poštovních požadavků od klientských poštovních programů.



Standard SMTP (Simple Mail Transfer Protocol). určuje sadu pravidel pro odesílání pošty. Server SMTP vrátí buď potvrzení, nebo chybovou zprávu, nebo požaduje dodatečné informace.

Protokol UUCP (Unix to Unix Copy Protocol) je dnes již zastaralý, ale stále používaný protokol pro přenos dat, včetně e-mailu. Tento protokol zahrnuje použití paketového způsobu přenosu informací, při kterém se nejprve vytvoří spojení klient-server a odešle se datový paket, který se poté nezávisle zpracovává, prohlíží nebo připravuje.

TELNET je protokol vzdáleného přístupu. TELNET umožňuje účastníkovi pracovat na libovolném počítači na internetu, jako by byl jeho vlastním, to znamená spouštět programy, měnit provozní režim atd. V praxi jsou možnosti omezeny úrovní přístupu zadanou správcem vzdáleného počítače.

DTN - protokol určený k poskytování kosmické komunikace na ultra dlouhé vzdálenosti.

Umožňuje přijímat různé zdroje, jako jsou dokumenty HTML. Protokol HTTP je základem výměny dat na internetu. HTTP je komunikační protokol klient-server, což znamená, že požadavky na server iniciuje sám příjemce, obvykle webový prohlížeč. Výsledný výsledný dokument se bude (může) skládat z různých dílčích dokumentů, které jsou součástí výsledného dokumentu: například samostatně přijatý text, popis struktury dokumentu, obrázky, video soubory, skripty a mnoho dalšího.

Klienti a servery spolu komunikují výměnou jednotlivých zpráv (spíše než proudem dat). Zprávy odeslané klientem, obvykle webovým prohlížečem, se nazývají žádosti a jsou volány zprávy odeslané serverem odpovědi.

Ačkoli HTTP byl vyvinut na počátku 90. let, byl neustále vylepšován díky své rozšiřitelnosti. HTTP je protokol aplikační vrstvy, který nejčastěji využívá možnosti jiného protokolu – TCP(nebo TLS- zabezpečený TCP) - pro přeposílání svých zpráv lze však teoreticky použít jakýkoli jiný spolehlivý transportní protokol k doručování takových zpráv. Díky své rozšiřitelnosti se používá nejen k tomu, aby klient mohl přijímat hypertextové dokumenty, obrázky a videa, ale také k přenosu obsahu na servery např. pomocí HTML formulářů. HTTP lze také použít k načtení pouze částí dokumentu za účelem aktualizace webové stránky na vyžádání (například prostřednictvím požadavku AJAX).

Komponenty systémů založených na HTTP

HTTP je protokol klient-server, to znamená, že požadavky zasílá jedna strana – účastník výměny (user-agent) (nebo místo toho proxy). Nejčastěji je účastníkem webový prohlížeč, ale může to být kdokoli, například robot cestující po webu za účelem doplňování a aktualizace dat indexování webových stránek pro vyhledávače.

Každá žádost žádost) je odeslána na server, který jej zpracuje a vrátí odpověď (eng. odpověď). Mezi těmito požadavky a odpověďmi je obvykle mnoho zprostředkovatelů proxy, které provádějí různé operace a fungují jako brány resp cache, Například.

Mezi prohlížečem a serverem je obvykle mnohem více různých zprostředkujících zařízení, která hrají určitou roli při zpracování požadavku: směrovače, modemy a tak dále. Vzhledem k tomu, že Síť je postavena na základě systému interakčních úrovní (vrstev), jsou tito zprostředkovatelé „skrytí“ na úrovni sítě a transportu. V tomto systému vrstvení HTTP zaujímá nejvyšší vrstvu, která se nazývá „aplikační“ vrstva (nebo „aplikační vrstva“). Znalost síťových vrstev, jako je prezentace, relace, transport, síť, spojení a fyzická, je důležitá pro pochopení síťového provozu a diagnostiku možných problémů, ale není nutná pro popis a pochopení HTTP.

Klient: účastník burzy

Uživatelský agent je jakýkoli nástroj nebo zařízení, které jedná jménem uživatele. Tento úkol primárně provádí webový prohlížeč; v některých případech jsou účastníky programy, které používají inženýři a weboví vývojáři k ladění svých aplikací.

Prohlížeč Vždy je entita, která vytváří požadavek. Server to obvykle nedělá, ačkoli v průběhu let síť vyvinula způsoby, jak umožnit plnění požadavků na straně serveru.

Pro zobrazení webové stránky odešle prohlížeč počáteční požadavek na získání HTML dokumentu dané stránky. Poté prohlížeč tento dokument prozkoumá a vyžádá si další soubory potřebné k zobrazení obsahu webové stránky (spustitelné skripty, informace o rozložení stránky – šablony stylů CSS, další zdroje ve formě obrázků a videosouborů), které jsou přímo součástí zdrojový dokument, ale umístěný jinde v síti. Dále prohlížeč propojí všechny tyto zdroje, aby je zobrazil uživateli ve formě jediného dokumentu – webové stránky. Skripty spouštěné samotným prohlížečem mohou v pozdějších fázích zpracování webové stránky přijímat další zdroje přes síť a prohlížeč podle toho aktualizuje zobrazení dané stránky uživateli.

Webová stránka je hypertextový dokument. To znamená, že některé části zobrazeného textu jsou odkazy, které lze aktivovat (obvykle kliknutím na tlačítko myši) pro načtení a tím zobrazení nové webové stránky (po odkazu). To umožňuje uživateli „procházet“ webovými stránkami (Internet). Prohlížeč tyto hypertextové odkazy převede na HTTP požadavky a následně zobrazí přijaté HTTP odpovědi v uživatelsky přívětivé podobě.

webový server

Na druhé straně komunikačního kanálu je server, který obsluhuje (eng. sloužit) uživatel, který mu na požádání poskytne dokumenty. Z pohledu koncového uživatele je server vždy jeden virtuální stroj, který zcela nebo částečně generuje dokument, i když ve skutečnosti se může jednat o skupinu serverů, mezi kterými je zátěž vyvážena, tedy požadavky různých uživatelů. jsou redistribuovaný nebo komplexní software, který se dotazuje na jiné počítače (jako jsou servery pro ukládání do mezipaměti, databázové servery, aplikační servery elektronického obchodu a další).

Server nemusí být nutně umístěn na jednom počítači a naopak – na stejném počítači může být umístěno (hostováno) několik serverů. V souladu s verzí HTTP/1.1 a má Hostitel mohou dokonce sdílet stejnou IP adresu.

Proxy

Mezi webovým prohlížečem a serverem je velké množství síťových uzlů přenášejících HTTP zprávy. Díky své vrstvené struktuře většina z nich také operuje v transportní síti nebo fyzických vrstvách, čímž se stává transparentní pro vrstvu HTTP a potenciálně snižuje výkon. Tyto operace na úrovni aplikace se nazývají proxy . Mohou nebo nemusí být transparentní (neprojdou jimi úpravy požadavků) a mohou plnit mnoho funkcí:

  • ukládání do mezipaměti (mezipaměť může být veřejná nebo soukromá, jako mezipaměť prohlížeče)
  • filtrování (jako antivirové skenování, rodičovská kontrola, ...)
  • vyvažování zátěže (umožňuje více serverům obsluhovat různé požadavky)
  • autentizace (řízení přístupu k různým zdrojům)
  • protokolování (oprávnění k ukládání historie transakcí)

Základní aspekty HTTP

HTTP je jednoduché

I přes větší složitost zavedenou v HTTP/2 zapouzdřením zpráv HTTP do rámců je HTTP obecně jednoduchý a čitelný pro člověka. Zprávy HTTP mohou lidé číst a rozumět jim, což poskytuje snazší testování pro vývojáře a snižuje složitost pro nové uživatele.

HTTP - rozšiřitelný

Zavedeno v HTTP/1.0 HTTP hlavičky usnadnilo rozšíření a experimentování tohoto protokolu. Nové funkce lze dokonce zavést jednoduchou dohodou mezi klientem a serverem na sémantice nové hlavičky.

HTTP je bezstavový, ale má relaci

HTTP je bezstavový: neexistuje žádný vztah mezi dvěma požadavky, které jsou prováděny postupně přes stejné připojení. To okamžitě implikuje možnost problémů pro uživatele, který se pokouší interagovat s určitou stránkou postupně, například při použití nákupního košíku v elektronickém obchodě. Ale zatímco jádro HTTP je bezstavové, soubory cookie umožňují stavové relace. Pomocí rozšiřitelnosti záhlaví se do pracovního vlákna přidávají soubory cookie, což relaci umožňuje sdílet určitý kontext nebo stav při každém požadavku HTTP.

HTTP a připojení

Připojení je spravováno na transportní vrstvě, a proto zásadně překračuje hranice HTTP. Ačkoli HTTP nevyžaduje, aby byl základní transportní protokol založen na připojení, vyžaduje pouze spolehlivost nebo žádné ztracené zprávy (tj. alespoň reprezentace chyby). Mezi dvěma nejběžnějšími přenosovými protokoly na internetu je TCP spolehlivý, zatímco UDP nikoli. HTTP následně spoléhá na to, že standard TCP je založen na připojení, i když připojení není vždy vyžadováno.

HTTP/1.0 otevřelo připojení TCP pro každou výměnu požadavku/odpovědi se dvěma důležitými nevýhodami: otevření připojení vyžaduje výměnu více zpráv, a je proto pomalé, i když se stává efektivnější při odesílání více zpráv nebo při pravidelném odesílání zpráv: teplý spojení jsou efektivnější než studený.

Ke zmírnění těchto nedostatků zavedl protokol HTTP/1.1 zřetězení (které se ukázalo jako obtížné implementovat) a trvalá připojení: základní připojení TCP lze částečně ovládat pomocí hlavičky Spojení. HTTP/2 udělal další krok přidáním multiplexování zpráv přes jednoduché připojení, což pomáhá udržovat připojení teplé a efektivnější.

Probíhají experimenty s cílem vyvinout lepší přenosový protokol, který by byl vhodnější pro HTTP. Google například experimentuje s QUIC, který je založen na UDP, aby poskytl spolehlivější a efektivnější přenosový protokol.

Co lze ovládat přes HTTP

Přirozená rozšiřitelnost HTTP umožnila postupem času větší kontrolu a funkčnost webu. Mezipaměť a metody autentizace byly ranými funkcemi v historii HTTP. Schopnost uvolnit původní omezení naopak přibyla v 10. letech 20. století.

Následují běžné funkce spravované pomocí HTTP.


  • Server může dát proxy a klientům pokyn, co ukládat do mezipaměti a jak dlouho. Klient může přikázat mezipaměti proxy, aby ignorovaly uložené dokumenty.
  • Relaxační omezení zdroje
    Aby se zabránilo spywaru a dalšímu narušení soukromí, webový prohlížeč přísně odděluje webové stránky. Pouze stránky z stejný zdroj má přístup k informacím na webové stránce. Ačkoli jsou tato omezení pro server náročná, mohou hlavičky HTTP zmírnit přísné oddělení na straně serveru a umožnit dokumentu, aby se stal součástí informací z různých domén (z bezpečnostních důvodů).
  • Autentizace
    Některé stránky jsou dostupné pouze speciálním uživatelům. Základní autentizaci lze zajistit pomocí HTTP nebo pomocí hlavičky WWW-ověření a podobné, nebo zřízením speciální relace pomocí cookies.
  • Proxy a tunelování
    Servery a/nebo klienti jsou často umístěni na intranetu a skrývají své skutečné IP adresy před ostatními. Požadavky HTTP procházejí přes proxy, aby překročily tuto síťovou bariéru. Ne všechny proxy jsou HTTP proxy. Na nižší úrovni funguje například protokol SOCKS. Ostatní, jako je ftp, mohou být zpracovány těmito proxy.
  • Relace
    Použití HTTP cookie vám umožňuje přiřadit požadavek ke stavu na serveru. Tím se vytvoří relace, přestože HTTP je ve svém jádru bezstavový protokol. To je užitečné nejen pro nákupní košíky v internetových obchodech, ale také pro jakékoli stránky, které uživateli umožňují přizpůsobit si výstup.

HTTP stream

Když chce klient komunikovat se serverem, ať už je to konečný server nebo zprostředkující proxy, postupuje takto:

  1. Otevření TCP spojení: TCP spojení bude použito k odeslání požadavku nebo požadavků a přijetí odpovědi. Klient může otevřít nové připojení, znovu použít stávající nebo otevřít více připojení TCP k serveru.
  2. Odeslání zprávy HTTP: Zprávy HTTP (před HTTP/2) jsou čitelné pro člověka. Od HTTP/2 jsou jednoduché zprávy zapouzdřeny do rámců, což znemožňuje jejich přímé čtení, ale v zásadě zůstávají stejné.
  3. GET / HTTP/1.1 Hostitel: site Accept-Language: fr
  4. Čte odpověď ze serveru: HTTP/1.1 200 OK Datum: So, 09. října 2010 14:28:02 GMT Server: Apache Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT ETag: "51142bc1"74049-b4 Accept-Ranges: bytes Content-Length: 29769 Content-Type: text/html

Uzavře nebo znovu použije připojení pro další požadavky.

Je-li povolen kanál HTTP, lze odeslat více požadavků bez čekání na přijetí první odpovědi jako celku. Potrubí HTTP je obtížné integrovat do stávajících sítí, kde staré kusy softwaru koexistují s moderními verzemi. Potrubí HTTP bylo v HTTP/2 nahrazeno spolehlivějšími multiplexovanými požadavky v rámci.

HTTP zprávy

HTTP/1.1 a starší zprávy HTTP jsou čitelné pro člověka. V HTTP/2 jsou tyto zprávy vloženy do nové binární struktury, rámce, který umožňuje optimalizace, jako je komprese záhlaví a multiplexování. I když je část původní zprávy HTTP odeslána v této verzi HTTP, sémantika každé zprávy se nezmění a klient znovu vytvoří (prakticky) původní požadavek HTTP. Je také užitečné pro pochopení zpráv HTTP/2 ve formátu HTTP/1.1.

Existují dva typy HTTP zpráv, požadavků a odpovědí, každý v jiném formátu.

Žádosti

  • Příklady požadavků HTTP: HTTP metoda ZÍSKAT ,
  • Nadpisy(volitelné), které poskytují serveru další informace.
  • Nebo tělo, pro některé metody, jako je POST, které obsahuje odeslaný prostředek.

Odpovědi

Příklady odpovědí:

  • Verze protokolu HTTP.
  • Stavový kód HTTP s uvedením, zda byl požadavek úspěšný nebo proč selhal.
  • Stavová zpráva -- stručný popis stavového kódu.
  • HTTP hlavičky, podobně jako záhlaví v požadavcích.
  • Volitelné: tělo obsahující odesílaný prostředek.

Závěr

HTTP je snadno použitelný a rozšiřitelný protokol. Struktura klient-server ve spojení se schopností snadno přidávat hlavičky umožňuje HTTP posouvat se vpřed s rozšiřujícími se možnostmi webu.

Ačkoli HTTP/2 přidává určitou složitost vkládáním zpráv HTTP do rámců pro zlepšení výkonu, základní struktura zpráv zůstává u HTTP/1.0. Vlákno relace zůstává jednoduché, což vám umožní snadno prozkoumat a ladit.

Jakmile se klient připojí ke službě na konkrétním portu, získá přístup ke službě pomocí zavedeného protokolu. Protokol je předem vyvinutý postup pro výměnu informací mezi stranou, která si přeje službu využívat, a stranou poskytující službu. „Strana“, která službu potřebuje, může být člověk, ale nejčastěji je to počítačový program, například WEBový prohlížeč. Protokoly jsou často textové popisy postupu pro výměnu informací mezi klientem a serverem.

UNIX

Snad nejjednodušší protokol je pro denní službu. Pokud se připojíte k portu 13 stroje, který podporuje denní server, server odpoví aktuálním datem a časem a potom připojení odpojí. Protokol je následující: „Pokud klient naváže spojení s denním serverem, jsou mu odeslány údaje o datu a čase a poté je spojení přerušeno. Většina počítačů UNIX podporuje tento server. Můžete ho kontaktovat pomocí aplikace Telnet. V systému UNIX bude relace vypadat takto:

  • %telnet web67.ntx.net 13
  • Připojení k web67.ntx.net.
  • Znak zrušení "^]".
  • Neděle 25. října 08:34:06 1998

Windows

Na počítači se systémem Windows můžete k tomuto serveru přistupovat zadáním „telnet web67.ntx.net 13“ v okně MSDOS.

V tomto příkladu je web67.ntx.net serverový stroj UNIX a 13 je číslo portu pro denní službu. Aplikace Telnet se připojí k portu 13 (telnet se obvykle připojí k portu 23, ale můžete zadat jakýkoli jiný port, ke kterému se chcete připojit), poté server odešle údaje o datu a čase a poté připojení uzavře. Většina verzí Telnetu má možnost zadat číslo portu a tuto funkci lze použít bez ohledu na to, jaká verze Telnetu je na počítači nainstalována.

Většina protokolů je složitější než denní protokol a jsou definovány ve veřejně dostupných Request for Comments (RFC) (dobrý archiv všech RFC viz sunsite.auc.dk/RFC/). Každý WEB server na internetu splňuje požadavky protokolu HTTP, zkompilovaného v dokumentu The Original HTTP v roce 1991. Nejdůležitější forma protokolu, které HTTP server rozumí, obsahuje pouze jeden příkaz: GET. Pokud navážete spojení se serverem běžícím přes protokol HTTP a odešlete požadavek „GET file name“, server odpoví odesláním obsahu zadaného souboru zdroji požadavku a poté spojení odpojí. Typická relace vypadá takto:

  • %telnet site 80
  • Pokus o připojení k 78.110.59.235…
  • Spojení s pcwork.ru.
  • Znak zrušení "^]".
  • Připojení je zakázáno externím hostitelským počítačem.

V počáteční verzi protokolu HTTP bylo potřeba odeslat pouze skutečný název souboru, například [/] nebo protokol byl později změněn, aby mohl zpracovávat úplné adresy URL. To umožnilo společnostem, které se zabývají virtuálními doménami, v podmínkách, kdy se na jednom počítači nachází mnoho domén, používat jednu IP adresu pro všechny takové domény.

Pojďme si to shrnout

Po přečtení tohoto článku jste se toho hodně dozvěděli. Konkrétně nyní víte, že když zadáte adresu URL do prohlížeče, stane se následující:

  1. rozdělili URL na tři části:
  • Protokol („http“)
  • Název serveru („site“) – v poslední době je pozitivní trend zkracovat první tři písmena www
  • Název souboru („web server.htm“)
  • Prohlížeč kontaktuje jmenný server, aby přeložil název serveru na IP adresu, kterou tento prohlížeč používá k připojení k odpovídajícímu serveru.
  • Po obdržení IP adresy zadaný prohlížeč naváže spojení s WEB serverem, který má tuto IP adresu na portu 80.
  • V souladu s protokolem HTTP odešle prohlížeč na tento server požadavek GET, aby soubor přijal (Všimněte si, že spolu s požadavkem GET mohou být z prohlížeče na server odeslány soubory cookie - podrobnosti naleznete v článku o tom, jak soubory cookie práce).
  • Server odešle HTML text požadované WEB stránky do prohlížeče. (Soubory cookie lze také předávat ze serveru do prohlížeče v záhlaví stránky.)
  • Prohlížeč načte značky HTML a zobrazí odpovídající stránku na obrazovce monitoru.
  • Dodatek: Bezpečnost

    Z tohoto popisu můžeme usoudit, že WEB server může být docela jednoduchý program. Vezme název souboru odeslaný příkazem GET, najde hledaný soubor a odešle jej do prohlížeče. I přes veškerou správu portů a komunikační kód portu můžete snadno vytvořit program v jazyce C, který funguje jako jednoduchý WEB server s méně než 500 řádky kódu. Plnohodnotný podnikový WEB server je samozřejmě složitější, ale základní principy jeho fungování zůstávají stále velmi jednoduché.

    Většina serverů přidává do pracovního postupu určitou úroveň zabezpečení. K tomuto účelu slouží například stránky chráněné heslem. Když se pokusíte otevřít takovou stránku ve vašem prohlížeči, zobrazí se dialogové okno s výzvou k zadání uživatelského jména a hesla. Server poskytuje vlastníkovi WEBové stránky možnost používat seznam jmen a hesel lidí, kteří mají povolen přístup na tuto stránku; v tomto případě server umožňuje prohlížení stránky pouze těm, kteří mají příslušné heslo. Pokročilé servery mají další bezpečnostní funkce, které šifrují informace vyměňované mezi serverem a prohlížečem, což umožňuje odesílání citlivých informací, jako jsou čísla kreditních karet, přes internet.

    To jsou prakticky všechny funkce, které může server určený k odesílání standardních statických WEB stránek vykonávat. Statické stránky jsou ty WEB stránky, které se nemění, dokud je neupraví vývojář.

    Doplněk: Dynamické stránky

    A co dynamické WEB stránky? Například:

    • V každé knize recenzí je povoleno zanechávat zprávy ve formátu HTML a při příštím zobrazení se nově zadané informace uloží na tuto stránku.
    • Ve formuláři obrazovky Whois Network Solutions se jako odpověď na zadání názvu domény zobrazí webová stránka, jejíž vzhled závisí na zadaném názvu.
    • V každém vyhledávači se klíčová slova zadávají do formuláře HTML, načež stroj vytvoří stránku zobrazující výsledek vyhledávání pro tato slova.

    Ve všech výše uvedených případech WEB server nevyhledává pouze požadovaný soubor. Zpracuje přijaté informace a vytvoří WEB stránku, která určitým způsobem odpovídá přijatému požadavku. Téměř ve všech případech používá WEB server k řešení tohoto problému tzv. CGI proceduru.

    Každý serverový stroj zpřístupňuje služby z internetu pomocí očíslovaných portů, jeden pro každou službu dostupnou na serveru. Pokud má server například WEB server a FTP server, obvykle se k WEB serveru přistupuje přes port 80 a FTP server je přístupný přes port 21. Klienti se připojují ke službě výběrem vhodné adresy a připojením k vhodný port.

    Každá oblíbená služba má přiřazeno konkrétní číslo portu. Níže jsou uvedena nejčastěji používaná čísla portů:

    • echo 7
    • přes den 13
    • qotd 17 (citát dne)
    • ftp 21
    • telnet 23
    • smtp 25 (e-mail)
    • čas 37
    • nameserver 53 (názvový server)
    • přezdívka 43 (kdo je kdo)
    • gopher 70
    • prst 79
    • WWW 80

    Omezení

    Pokud serverový stroj umožňuje připojení k portu z Internetu a tento port není chráněn, můžete se k němu připojit odkudkoli z Internetu a používat odpovídající službu. Je třeba poznamenat, že neexistují žádná omezení vyžadující například připojení WEB serveru na port 80. Uvedením vlastního stroje do provozu a instalací softwaru WEB serveru na něj můžete v případě potřeby určit, že WEB server má fungovat , například na portu 918 nebo na jakémkoli jiném neobsazeném portu. Pak, pokud je stroj pojmenován xxx.yyy.com, můžete se k tomuto serveru připojit přes internet pomocí adresy URL xxx.yyy.com:918. Část ":918" výslovně označuje číslo portu a musí ji přidat kdokoli, kdo chce tento server kontaktovat. Pokud není zadán žádný port, prohlížeč se ve výchozím nastavení pokusí připojit ke společnému portu 80.



    
    Nahoru