HTTP
A Wikipédiából, a szabad lexikonból.
| Protokollok | |
|---|---|
| Alkalmazási | FTP, HTTP, IMAP, IRC, POP3, SIP, SMTP, SNMP, SSH, Telnet, Bittorrent, ... |
| Szállítási | SCTP, TCP, RTP, UDP, IL, RUDP, ... |
| Hálózati | IPv4, IPv6, ... |
| Adatkapcsolati | Ethernet, Wi-Fi, Token ring, FDDI, PPP, ... |
| Fizikai | RS-232, 100Base-TX, 1000Base-TX, 10Base2, 10Base-T, ... |
A HTTP ( HyperText Transfer Protocol) az elsődleges mód információ átvitelére a World Wide Web hálózatán. Az eredeti szándék a HTML lapok publikálása és fogadása volt.
A HTTP fejlesztését a World Wide Web Consortium és az Internet Engineering Task Force munkacsoportjai hangolták össze. Együttműködésük eredeménye az RFC (Request For Comment) dokumentumok sora, melyek közül az RFC 2616 a ma leggyakrabban használatos HTTP/1.1 változatot definiálja.
A HTTP kérés/válasz jellegű protokoll ügyfél (kliens) és kiszolgáló (szerver) között. Egy HTTP-ügyfél, mint például egy webböngésző, a távoli hoszt egy megadott (alapértelmezetten 80-as) portjára való TCP/IP csatlakozással kezdeményezi a lekérdezést. A portot figyelő HTTP-kiszolgáló az ügyféltől egy kérés-sztringet vár (pl. GET / HTTP/1.1, ami az alapértelmezett dokumentumot kéri el), amelyet esetleg követ egy emailszerű MIME üzenet, amely számos tájékoztató fejléc-elemet tartalmazhat, amelyek leírják a kérés különböző jellemzőt, és mindezt követheti tetszőleges adat-rész. A kérést (és az esetleges kiegészítő üzenetet) megkapva, a kiszolgáló egy válasz-sztringet küld vissza, mint pl. 200 OK, amelyet a saját üzenetblokkja követhet, úgymint az igényelt állomány, egy hibaüzenet vagy más információ.
[szerkesztés] HTTP kérés
- GET - A leggyakrabban használt, statikus erőforráskérés az URL definiálásával.
- POST - Hasonló a GET-hez, kivéve az üzenet testet. Jellemzően kulcs-érték párokat tartalmaz egy HTML formelküldése után, amit a kérésben küldenek el.
- PUT - Fájlok feltöltésére szolgál egy megadott URL-re a szerveren.
- DELETE - Ritkán implementált.
- HEAD - Azonos a GET-tel, kivéve, hogy a lap tartalmát nem adja vissza, csak a fej részt. Hasznos meta-információk lekérdezésére.
- TRACE - Visszküldi a fogadott kérést, így a kérő láthatja, hogy milyen köztes szerverek nyúlnak hozzá a kéréshez.
- OPTIONS - Visszaadja a szerver által támogatott módokat. Ezzel lehet ellenőrizni egy webszerver képességeit.
- CONNECT - Ritkán implementált. Proxy-val használható, ami átváltja a folyamot SSL csatornává.
A HTTP a többi TCP alapú protokolltól abban tér el, hogy egy-egy kérés (vagy azok összefüggő sorozatának) megválaszolása után a kapcsolat felbomlik. Ez a felépítés ideálissá teszi a HTTP-t a World Wide Web számára, ahol a hivatkozások rendszerint más kiszolgálókra mutatnak. Ugyanakkor ez a működés problémát jelent a webfejlesztőknek, akik perzisztens kapcsolat híján a felhasználói állapotkezelés más módozatait kénytelenek kidolgozni. Ezen módszerek közül sok az ún. „sütit” (cookie) használja erre a célra.
A HTTP-nek létezik egy biztonságos változata, a HTTPS, amely bármilyen titkosítást képes kezelni, amit a kapcsolat mindkét oldala megért.
A HTTP-beli helyeket az ún. egységes erőforrásmutatók (Uniform Resource Locator - URL) segítségével adjuk meg. E címek szintakszisa a HTML-hivatkozások számára készült.
[szerkesztés] Példa
Egy HTTP szerver és egy HTTP kliens közötti kommunikáció olvasható alul, a szerver a www.google.com címen, a 80-as porton fut.
Kliens kérés:
GET / HTTP/1.1 Host: www.google.com
(új sor követi, kocsi vissza (CR,#10) és soremelés (LF,#13) formában) A "Host" különbséget tesz az egy IP címen osztozó, de különböző DNS nevek között. A HTTP/1.0-ban opcionális, a HTTP/1.1-ben kötelező.
Szerver válasz:
HTTP/1.1 200 OK Content-Length: 3059 Server: GWS/2.0 Date: Sat, 11 Jan 2003 02:44:04 GMT Content-Type: text/html Cache-control: private Set-Cookie: PREF=ID=73d4aef52e57bae9:TM=1042253044:LM=1042253044:S=SMCc_HRPCQiqyX9j; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com Connection: keep-alive
(üres sor követi, majd HTML szöveg következik a Google honlapjával)


Based on work by