Кіріспе

Веб-әзірлеуде қолданылатын техника. Серверлік скрипттеу – веб-әзірлеуде қолданылатын техника, ол веб-серверде скрипттерді пайдалануды қамтиды, бұл веб-сайтқа әрбір пайдаланушының (клиенттің) сұранысына қарай жекелендірілген жауап береді. Скрипттер серверлік скрипттеу тілдерінің кез келгенінде жазылуы мүмкін (төменде қараңыз). Серверлік скрипттеу клиенттік скрипттеуден ерекшеленеді, онда JavaScript сияқты енгізілген скрипттер веб-браузерде клиенттік жақта орындалады, бірақ екі техника да көбінесе бірге қолданылады. Скрипттеудің екі түріне де балама ретінде веб-сервер өзі статикалық веб-бетті жеткізе алады. Серверлік скрипттеу көбінесе пайдаланушыға жекелендірілген интерфейс беру үшін қолданылады. Бұл скрипттер клиенттік қасиеттерді жинап, осы қасиеттерге, пайдаланушының талаптарына, кіру құқықтарына және т.б. негізделіп жауапты жекелендіру үшін пайдалана алады. Серверлік скрипттеу веб-сайт иесіне интерфейсті құратын бастапқы кодты жасыруға мүмкіндік береді, ал клиенттік скрипттеуде пайдаланушы клиентке алынған барлық кодқа қол жеткізе алады. Серверлік скрипттеуді пайдаланудың бір кемшілігі – клиент веб-браузерде пайдаланушыға жаңа ақпаратты көрсету үшін желі арқылы серверге қосымша сұраулар жіберуі керек. Бұл сұраулар пайдаланушының тәжірибесін баяулатуы мүмкін, серверге қосымша жүктеме салуы мүмкін және пайдаланушы серверден ажыратылған кезде қолданбаны пайдалануға кедерілгі келтіруі мүмкін. Сервер деректерді әдеттегідей, мысалы, HTTP немесе FTP протоколдары бойынша жеткізгенде, пайдаланушылар бірнеше клиенттік бағдарламаны таңдай алады (көбінесе қазіргі заманғы веб-браузерлер осы екі протоколдың көмегімен деректерді сұрап алады және қабылдайды). Көбірек мамандандырылған қолданбалар үшін бағдарламашылар өздерінің серверін, клиентін және байланыс протоколын жаза алады, олар бір-бірімен ғана пайдаланылуы мүмкін. Пайдаланушының жеке компьютерінде желі арқылы деректерді жібермей немесе қабылдамай жұмыс істейтін бағдарламалар клиенттер деп есептелмейді, сондықтан мұндай бағдарламалардың жұмысы клиенттік жұмыс деп есептелмейді.

Тарих

Netscape 1994 жылы желтоқсанда алғаш рет шығарылған (браузерлер үшін JavaScript шыққаннан кейін көп ұзамай) Netscape Enterprise Server арқылы серверлік скрипттер үшін JavaScript-тің іске асырылуын ұсынды. 1995 жылдың басында Фред Дюфрен Бостон қаласындағы WCVB телеарнасының алғашқы веб-сайтын жасау кезінде серверлік скрипттерді қолданды. Бұл технология АҚШ патенті 5835712-де сипатталған. Патент 1998 жылы тіркелген және қазір Open Invention Network (OIN) компаниясына тиесілі. 2010 жылы OIN Фред Дюфренды серверлік скрипттерді дамытқаны үшін "Ерекше өнертапқыш" деп атады.

Түсіндірме

Вебтің алғашқы күндерінде серверлік скрипттер C бағдарламалары, Perl скрипттері және Common Gateway Interface (CGI) арқылы жұмыс істейтін shell скрипттерінің үйлесімімен орындалатын. Бұл скрипттер операциялық жүйемен орындалып, нәтижелері веб-серверге қайтарылатын. Көптеген қазіргі заманғы веб-серверлер ASP, JSP, Perl, PHP және Ruby сияқты тікелей скрипт тілдерін веб-сервердің өзі арқылы немесе кеңейту модульдері (мысалы, mod perl немесе mod php) арқылы орындай алады. Мысалы, WebDNA өзінің кіріктірілген деректер базасы жүйесін қамтиды. Кез келген скрипт түрі (яғни CGI немесе тікелей орындау) күрделі көп беттік сайттарды құру үшін қолданылуы мүмкін, бірақ тікелей орындау әдетте сыртқы интерпретаторларға жасалатын шақырулардың азаюына байланысты аз шығындарға түседі. Динамикалық веб-сайттар кейде Glassfish, Plack және Python-ның "Base HTTP Server" кітапханасы сияқты арнайы веб-қосымша серверлерін пайдаланады, бірақ кейбіреулер мұны серверлік скрипт деп санамауы мүмкін. Динамикалық веб-скрипттеу техникаларын қолданғанда, дамытушылар клиент пен сервер арасындағы логикалық, уақыттық және физикалық бөлінуді жақсы түсінуі керек. Мысалы, классикалық ASP-мен жұмыс істейтін дамытушы, пайдаланушының әрекеті серверлік кодты орындауды бастау үшін пайдаланушының браузерін веб-серверге сұрау жіберуге мәжбүрлеуі керек. Серверлік скрипттерді клиенттер емес, серверлер толыққанды өңдейді. Клиенттер серверлік скрипттерді қамтитын бетті сұрағанда, қосымша сервері скрипттерді өңдеп, клиентке HTML бетін қайтарады.

Скрипттің тәсілдерін қалай жақтау

Бір беттік қолданбаларда HTML-ді клиенттік қолданба арқылы, бірақ серверде құруға жаңа тәсіл енгізілді. SSR қолданатын фреймворктердің мысалдары: Next.js, Nuxt.js және Nest.js. Олар серверде мазмұнды жасау үшін сәйкесінше React.js, Vue.js және Angular қолданады.

Сервер жағында генерациялау

Серверлік жақтағы генерация, немесе SSG, SSR-ға балама болып табылады. Серверлік рендерингте әрбір сұраныс бойынша парақ серверде бір рет құрастырылады. Ал SSG-де қолданба құрастыру кезінде барлық статикалық HTML беттерін жасайды. Бұл алдын ала құрастырылған беттер әр сұраныс бойынша клиентке қайтадан құрастыру қажеттілігінсіз жіберіледі. Бұл жаңа парақ әр сұраныс бойынша жасалуы қажет болмайтындықтан, жылдам рендеринг уақытына әкеледі; сервер тек бұрын жасалған файлды ұсынады. Кері жағы, парақтағы кейбір деректер өзгерген жағдайда, оны қайта құру қажет. Файлдарды құру үздіксіз жеткізуді пайдалану арқылы мүлдем басқа компьютерде жүзеге асырылуы мүмкін. SSG құралдарының мысалдары – Jekyll, Gatsby немесе Eleventy. Мұндай сайттар көбінесе Netlify немесе GitHub Pages-те орналастырылады. GitHub сондай-ақ Jekyll жобаларын қолдайды, ол git-ке өзгерістер енгізілген кезде сайтты автоматты түрде құрайды.