Links ::  | DEV web management system | Katalóg | Webhosting | Recepty
  
 Index | Registrácia | Hľadať | Galéria | BoardNeprihlásený užívateľ  //Pondelok, 20. Novembra 2017 
Navigation
Index
Top 10 autorov
Top 20 článkov
Hľadať
Galéria

Zones
Asp.(NET)
C/C++
Flash
Grafika+Design
Hardware
Hry
Html/Css/Xml
Java
Linux
Networks
Operačný systém
Pascal/Delphi
PHP
Security
Software
SQL
Visual Basic
Wap/Wml
Windows
Zóna iné

Links
Script index Interval.cz Pc.sk Regedit.sk TipyaTriky.sk Builder.cz Asp.cz Živě.sk Zoznam.sk Code.box.sk Root.cz Quant&Financial

Odkazy

Sessions
Stránky Developer.sk si práve číta 371 čitateľov, z toho je 0 zaregistrovaných

BackEnd
Odkazy na nové články je možné preberať pomocou backend.php

kuk

    Protokol HTTP a Cookies

Interaktívne internetové aplikácie založené na technológií www komunikujú s klientom pomocou cookies. Keďže cookies vychádzajú z definície protokolu http, cieľom tohto článku je objastniť jeho činnosť.



Protokol http je dedným zo stavebných kameňov služby world-wide web. http je aplikačný protokol, ktorý sa používa na prenos hypertextových dokumentov medzi klientom a serverom. Jedným z najväčších nedostatkov protokolu http je jeho bezstavovosť. Každá požiadavka klienta na server je z hľadiska komunikácie chápaná ako jedna operácia. Jednotivé operácie, ktoré sa vykonávajú pri komunikácií sú od seba navzájom nezávislé. Server nedokáže identifikovať ako so sebou jednotlivé požiadavky súvisia.
Pre množstvo apikácií je však potrebné pri prechode stránkami zachovať rôzne stavové informácie. Cookies čiastočne riešia bezstavovosť protokolu http.
Protokol http je navrhnutý na komunikačnu architektúru klient/server. Klient (browser) pošle http požiadavku na server. Server požiadavku spracuje a vyšle odpoveď naspäť klientovi. Aby komunikácia medzi klientom a serverom bola navzájom úplne kompatibilná, musí existovať presný formát požiadaviek a odpovedí. Tento formát definuje práve protokol http.
V dnešnej dobe existujú tri verzie protokolu http. Verzia 0.9, 1, 1.1. Protokoly sa od seba mierne líšia vlastnosťami a schopnosťami. Najstaršia verzia – 0.9 dokáže dáta prenášať iba metódou GET. Verzia 1.0 a 1.1 má viacero implementovaných metód na prenos hypertextových dokumentov. Predovšetkým sa jedná o metódy PUT (prenos html dokumentov smerom na server) a DELETE (odstránenie dokumentu zo servera). Ďalšie metódy CONNECT, TRACE, OPTIONS slúžia na analýzu akonfiguráciu spojenia.

Formát požiadavky

Požiadavka, ktorú klient zasiela serveru musí mať presný formát. http požiadavka nesie niekoľko informácií o požadovanom dokumente – jeno url adresu, metódu prenosu a verziu protokolu, ktorým dokáže komunikovať. S http požiadavkou sa posielajú aj rôzne doplnkové informácie – takzvané hlavičky.

Syntax požiadavky je nasledovná:

<<metoda>> <<URL dokumentu>> <<verzia HTTP>>
<<hlavička>>
.
.
<<hlavička>>
<<prázdny riadok>>


Na začiatku http požiadavky je metóda prenosú dát, nasleduje url adresa požadovaného dokumentu, verzia komunikačného protokolu.

Po týchto štandardných informáciách sa nachádzajú hlavičky nesúce rôzne ifnormácie o klientovi. Každá hlavička má svoj názov a nesie jednu hodnotu:

<<názov hlavičky>>: <<hodnota>>

Príklad http požiadavky vo verzii http/1.0:

GET /~folder/file.html HTTP/1.0
Pragma: no-cache
Cache-Control: no-cache


Existuje množstvo http hlavičiek, časť z nich sa nachádza tu:

Date - Obsahuje informáciu o čase vytvorenia správy
Cache-Control - Pomocou tejto hlavičky sa nastavuje chovanie vyrovnávacej pamäťe proxy-servera
Connection - AK chce klient alebo server uzatvoriť spojenie, pošle ako hodnotu tejto hlavičky výraz „close“
Authorization - Informácie o authorizácií klienta. Hlavička obsahuje meno použitého authorizačného mechanizmu
Host - Hlavička definuje doménovú adresu servera pri kladení požiadavky
Referer - Hlavička nesie adresu stránky, na ktorej bola získaná url práve kladenej požiadavky. Hlavička sa stala príčinou bezpečnostnej diery pri niektorých freemail serveroch.
User-Agent - V tejto hlavičke posiela prehliadač svoju identifikáciu

Formát odpovede

Reakciou na požiadavku klienta je http odpoveď. Http odpoveď nesie informácie o verzií použitého komunikačného protokolu, stavové kódy a hlásenia. Obsahom http odpovede je aj požadovaný html dokument. Formát http odpovede je nasledovný:

<<protokol>> <<stavový kód>> <<stavové hlásenie>>
<<hlavičky>>
.
.
<<hlavičky>>
<<prázdny riadok>>
<<obsah odpovede-html>>


