Http server
Http server v aplikaci eClever slouží k podpoře víceuživatelských aplikací, her
a dalších aplikací, které je lepší řešit pomocí komunikace na bázi http protokolu,
než pomocí socket serveru. V mnoha případech se bude socket server
a http server doplňovat. Http serveru můžeme posílat příkazy pomocí metod GET nebo
POST. K volání http serveru je vždy nutné použít parametr action, ve kterém zadáváme
funkci, kterou chceme od http serveru vykonat. Jednotlivé funkce budou vysvětleny
v dalším textu. Tento http server není náhrada komerčních serverů pro www aplikace.
Je to podpora socket serveru pro případ, kdy potřebujeme http komunikaci.
Volání http serveru pomocí metody GET
http://ip:port/?action=function¶m1=value1¶m2=value2....¶mX=valueX
kde ip a port jsou parametry definované v eClever.config v sekci http-server/connections.
Pozn.
Každé volání http serveru může mít mnoho parametrů. Pouze jeden parametr je povinný,
a to parametr action.
Příklad
http://127.0.0.1:2722?action=cross-domain-policy.
Volání http serveru pomocí metody POST
http://ip:port/
U metody POST platí vše, co bylo řečeno o metodě GET, pouze parametry nejsou součástí
adresy, ale musí se zadat způsobem, který odpovídá metodě POST.
Příklad
http://127.0.0.1:2722/
Všechny funkce volané pomocí metody GET si můžete vyzkoušet pomocí normálního internetového
prohlížeče. U funkcí, které budou v parametrech vyžadovat zadávání speciálních znaků,
jako např. xml dokumenty, nebude možné používat metodu GET, ale pouze metodu POST.
Toto bude vždy zmíněno u každé funkce.
Vrácení chyby
Dojde-li k nějaké chybě v http serveru, vrátí http server xml dokument ve tvaru
<?xml version="1.0" encoding="utf-8"?>
<results>
<status errorCode="-1"/>
</results>
kde errorCode je číslo chyby.
Chyby, které mohou vznikat při čtení souborù ze serveru.
|
errorCode |
|
Popis chyby |
|
-1 |
|
Http server nezná funkci zadanou v parametru action. |
|
-2 |
|
Používáte neregistrovanou verzi XML Socket Multiuser Serveru - eClever
a http server umožní vykonat pouze 50 http příkazů. |
|
-3 |
|
IP adresa klienta je uvedena v sekci black-list v eClever.config. |
|
-4 |
|
IP adresa klienta není uvedena v sekci white-list v eClever.config. |
Další chyby budou definovány vždy u příslušné funkce.
Práce se soubory
Funkce, které vracejí soubory umístěné na serveru, používají parametr file.
Příklad volání metodou GET
http://127.0.0.1:2722?action=gettxt&file=abc.txt&user=john&password=d27B48
Jako
základní adresář použije http server adresář nastavený v atributu root v sekci http-server.
Od tohoto adresáře se odvíjejí adresáře vnořené. Pokud je např. v atributu root
nastaven adresář c:\eclever\http\ a v parametru file zadáme soubor chat\ekology\doc1.xml,
bude http server hledat tento soubor v adresáři c:\eclever\http\chat\ekology\.
Pokud chceme soubory v určitém adresáři zabezpečit, musíme do tohoto adresáře umístit
xml soubor, který má jméno eClever.auth a jeho struktura je:
<?xml version="1.0" encoding="utf-8"?>
<folder>
<authentication user="abc" password="aa2"/>
</folder>
kde user a password jsou přístupové údaje pro daný adresář.
V parametrech http dotazu musíme zadat parametry user a password, které se musí
shodovat se stejnojmennými parametry v souboru eClever.auth. Pokud v určitém adresáři
není umístěn soubor eClever.auth, nemusíme v http dotazu parametry user a password
používat.
Následující tabulka uvádí seznam chyb, které vrací http server klientovi při práci
se soubory.
|
errorCode |
|
Popis chyby |
|
10 |
|
Adresář zadaný v eClever.config v atributu root neexistuje. |
|
11 |
|
Soubor zadaný v parametru file neexistuje. |
|
12 |
|
Přípona souboru neodpovídá volbě action. |
|
13 |
|
Vrácený soubor má větší velikost, než která je povolena v atributu maxDocLength. |
|
14 |
|
Adresář je zabezpečen souborem eClever.auth, ale v parametrech http dotazu nebyly zadány
platné hodnoty pro user a password. |
Action, které používá http server
|
cross-domain-policy |
|
Funkce vrací xml dokument, který je zadán v sekci cross-domain-policy v eClever.config. |
|
gettxt |
|
Funkce vrací txt dokument. |
|
getxml |
|
Funkce vrací xml dokument. |
|
getcss |
|
Funkce vrací css dokument. |
|
gethtm |
|
Funkce vrací htm nebo html dokument. |
|
getjpg |
|
Funkce vrací jpg nebo jpeg soubor. |
|
getgif |
|
Funkce vrací gif soubor. |
|
getpng |
|
Funkce vrací png soubor. |
|
getswf |
|
Funkce vrací swf soubor. |
Funkce cross-domain-policy
Funkce vrací xml dokument, který je zadán v sekci cross-domain-policy v eClever.config.
Tato funkce se používá
v klientských aplikacích vytvořených ve Flashi.
Metody volání: GET, POST
Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=cross-domain-policy
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Funkce gettxt
Funkce vrací txt dokument umístěný na serveru.
Metody volání: GET, POST
Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=gettxt&file=abc.txt&user=john&password=d27B48
Pozn. User a password jsou nepovinné parametry
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Funkce getxml
Funkce vrací xml dokument umístěný na serveru.
Metody volání: GET, POST
Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=getxml&file=abc.xml&user=john&password=d27B48
Pozn. User a password jsou nepovinné parametry
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Funkce getcss
Funkce vrací css dokument umístěný na serveru.
Metody volání: GET, POST
Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=getcss&file=abc.css&user=john&password=d27B48
Pozn. User a password jsou nepovinné parametry
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Funkce gethtm
Funkce vrací htm nebo html dokument umístěný na serveru.
Metody volání: GET, POST
Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=gethtm&file=abc.htm&user=john&password=d27B48
Pozn. User a password jsou nepovinné parametry
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Funkce getjpg
Funkce vrací jpg nebo jpeg soubor umístěný na serveru.
Metody volání: GET, POST
Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=getjpg&file=abc.jpg&user=john&password=d27B48
Pozn. User a password jsou nepovinné parametry
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Funkce getgif
Funkce vrací gif soubor umístěný na serveru.
Metody volání: GET, POST
Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=getgif&file=abc.gif&user=john&password=d27B48
Pozn. User a password jsou nepovinné parametry
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Funkce getpng
Funkce vrací png soubor umístěný na serveru.
Metody volání: GET, POST
Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=getpng&file=abc.png&user=john&password=d27B48
Pozn. User a password jsou nepovinné parametry
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Funkce getswf
Funkce vrací swf soubor umístěný na serveru.
Metody volání: GET, POST
Příklad volání funkce metodou GET
http://127.0.0.1:2722?action=getswf&file=abc.png&user=john&password=d27B48
Pozn. User a password jsou nepovinné parametry
-----------------------------------------------------------------------------------------------------------------------------------------------------------