Perl, РНР –дегі серверлік сценарийлер негіздері

Perl сөзі келесі сөз тіркесінің аббревиатурасы болып табылады, Practical Extraction and Report Language (шығарыа алу және есептерді берудің практикалық тілі), оны кейде Pathologically Eclectic Rubbish Lister (патологиялық эклектикті қоқыстыр листері) деп те атайды. Қайсысының дұрыс екендігі жайында сөз тартысқа түсудің қажеті жоқ, өйткені екеуі де Ларри Уоллға тиесілі, ол Perl тілінің қорғаушысы, тарутышысы, бас архитекторы және құрастырушысы. Ларри бұл тілді Usenet-хабарларына ұқсас, қатерлаер жайында баяндайтын файлдар жүйесінің иерархиясынан есеп берулерді құруға тырысқан кезінде құрғанды, сол кездерде awk мәліметтер ағынын өңдеушісінің мүмкіндіктері шегіне жеткен еді. Шынайы (яғни, жалқау емес) программист бола тұра, Ларри бұл есепті түбірімен құруға бел буды, оған әмбебап инструментті қолданып, оны ары қарай қолдануға сенім артты. Осылайша Perl тілінің бірінші версиясы пайда болды.

Perl Web-сервер Apache, CGI программаларының артықшылықтарымен қолданудағы шығындар жоқ. Web-сервер динамикалық құжаттарды генерациялағанда программалар шақырылады. CGI программасы браузер жағынан түрлі сұраныстармен әрдайам айналыспайды. Бөлшек программада бар болған сұраныс кезінде оның жаңа копиясы іске қосылады. Программа бетті жаңы бет үшін генерациялайды да аяқталады.

Браузер методтар деп аталатын құжатқа деген сұранысты сұрауы мүмкін (HTTP әдістері мен объектілі бағытталған әдістерді шатастырмаңыздар, GET әдісі ең жиі қолданылады, ал егер браузер құжат жайындағы ақпаратты нақтылай жүктеусіз алғысы келсе, онда HEAD әдісі қолданыладытолтыврылған формаларды жіберу кезінде POST әдісі қолданылады.

Форма полеларының мәндері GET және POST әдістерінде болулары мүмкін. GET әдісінде мән тікелей URL-де кодталады, ол келесі тұрдегі URL-дердің пайда болуына әкеледі:

http://mox.perl.com/cgi%bin/program

POST әдісінде мәндер НТТР сұранысының басқа жағында болады, браузер серверге жіберетіні емес. Егер алдында көрметілген мысалда мәндер POST әдісімен берілетін болса, онда қолданушы, сервер және CGI сценарийі келесі үйреншікті URL-ді көретін еді:

http://mox.perl.com/cgi%bin/program

GET және POST әдістері сонымен қатар қасиеттерімен ерекшеленеді, бірретті немес көпретті GET сұранысы белгілі бір URL үшін бірдей жауап беруі қажет. Бұл НТТР протоколының спецификациясына сәйкес GET сұранысы браузер, сервер немесе аралық прокси сервер бола алады. POST сұраныстары кэштелінбейді, өйткені әрбір сұраныс бөлек және басқасысына тәуелсіз. Көбіне, POST сұраныстары сервер күйіне әсерін тигізеді немесе оған тәуелді болады (мәліметтер базасына қарау немесе жаңарту, поштаны жіберу).

Ақырындап, РНР-мен басқарылатын есептер күрделілендірілді. Программаның толықтай қайта қарастыруға тура келді, жылдам жұмыс жасауы және кеңірек мүмкіндіктерінің кеңейту мақсатында. Осылайша РНР3 жобасы іске қосылған болатын, және бұл жайдайда оның құрастырылуына Расмус Лердорф басшылығының астында бір топ алысты.жаналықтардың ең маңыздыларының бірі РНР сценарийлерінің ситнтаксисі стандартты түрге жақындастырылды, туелсіз құрастырушыларға программаны кеңейтуге мүмкіндік беретін API қосылды. Содан бері РНР дамуда және жақтаушыларды саны көбеюде. Қазіогі кезе РНР 4 версиясы жарық көрді, бірақ одан кіші РНР3 версиясы кеңірек қолданылады.

РНР сай:

- Төмен және плавная оқу кесіндісі;

- Дамыған функционалдылық: мәліметтер базасы, жолдары, желелік байланыстар, файлды жүйедегі операцияларды қолдау, Java, COM, XML, CORBA, WDDX және Macromedia Flash.

- Платформалармен сәйкестік: UNIX (кез-келген), Win32 (NT/95/98/2000), QNX, MacOS (WebTen), OSX, OS/2 и BeOS.

- Серверлермен сәйкестік: Apache модулі UNIX, Win32), CGI/FastCGI, thttpd, fhttpd, phttpd, ISAPI (IIS, Zeus), NSAPI (Netscape iPlanet), Java сервлеттер механизмі, AOLServer және Roxen/Caudium модулі;

