Кіріспе

Веб-бет түрі

Динамикалық веб-бет – бұл орындалу кезінде (бағдарламалық қамтамасыз ету іске қосылғанда) құрастырылатын веб-бет, сақталған күйінде берілетін статикалық веб-беттен өзгеше. Серверлік жағындағы динамикалық веб-бет – бұл серверлік жағындағы скрипттерді өңдейтін қолданба сервері басқаратын веб-бет. Серверлік жағындағы скриптте параметрлер әрбір жаңа веб-беттің құрастырылуын, соның ішінде клиенттік жақтағы өңдеуді қалай орнатуды анықтайды. Клиенттік жағындағы динамикалық веб-беттер веб-бетті жүктегенде браузерде іске қосылатын JavaScript арқылы өңдейді. JavaScript бетке Document Object Model (DOM) арқылы өзара әрекеттесе алады, беттің күйін сұрап, оны өзгерте алады. Веб-бет клиенттік жағында динамикалық болса да, егер серверлік кодты қамтымаса, GitHub Pages немесе Amazon S3 сияқты статикалық хостинг қызметінде орналастырылуы мүмкін. Динамикалық веб-бетті пайдаланушы немесе компьютерлік бағдарлама кейбір өзгермелі мазмұнды өзгерту үшін қайта жүктейді. Жаңарту туралы ақпарат серверден немесе сол беттің DOM-ындағы өзгерістерден келуі мүмкін. Бұл шолу тарихын қысқартуы немесе сақталған нұсқаны жасауы мүмкін, бірақ AJAX технологиясын пайдаланатын динамикалық веб-беттің жаңартуы қайта оралуға болатын бетті жасамайды және көрсетілген беттің алдындағы шолу тарихын қысқартпайды. AJAX-ты пайдалану арқылы соңғы пайдаланушы веб-браузерде бір динамикалық бетті бір бет ретінде көреді, ал бұл бетте көрсетілген нақты веб-мазмұн әртүрлі болуы мүмкін. AJAX қозғалтқышы тек браузерде орналасқан және клиенті үшін DOM-ның бөліктерін, DOM-ды қолданба серверінен сұрайды. Белгілі бір қолданба сервері веб-қосымшаға қызметтер ұсыну үшін стандартталған REST стилі интерфейсін ұсына алады. DHTML – бұл статикалық емес веб-беттерді құру үшін қолданылатын технологиялар мен әдістердің жиынтық атауы, бірақ AJAX танымал болғаннан кейін ол жиі қолданылмайды, ал бұл терминнің өзі қазір сирек қолданылады. Клиенттік жағындағы скрипттер, серверлік жағындағы скрипттер немесе олардың үйлесімі браузерде динамикалық веб-тәжірибесін қамтамасыз етеді.

Тарих

"Динамикалық веб-беттердің басталуы" немесе тарихын дәл айту қиын, себебі бұл нақты түсінік "веб-беттердің кеңінен дамуынан" кейін ғана мағыналы болады. HTTP 1989 жылдан бері бар, ал HTML 1996 жылдан бастап ресми түрде стандартталды. Веб-браузерлердің танымалдылығы 1993 жылы Mosaic-пен басталды. 1995 және 1996 жылдар аралығында нарыққа Coldfusion, WebObjects, PHP және Active Server Pages сияқты бірнеше динамикалық веб-өнімдері енгізілді. JavaScript (кейін LiveScript деп аталған) енгізілуі клиенттік браузерде JavaScript коды орындалатын клиенттік жақтан динамикалық веб-беттерді жасауға мүмкіндік берді. AJAX терминіндегі "J" әрпі бастапқыда JavaScript және XML пайдаланылғанын білдірді. Серверлік жақтағы JavaScript өңдеудің дамуымен, мысалы, 2009 жылы әзірленген Node.js, JavaScript серверде толыққанды қалыптасқан күйде клиенттерге жіберілетін беттерді динамикалық түрде құру үшін де қолданылады. Wikipedia-ны қолдайтын мазмұнды басқару жүйесі MediaWiki, бастапқыда серверлік жақтағы динамикалық веб-беттердің мысалы болып табылады, олар формаларды жіберу және URL параметрлері арқылы өзара әрекеттеседі. Уақыт өте келе, визуалды редактор сияқты жақсартулар клиенттік жақта динамикалық элементтерді қосты, ал классикалық өңдеу нысаны сияқты бастапқы серверлік жақтағы элементтер қателік немесе үйлесімсіздік туған жағдайда (жақсы деградация) резервтік нұсқа ретінде қолжетімді болып қалады.

