Server-side scripting - Server-side scripting
Scripting aan de serverzijde is een techniek die wordt gebruikt bij webontwikkeling, waarbij scripts op een webserver worden gebruikt die een antwoord produceren dat is aangepast aan het verzoek van elke gebruiker (klant) aan de website. Het alternatief is dat de webserver zelf een statische webpagina levert . Scripts kunnen worden geschreven in elk van een aantal server-side scripttalen die beschikbaar zijn (zie hieronder). Server-side scripting onderscheidt zich van client-side scripting waarbij embedded scripts, zoals JavaScript , client-side worden uitgevoerd in een webbrowser , maar beide technieken worden vaak samen gebruikt.
Server-side scripting wordt vaak gebruikt om de gebruiker een aangepaste interface te bieden. Deze scripts kunnen clientkenmerken samenstellen voor gebruik bij het aanpassen van het antwoord op basis van die kenmerken, de vereisten van de gebruiker, toegangsrechten, enz. Server-side scripting stelt de website-eigenaar ook in staat de broncode te verbergen die de interface genereert, terwijl bij client- side scripting heeft de gebruiker toegang tot alle code die door de client is ontvangen. Een nadeel van het gebruik van server-side scripting is dat de client verdere verzoeken via het netwerk naar de server moet doen om nieuwe informatie via de webbrowser aan de gebruiker te tonen. Deze verzoeken kunnen de ervaring voor de gebruiker vertragen, de server meer belasten en het gebruik van de applicatie verhinderen wanneer de gebruiker de verbinding met de server verbreekt.
Wanneer de server gegevens op een veelgebruikte manier aanbiedt, bijvoorbeeld volgens de HTTP- of FTP- protocollen , kunnen gebruikers de keuze hebben uit een aantal clientprogramma's (de meeste moderne webbrowsers kunnen gegevens opvragen en ontvangen met behulp van beide protocollen). In het geval van meer gespecialiseerde toepassingen kunnen programmeurs hun eigen server, client en communicatieprotocol schrijven, die alleen met elkaar kunnen worden gebruikt.
Programma's die op de lokale computer van een gebruiker draaien zonder ooit gegevens via een netwerk te verzenden of te ontvangen, worden niet als clients beschouwd, en dus worden de bewerkingen van dergelijke programma's niet beschouwd als bewerkingen aan de clientzijde.
Geschiedenis
Netscape introduceerde een implementatie van JavaScript voor server-side scripting met Netscape Enterprise Server , voor het eerst uitgebracht in december 1994 (kort na het uitbrengen van JavaScript voor browsers).
Server-side scripting werd later begin 1995 gebruikt door Fred DuFrense tijdens het ontwikkelen van de eerste website voor Boston, MA televisiestation WCVB . De technologie wordt beschreven in het Amerikaanse octrooi 5835712 . Het patent werd in 1998 verleend en is nu eigendom van Open Invention Network (OIN). In 2010 noemde OIN Fred DuFresne een "Distinguished Inventor" voor zijn werk aan server-side scripting.
Uitleg
In de begindagen van het web werd server-side scripting bijna uitsluitend uitgevoerd met behulp van een combinatie van C- programma's, Perl- scripts en shellscripts met behulp van de Common Gateway Interface (CGI). Die scripts werden uitgevoerd door het besturingssysteem en de resultaten werden teruggestuurd door de webserver. Veel moderne webservers kunnen direct online scripttalen zoals ASP , JSP , Perl , PHP en Ruby uitvoeren, hetzij door de webserver zelf, hetzij via uitbreidingsmodules (bijv. mod_perl of mod_php ) naar de webserver. Bijvoorbeeld, WebDNA bevat een eigen embedded database systeem. Elke vorm van scripting (dwz CGI of directe uitvoering) kan worden gebruikt om complexe sites met meerdere pagina's op te bouwen, maar directe uitvoering resulteert meestal in minder overhead vanwege het lagere aantal oproepen naar externe tolken.
Dynamische websites gebruiken soms aangepaste webtoepassingsservers, zoals de "Base HTTP Server"-bibliotheek van Glassfish , Plack en Python , hoewel sommigen dit misschien niet als server-side scripting beschouwen. Bij het gebruik van dynamische webgebaseerde scripttechnieken moeten ontwikkelaars een goed begrip hebben van de logische, tijdelijke en fysieke scheiding tussen de client en de server. Als een actie van een gebruiker bijvoorbeeld de uitvoering van code aan de server wil activeren, moet een ontwikkelaar die met klassieke ASP werkt, expliciet de browser van de gebruiker ertoe brengen een verzoek terug te doen naar de webserver.
Server-side scripts worden volledig verwerkt door de servers in plaats van clients. Wanneer clients een pagina met server-side scripts opvragen, verwerkt de applicatieserver de scripts en retourneert een HTML-pagina naar de client.
Server-side weergave
In het begin van het web werd content puur op de Back-End gegenereerd. Na de grote adoptie van Front-End Single-page-applicaties , werd een nieuwe benadering geïntroduceerd om de HTML te genereren met behulp van de Client-applicatie, maar dan op de Back-End. Voorbeelden van frameworks die SSR gebruiken Next.js , Nuxt.js en Nest.js . Ze gebruiken respectievelijk React.js , Vue.js en Angular om de inhoud van de server te genereren.
Server-side generatie
Een andere soortgelijke SSR-techniek voor het genereren van inhoud voor een website is het gebruik van Server-side generatie. Deze techniek maakt gebruik van een applicatie die statische html-pagina's maakt en die bestanden vervolgens naar de server worden verzonden. Het genereren van bestanden kan gebeuren op een compleet andere computer, bijvoorbeeld met behulp van continue levering . Voorbeelden van SSG-tools zijn Jekyll , Gatsby of Eleventy . Die sites worden vaak gehost op Netlify- of GitHub- pagina's. GitHub ondersteunt ook Jekyll-projecten waarbij het automatisch de site bouwt wanneer er wijzigingen aan git worden toegevoegd .
Talen
Er zijn een aantal server-side scripttalen beschikbaar, waaronder:
- Actieve VFP (*.avfp)
- ASP (*.asp)
- ASP.NET-webformulieren (*.aspx)
- ASP.NET-webpagina's (*.cshtml, *.vbhtml)
- ColdFusion- opmaaktaal (*.cfm)
- Ga (*.go)
- Google Apps-script (*.gs)
- Hacken (*.php)
- Haskell (*.hs) (voorbeeld: Yesod )
- Java (*.jsp, *.do) via JavaServer-pagina's
- JavaScript met JavaScript aan de serverzijde (*.ssjs, *.js) (voorbeeld: Node.js )
- Lasso (*.lasso)
- Lua (*.lp *.op *.lua)
- Parser (*.p)
- Perl via de CGI.pm- module (*.cgi, *.ipl, *.pl)
- PHP (*.php, *.php3, *.php4, *.phtml)
- Python (*.py) (voorbeelden: Pyramid , Flask , Django )
- R (*.rhtml)
- Ruby (*.rb, *.rbw) (voorbeeld: Ruby on Rails )
- Tcl (*.tcl)
- WebDNA (*.dna,*.tpl)
- Voortgang WebSpeed (*.r,*.w)
Zie ook
- Scripting aan de clientzijde
- Contentmanagementsysteem (CMS)
- Randzijde omvat:
- JSP
- Node.js
- Volgende.js
- Overzicht van webdesign en webontwikkeling
- Perl/Plack
- PHP
- Serverzijde inclusief (SSI)
- webontwikkeling
Referenties
Externe links
- Server-side scripting bij Curlie ;