Кіріспе
Веб-әзірлеуде қолданылатын техника. Серверлік скрипттеу – веб-әзірлеуде қолданылатын техника, ол веб-серверде скрипттерді пайдалануды қамтиды, бұл веб-сайтқа әрбір пайдаланушының (клиенттің) сұранысына қарай жекелендірілген жауап береді. Скрипттер серверлік скрипттеу тілдерінің кез келгенінде жазылуы мүмкін (төменде қараңыз). Серверлік скрипттеу клиенттік скрипттеуден ерекшеленеді, онда JavaScript сияқты енгізілген скрипттер веб-браузерде клиенттік жақта орындалады, бірақ екі техника да көбінесе бірге қолданылады. Скрипттеудің екі түріне де балама ретінде веб-сервер өзі статикалық веб-бетті жеткізе алады. Серверлік скрипттеу көбінесе пайдаланушыға жекелендірілген интерфейс беру үшін қолданылады. Бұл скрипттер клиенттік қасиеттерді жинап, осы қасиеттерге, пайдаланушының талаптарына, кіру құқықтарына және т.б. негізделіп жауапты жекелендіру үшін пайдалана алады. Серверлік скрипттеу веб-сайт иесіне интерфейсті құратын бастапқы кодты жасыруға мүмкіндік береді, ал клиенттік скрипттеуде пайдаланушы клиентке алынған барлық кодқа қол жеткізе алады. Серверлік скрипттеуді пайдаланудың бір кемшілігі – клиент веб-браузерде пайдаланушыға жаңа ақпаратты көрсету үшін желі арқылы серверге қосымша сұраулар жіберуі керек. Бұл сұраулар пайдаланушының тәжірибесін баяулатуы мүмкін, серверге қосымша жүктеме салуы мүмкін және пайдаланушы серверден ажыратылған кезде қолданбаны пайдалануға кедерілгі келтіруі мүмкін. Сервер деректерді әдеттегідей, мысалы, HTTP немесе FTP протоколдары бойынша жеткізгенде, пайдаланушылар бірнеше клиенттік бағдарламаны таңдай алады (көбінесе қазіргі заманғы веб-браузерлер осы екі протоколдың көмегімен деректерді сұрап алады және қабылдайды). Көбірек мамандандырылған қолданбалар үшін бағдарламашылар өздерінің серверін, клиентін және байланыс протоколын жаза алады, олар бір-бірімен ғана пайдаланылуы мүмкін. Пайдаланушының жеке компьютерінде желі арқылы деректерді жібермей немесе қабылдамай жұмыс істейтін бағдарламалар клиенттер деп есептелмейді, сондықтан мұндай бағдарламалардың жұмысы клиенттік жұмыс деп есептелмейді.
Server side scripting is a technique used in web development which involves employing scripts on a web server which produces a response customized for each user's (client's) request to the website. Scripts can be written in any of a number of server side scripting languages that are available (see below). Server side scripting is distinguished from client side scripting where embedded scripts, such as JavaScript, are run client side in a web browser, but both techniques are often used together. The alternative to either or both types of scripting is for the web server itself to deliver a static web page. Server side scripting is often used to provide a customized interface for the user. These scripts may assemble client characteristics for use in customizing the response based on those characteristics, the user's requirements, access rights, etc. Server side scripting also enables the website owner to hide the source code that generates the interface, whereas, with client side scripting, the user has access to all the code received by the client. A downside to the use of server side scripting is that the client needs to make further requests over the network to the server in order to show new information to the user via the web browser. These requests can slow down the experience for the user, place more load on the server, and prevent the use of the application when the user is disconnected from the server. When the server serves data in a commonly used manner, for example, according to the HTTP or FTP protocols, users may have their choice of a number of client programs (most modern web browsers can request and receive data using both of those protocols). In the case of more specialized applications, programmers may write their own server, client, and communications protocol, that can only be used with one another. Programs that run on a user's local computer without ever sending or receiving data over a network are not considered clients, and so the operations of such programs would not be considered client side operations.
Тарих
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-ке өзгерістер енгізілген кезде сайтты автоматты түрде құрайды.