PHP Online: êóðñ äëÿ ÷àéíèêîâ. Ââåäåíèå
Àâòîð: | Àðòåìüåâ Ñåðãåé Èãîðåâè÷ |
ICQ: | 438856621 |
email: | _spin_@bk.ru |
Èíòåðíåò â ñîâðåìåííîì ìèðå çàíèìàåò âñ¸ áîëåå ïðî÷íûå ïîçèöèè. Ëåò 15 íàçàä äëÿ äîñòóïà ê ñåòè áûëî íóæíî äîðîãîå îáîðóäîâàíèå è íåìàëûå äåíüãè íà îïëàòó ñ÷åòîâ. Ñåé÷àñ â Èíòåðíåò ìîæåò çà êîïåéêè ïîïàñòü ëþáîé ÷åëîâåê, èìåþùèé õîòÿáû ìîáèëüíûé òåëåôîí. Âñ¸ áîëüøå óñëóã è ñåðâèñîâ ïåðåõîäÿò â ýëåêòðîííóþ ôîðìó. Èç ñðåäñòâà îáùåíèÿ è îáìåíà èíôîðìàöèåé Èíòåðíåò ïðåâðàùàåòñÿ â óäîáíûé èíñòðóìåíò äëÿ âåäåíèÿ áèçíåñà è çàðàáàòûâàíèÿ äåíåã.
Åæåäíåâíî ìèëëèîíû ïîëüçîâàòåëåé ïîñåùàþò ñâîè ëþáèìûå ñàéòû, êà÷àþò ïî÷òó, ôàéëû èëè íîâîñòè, èãðàþò â îíëàéí-èãðû, âåäóò äåëà êîìïàíèè èëè ïðîñòî îáùàþòñÿ â ÷àòàõ, áëîãàõ è ôîðóìàõ. Áîëüøèíñòâî èç ýòèõ ïîëüçîâàòåëåé íèêîãäà íå çàäóìûâàëèñü êàê âñ¸ ýòî ðàáîòàåò, êòî ñîçäà¸ò íîâûå ñàéòû è ñåðâèñû, êàê è ñ ïîìîùüþ ÷åãî.
Ýòîò ýëåêòðîííûé ó÷åáíèê ïðåäíàçíà÷åí äëÿ òåõ, êîìó íåäîñòàòî÷íî ïðîñòî ñåðôèòü ïî ïðîñòîðàì Ñåòè. Äëÿ òåõ, êòî õî÷åò íàó÷èòüñÿ ñîçäàâàòü ñîáñòâåííûå ñàéòû è áûòü íà âîëíå ïîñëåäíèõ òå÷åíèé ïðîãðàììèðîâàíèÿ è äèçàéíà.
Îáùèå ïðèíöèïû
Äî íà÷àëà èçó÷åíèÿ ÿçûêà íóæíî îäíîçíà÷íî îïðåäåëèòüñÿ ñ òåðìèíîëîãèåé è ïîíèìàíèåì îáùèõ ïðèíöèïîâ ðàáîòû ñåòè Èíòåðíåò. Íà÷í¸ì ñ ïðèíöèïîâ ðàáîòû ñåòè è ñàéòîâ.
Ñåòü Èíòåðíåò ñîñòîèò èç îãðîìíîãî êîëè÷åñòâà ñîåäèí¸ííûõ ìåæäó ñîáîé êîìïüþòåðîâ, ìàðøðóòèçàòîðîâ è ïðî÷åãî æåëåçà, íóæíîãî äëÿ ïðàâèëüíîé ðàáîòû. Êàæäûé ýëåìåíò ñåòè Èíòåðíåò (óçåë) îáëàäàåò óíèêàëüíûì îïèñàòåëåì - IP-àäðåñîì. Çíàÿ IP-àäðåñ óçëà ìîæíî ïîïðîáîâàòü ïîäêëþ÷èòüñÿ ê íåìó, à èìåÿ íåáîëüøèå íàâûêè ìîæíî îïðåäåëèòü êîìó ýòîò àäðåñ ïðèíàäëåæèò è â êàêîì ðåãèîíå ìèðà íàõîäèòñÿ. IP-àäðåñà ïðèíÿòî çàïèñûâàòü â âèäå ÷åòûð¸õ ãðóïï öèôð, ðàçäåë¸ííûõ òî÷êàìè, íàïðèìåð
Ñîãëàñèòåñü, çàïîìíèòü àäðåñà âñåõ ÷àñòî ïîñåùàåìûõ ñòðàíèö - çàäà÷êà íå èç ë¸ãêèõ. Ïîýòîìó â ñåòè Èíòåðíåò ñóùåñòâóþò ñïåöèàëüíûå ñåðâåðà DNS (Domain Name Resolution), íà êîòîðûõ õðàíÿòñÿ ñïèñêè ñîïîñòàâëåíèÿ IP-àäðåñîâ è ñèìâîëüíûõ èì¸í. Èìåííî áëàãîäàðÿ ýòè ñåðâåðàì ïîëüçîâàòåëü âñåãäà ïîïàäàåò ïî íóæíîìó IP-àäðåñó, íàáðàâ â áðàóçåðå òîëüêî èìÿ ñòðàíè÷êè.
Ïîñëå òîãî, êàê ìû ââ¸ëè â ñòðîêó áðàóçåðà èìÿ íóæíîé ñòðàíè÷êè, áðàóçåð ñàìîñòîÿòåëüíî ïîëó÷àåò èç DNS IP-àäðåñ íóæíîãî ñåðâåðà è ïîñûëàåò ïî ýòîìó àäðåñó ñïåöèàëüíûé çàïðîñ íà ïîëó÷åíèå ñòðàíè÷êè (HTTP-çàïðîñ). Ðàáîòàþùàÿ íà ñåðâåðå ñïåöèàëèçèðîâàííàÿ ïðîãðàììà (ò.í. Web-ñåðâåð) îáðàáàòûâàåò ýòîò çàïðîñ è âîçâðàùàåò â áðàóçåð òðåáóåìóþ ñòðàíèöó.
Î÷åâèäíî, ÷òî âñå äåéñòâèÿ ïî îòîáðàæåíèþ ñòðàíèöû ìîæíî îäíîçíà÷íî ðàçäåëèòü íà äâå êàòåãîðèè: âûïîëíÿåìûå íà ñòîðîíå êëèåíòà (êëèåíòñêèé êîä èëè front-end) è âûïîëíÿåìûå íà ñòîðîíå ñåðâåðà (ñåðâåðíûé êîä èëè back-end). Ïðè÷åì ñåðâåð íè÷åãî íå çíàåò î òåêóùåì ñîñòîÿíèè êëèåíòà, à êëèåíò - î òåêóùåì ñîñòîÿíèè ñåðâåðà. Ïðè ðàçðàáîòêå àëãîðèòìîâ îáìåíà íàäî âñåãäà ïîìíèòü îá ýòîì è ñâîåâðåìåííî ïåðåäàâàòü íóæíûå äàííûå, îïèñûâàþùèå ñîñòîÿíèå èëè òðåáóåìîå äåéñòâèå.
 çàâèñèìîñòè îò ìåñòà ïðèìåíåíèÿ ðàçëè÷àþòñÿ è ñðåäñòâà ðåàëèçàöèè ÷àñòåé. Íà ñòîðîíå êëèåíòà êàê ïðàâèëî èñïîëüçóåòñÿ òîëüêî HTML, JavaScript (AJAX), CSS è Flash. Ðàçðàáîò÷èêè ñåðâåðíîé ÷àñòè ìåíåå ñòåñíåíû â ñðåäñòâàõ, ò.ê. áîëüøàÿ ÷àñòü ñóùåñòâóþùèõ ÿçûêîâ ïîçâîëÿåò ñîçäàâàòü èëè îïèñûâàòü HTML-ñòðàíèöû. Íàèáîëåå øèðîêî ðàñïðîñòðàí¸ííû ñåé÷àñ Java, Perl, PHP, Python, Ruby, C# è VB.NET. Êàæäûé èç íèõ èìååò ñâîè ñèëüíûå è ñëàáûå ñòîðîíû, ïîýòîìó ðàçðàáîò÷èê äîëæåí ñäåëàòü âûáîð èñõîäÿ èç ñòîÿùèõ ïåðåä íèì çàäà÷.