Stavový kód nesie informáciu o tom, ako sa podarilo požiadavku vykonať (prípadne nevykonať). Stavové hlásenie je slovnou reprezentáciou stavového kódu.

V nasledujúcej tabuľke je prehľad stavových kódov:

1xx - Information codes
100	Continue
101	Switching Protocols
2xx - Request was successfully processed
200	OK
201 	Created
202	Accepted
204	No content
3xx - Redirection
300	Multiple choices
301	Moved Permanently
302	Moved Temporarily
304	Not Modified
4xx - Client error
400	Bad Request
401	Unauthorized
403	Forbidden
404	Not found
405	Method not allowed
406	Not Acceptable
408	Request Timeout
410	Gone
415	Unsupported media type
5xx – Server error
500	Internal Server Error
501	Not Implemented
502	Bad Gateway
503	Service Unavaiable
505	http version not supported


Cookies

Ako som už v predošlom texte spomínal, http protokol je nestavový a nedáva serveru šancu zistiť, či si klient daný html dokument žiada prvý krát, alebo či už bol žiadaný viacej krát. Z pohľadu php tiež nie je žiadna možnosť zistiť, či už klient so skriptom niekedy pracoval. Cookies čiatočne rieši nestavovosť protokolu http. Sú to krátke informácie, ktoré sa ukladajú na strane klienta. Ukladanie cookies má na starosti web prehliadač, ktorý ich posiela spolu s http odpoveďou vor forme hlavičiek. Cookies sú okamžite ukladané na pevný disk klienta. Od tohto okamihu sa cookies budú pribalovať vo forme hlavičiek ku každej http požiadavke smerujúcej na server, ktorý cookie uložil. Takto sa nemôže stať že nejakému serveru bude odoslaná cudzia cookies. Ukladanie informácií na strane klienta má dalekosiahle použitie.
Pomocou cookies sa dá napríklad evidovať, koľko krát návštevník na danú stránku pristúpil, a to tak, že pri každej http odpovedi sa hodnota príslušnej cookie pozdvihne o 1. Do cookies si server môže ukladať aj množstvo nastavení, ktoré klient na danom webe vykonal. Cookies sa dajú využiť aj pri budovaní prihlasovacieho mechanizmu servera. Klient sa tak pri prvej návšteve servera autentifikuje pomocou štandardných prihlasovacích údajov – mena a hesla. Klient mu obratom pošle cookie, ktorá nesie informáciu o tom, že klient sa legitímne prihlásil, a že má authorizovaný prístup na daný server. PHP, ako skriptovací jazyk má plnú podporu pre čítanie a ukladanie cookies.

Uloženie cookies:

Cookies sa klientovi posielajú v http hlavičke, ktorá má formát:

Set-Cookie: <<meno>>=<<hodnota>>; expires=<<datum>>; 
            domain=<<doménová adresa>>
<<meno>> Nesie meno cookies, ktorá sa uloží u klienta
<<hodnota>> Hodnota, ktorú nesie cookies
<<expires>> Tento atribút určuje do kedy ma cookie platnosť. Po tomto dátume nebude možné cookie odoslať na server
<<domain>> Doménová adresa, na ktorú bude možné cookies zasielať.

Na ukladanie hlavičiek slúži v php funkcia Header. Je nevyhnutné, aby ste použili funkciu header pred akýmkoľvek výstupom.

Syntax: Header (<<hlavička>>);

Príklad: Header ("Set-Cookie: name=value");

Ak chcete ukladať cookis pomocou php, nemusíte poznať presný formát hlavičiek Set-Cookie. Na ukladanie cookies slúži v php funkcia SetCookie, ktorá sa postará o vygenerovanie potrebnej hlavičky:

Syntax: SetCookie (<<nazov>>,<<hodnota>>,<<datum expiracie>>);

<<meno>> Nesie meno cookies, ktorá sa uloží u klienta
<<hodnota>> Hodnota, ktorú nesie cookies
<<expires>> Dátum expirácie cookies v unix formáte. Ak chcete, aby cookies mala platnosť 1 hodinu. Použite zápis Time()+3600

Príklad: SetCookie ("Your name","Bill",Time()+3600);

Čítanie cookies:

Cookies sa odosielajú vo forme hlavičiek s každou požiadavkou serveru, ktorý dané cookies uložil. Z toho treba vychádzať aj pri snahe čítať cookies z php skriptov.

Cookies sú posielané serveru v tvare:

Cookie: <<meno1>>=<<hodnota1>>; <<meno1>>=<<hodnota1>>

Php automaticky všetky došlé cookies transformuje do premenných. Ak má cookies názov cookie1, jej hodnota bude v php uložená v premennej $cookie1. V premennej $HTTP_COOKIE sa nachádza asociatívne pole všetkých došlých cookies.


Autor : Dev, čítané 11278x, komentárov: 0
Hodnotenie :    |  Nedeľa, 28. Decembra 2003

Pridať nový komentár/Komentáre
Vaše hodnotenie :   horšie  lepšie
Login
Login:
Heslo:

Hľadať
 
v článkoch
v diskusiach
v komentároch

Top read
PHP Coder

Priklady v C. 1.čast.

DEV web management system

Php a bezpečnosť skriptov

Autorun CD

Top discuss
Jednoduchý web formulár (ASP.NET)

Delphi seriál: (1.časť)

Velmi rychla grafika v Pascale

DEV web management system

Naša ikona
Páčia sa Vám naše stránky ? Ak áno, podporte nás prosím a umiestnite si na svoju stránku našu ikonku:





Copyright (c) Developer.sk, All rights reserved.
Powered by DEV web management system