C-SaCzech Procedura EncodeHTTP

Tato procedura zaji��uje polo�en� p��slu�n�ho dotazu sv�mu vlastn�mu serveru a zm�nu k�du jeho odpov�di.

Na za��tku se inicializuje �ada r�zn�ch prom�nn�ch na z�klad� prom�nn�ch prost�ed�, nastaven�ch serverem p�i spu�t�n� programu. Pot� n�sleduje otev�en� soketu, kter� bude pou�it pro komunikaci s WWW serverem. To se odehraje p��kazem:

sock=connect_server( host, port );
Po jeho proveden� prom�nn� sock obsahuje deskriptor vytvo�en�ho socketu. Pokud se operace nepovedla, vyp��e se zpr�va: "Chyba v komunikaci" a program skon��. Pro p�esnost, procedura http_perr slou�� k tomu, aby vypsala chybovou hl�ku tak, aby ji browser zobrazil, tzn. nap��e
Content-type: text/html

obsah chybov�ho hl�en�

Jestli�e s otev�r�n�m nebyly pot��e, program si otev�e pro deskriptor tohoto socketu stream ( => program�torsky snadn�j a hlavn� rychlej�� zpracov�n� p�ich�zej�c�ch dat), polo�� dotaz WWW serveru a za�ne zpracov�vat odpov��. Jej� zpracov�n� je rozlo�eno do dvou cykl� while. V prvn�m se vyhodnocuj� hlavi�ky odpov�di a hled� se v nich Content-Type. Obsah p��slu�n� hlavi�ky je pak porovn�n s obsahem pole ext, co� d�l� makro ISMIME, a pokud je v n�m p��slu�n� typ obsa�en, nastav� se prom�nn� convert na hodnotu 1 => obsah odpov�di m� b�t p�ek�dov�n. Tato �innost se prov�d� jen v tom p��pad�, pokud server odpov�d� protokolem HTTP verze alespo� 1.0. Odpov�di star��ch server� nebudou p�ek�dov�ny. Zji�t�n� verze protokolu, ve kter�m server odpov�d�, zaji��uje test

if ( !str_prefix( buf, "HTTP/" ) )
M�te-li server s protokolem HTTP verze 0.9 a chcete, aby jeho odpov�di byly k�dov�ny, vlo�te do else-v�tve tohoto p��kazu
convert=1;
Ov�em v tom p��pad� budou k�dov�ny v�echny odpov�di, proch�zej�c� procedurou EncodeHTTP bez ohledu na jejich typ! Fat�ln� zejm�na u obr�zk�.

Hlavn� ��st skriptu je uzav�ena do podm�n�n�ho p��kazu

if ( convert )
Jeho else-v�tev ned�l� nic. Pouze op��e sv�j vstup do v�stupu. Pokud se m� k�dovat, je �innost toto�n� s funkc� odpov�daj�c� ��sti podprogramu EncodeFile.


ZPET Zp�t

Tato str�nka je sou��st� dokumentace programu C-SaCzech.