Ïî÷åìó èìåííî PHP?
Ñóùåñòâóåò áîëüøîå êîëè÷åñòâî ÿçûêîâ, êîòîðûå ìîæíî èñïîëüçîâàòü ïðè ñîçäàíèè âåá-ñàéòîâ. Íåêîòîðûå ÿçûêè ñóùåñòâóþò äàâíî è óñïåøíî ïðèìåíÿþòñÿ (èëè óæå íå ïðèìåíÿþòñÿ). Íåêîòîðûå ÿçûêè åù¸ î÷åíü ìîëîäû è øèðîêîãî ðàñïðîñòðàíåíèÿ ïîêà íå ïîëó÷èëè.  ïîñëåäíåå âðåìÿ PHP âûáèëñÿ â ëèäåðû ïî ïîïóëÿðíîñòè, ÷åìó åñòü íåñêîëüêî ïðè÷èí:
- Ïðîñòîòà. ßçûê î÷åíü ëåãêî âîñïðèíèìàåòñÿ, îñîáåííî íà÷èíàþùèìè ïðîãðàììèñòàìè.
- Ñêîðîñòü ðàçðàáîòêè. Áëàãîäàðÿ ïðîñòîòå è èíòóèòèâíîé ïîíÿòíîñòè, PHP ïîçâîëÿåò î÷åíü áûñòðî ñîçäàâàòü äîâîëüíî ñëîæíûå ñàéòû.
- Íàëè÷èå áèáëèîòåê Ñóùåñòâóåò îãðîìíîå êîëè÷åñòâî ãîòîâûõ ïðèìåðîâ è áèáëèîòåê êëàññîâ. Ñîçäàíû è ïðîâåðåíû ñîòíè áèáëèîòåê, ñóùåñòâåííî óïðîùàþùèõ æèçíü ðàçðàáîò÷èêà.
- Ïîääåðæêà Ïðàêòè÷åñêè ëþáîé ñåðâåð â Èíòåðíåòå ïîääåðæèâàåò PHP
- Áåçîïàñíîñòü PHP ïîçâîëÿåò ñîçäàâàòü äåéñòâèòåëüíî çàùèù¸ííûå ñàéòû áëàãîäàðÿ âñòðîíåííîé ïîääåðæêå øèôðîâàíèÿ äàííûõ ïðè õðàíåíèè è ïåðåäà÷å.
Îäíàêî çà ñâîè ïðåèìóùåñòâà PHP ïëàòèò íåêîòîðûìè îðãàíè÷åíèÿìè. Íàïðèìåð, èñïîëüçîâàòü PHP äëÿ äîñòóïà ê ñèñòåìíûì ôóíêöèÿì î÷åíü íåóäîáíî ïî ñðàâíåíèþ ñ Perl èëè Python (ïîýòîìó ìíîãèå ñèñàäìèíû òàê ëþáÿò Perl).Åñòü åù¸ íåñêîëüêî îãðàíè÷åíèé, î êîòîðûõ ìû ïîãîâîðèì ïðè èçó÷åíèè ñîîòâåòñòâóþùèõ ðàçäåëîâ.
Ñåé÷àñ PHP ïðî÷íî çàíèìàåò ñâî¸ ìåñòî ñðåäó äðóãèõ web-ÿçûêîâ. Åñëè Âû â áóäóùåì íå ïëàíèðóåòå çàíèìàòüñÿ ñîçäàíèåì îãðîìíûõ ïîðòàëîâ, ïîèñêîâûõ ñèñòåì è îñîáî çàùèù¸ííûõ ñàéòîâ, òî PHP - ëó÷øèé âûáîð äëÿ íà÷èíàþùåãî web-ïðîãðàììèñòà.
Îäíàêî, îñòàâèì ëèðèêó, ïîðà íà÷àòü èçó÷åíèå.