Сервер жағындағы скрипттер

Веб-серверде (серверлік скрипттер) жұмыс істейтін бағдарлама әртүрлі веб-беттердегі веб-мазмұнды жасау, пайдаланушы сессияларын басқару және жұмыс ағынын реттеу үшін пайдаланылады. Сервер жауаптары HTML нысанындағы деректер, URL-дегі параметрлер, қолданылатын браузер түрі, уақыт өтуі, деректер базасы немесе сервердің күйі сияқты жағдайларға байланысты болуы мүмкін. Мұндай веб-беттер көбінесе ASP, ColdFusion, Go, JavaScript, Perl, PHP, Ruby, Python, WebDNA және басқа да тілдердің көмегімен, веб-сервермен бірдей аппараттық құралдарда жұмыс істей алатын қосалқы сервер арқылы құрылады. Серверлік тілдер динамикалық веб-беттерді жасау үшін көбінесе Common Gateway Interface (CGI) интерфейсін пайдаланады. Екі маңызды ерекшелік – ASP.NET және JSP, олар өздерінің API-ларында CGI ұғымдарын қайта қолданады, бірақ барлық веб-сұрауларды ортақ виртуалды машинаға жібереді. Серверлік тілдер веб-сервердегі веб-беттің бастапқы кодына тегтер немесе белгілерді енгізу үшін қолданылады. Клиенттік компьютердегі пайдаланушы веб-бетті сұрағанда, веб-сервер осы тегтерді немесе белгілерді серверде әрекеттерді орындау үшін түсіндіреді. Мысалы, серверге деректер базасынан немесе ағымдағы күнді сияқты ақпаратты қосуға нұсқау берілуі мүмкін. Динамикалық веб-беттер көбінесе күтпеген өзгерістер болмағанда немесе азайтқанда кэштеледі, және беттің жүктелуін баяулату үшін, әрбір сұраныс бойынша бетті қайта жасаудың қажеті болмай, веб-серверге үлкен жүктеме түсуі күтіледі.

Комбинациялық технологиялар

Динамикалық веб-бетті құрайтын клиенттік және серверлік компоненттердің барлығы веб-қосымша деп аталады. Веб-қосымшалар пайдаланушылардың өзара әрекеттесуін, күйін, қауіпсіздігін және өнімділігін басқарады. Ajax клиенттік жағындағы скрипттер мен серверлік сұраулардың үйлесімін пайдаланады. Бұл веб-қосымшаларды дамыту тәсілі, мазмұнды динамикалық түрде алмастыру үшін, ол үшін серверден деректерді сұрау жіберіледі. Сервер сұралған деректерді қайтарады, содан кейін оны клиенттік жақ скрипті өңдейді. Бұл тәсіл сервердің жүктелу уақытын қысқарта алады, себебі клиент сервердің тілдік талдауышы арқылы толық веб-бетті қайта жасауды сұрамайды; тек өзгеретін мазмұн ғана жіберіледі. Google Maps – Ajax тәсілдерін қолданатын веб-қосымшаның мысалы. Веб-браузер сияқты веб-клиент, Gopher, FTP, NNTP (Usenet) және HTTP сияқты көптеген серверлерден деректерге қол жеткізе отырып, өз сервері ретінде де жұмыс істей алады, содан кейін бет құрастырады. HTTP клиенттен серверге құжаттарды жүктеуге мүмкіндік береді. Мұны істеу үшін бірнеше HTTP әдістері бар.