- Қысқа құру циклі: табылған кателіктердің дұрысталуымен, қосымша функциялармен және де жақсартулармен жасалған версияар бірнеше айда бір шығыды.

- Энергетикалық және жылы жүзді құрастырушылар тобы. Программалық мысалдар мен ақысыз кодтың көптілігі. РНР құрастырушыларының тобы жастарды ресурстармен және қолдаумен қамтамасыз етеді.

- Кеңейтілудің қарапайымдылығы. Тілдің өз кеңейтілуіңізді құруға болады.

- С-ге ұқсас қарапайым систаксис. С, C++, Perl және командалық сценарийлермен айналысатын программистер РНР жеңіл үйренеді.

 

MySQL

MySQL – бұл интернеттегі ең танымал және кең тараған МББЖ (Мәліметтер базасын басқару жүйесі).Ол үлкен ақпараттық көлемдермен жұмыс істеуге арналған, алайды оны интернет сайттерында қолдану тиімді, олардың кішігірім не үлкен болуы шарт емес.

MySQL жақсы жұмыс жылдамдығымен, сенімділігімен, иілгіштігімен ерекшеленеді. Онымен жұмыс көбіне ешқандай қиындықтарға әкелмейді. MySQL серверін қолдау РНР-дің жеткізілуіне енгізілген.

Оның ақысыздығы да маңызды факторлардың бірі. MySQL GNU (GPL, GNU Public License) сияқты жалпы лицензия шарттарына сай таралады.

Бұрын біз ақпаратты көпке дейін сақтау үшін біз файдармен жұмыс істедік: оған белгілі бір жолдар санын енгізіп, ал сонан соң келесі жұмыс ішін ашатынбыз. Ақпаратты ұзақ уақытқа сақтау есебі Web-қосымшаларды программалауда көп кездеседі: есептеуіштегі келушілерді есептеу, форумдардағы хабарландыруларды сақтау, сайтта ақпарат мазмұны ұзақтай басқару және т.б.

Алайда, файлдармен жұмыс істегендегі проффессионалды әдістерді қолдану өте қомақты уақытты қажет етеді: оларға ақпараттың жазылуын қастамасыз ету, ақпаратты сұрыптау, шығыру, сонымен бірге бұл істердің барлығының хост-провайдер серверінде, ал онда Unix болу ықтималдылығы өте көп, сондықтан файлдарға қол жеткізу құрықтарымен оларды орналастыру құқықтары жайлы ойлануға келдік. Сонда кондың өлшемі жетерліктей ұлғаяды да программада қате жасау ықтималдылығы өте жоғары.

РНР жасалған, ақпаратты сақтау үшін мәліметтер базасын қолданған қосымша (мысалға MySql), файлдар негізінде жасалған қосымшада жылдам жұмыс жасайды. Ал бұған түсініктеме берер болсақ, мәліметтер базысы С++ тілінде жазылған, және РНР-де қатты дискіде орналасқан мәліметтер базасынан тез жұмыс істей алатын программаны жазу анықтама бойынша да мүмкін емес, өйкені РНР-де жазылған программалар С++ жазылған программаларға қарағанда баяу жұмыс істейді, себебі РНР - интерпретатор, ал С++ - компилятор.

Сонымен, мәліметтер базасының негізгі жетістігі оның қатты дискімен жұмыстың барлығын өзіне жүтеуі және де өте эффективті жүктеуі.