Програмування на стороні сервера
Програмування на стороні сервера (англ. server-side scripting, server-side programming) — технічний прийом, що використовується у веб-програмуванні, що включає використання скриптів на веб сервері, які надають індивідуальні відповіді кожному клієнту, що звертається до вебсайту. Альтернативою цьому є надання клієнту веб-сервером статичних веб-сторінок. Скрипти можуть бути написані на будь-якій серверній скриптовій мові. Програмування на стороні сервера відрізняється від застосування скриптів на стороні клієнта, де вбудовані скрипти у веб-сторінку написані, наприклад, на Java-script виконуються у веб-браузері клієнта. Проте обидва технічні прийоми часто використовуються разом.
Програмування на стороні сервера часто використовується для надання індивідуалізованого інтерфейсу користувачу. Воно також дозволяє власнику вебсайту приховати програмний код, що генерує інтерфейс, на відміну від коду скриптів, які виконується на стороні клієнта і є повністю доступним для клієнта. Мінусом такого підходу є те, що при програмуванні на стороні сервера, клієнт повинен надсилати запити через мережу до сервера, щоб отримати нову інформацію через користувацький веб-браузер. Це може дещо сповільнювати роботу користувача, навантажувати сервер і призводити до неможливості використовувати вебзастосунок при відсутності зв'язку із веб-сервером.
Мови програмування
Існує багато мов програмування для створення скриптів на стороні сервера, зокрема:
- ASP (*.asp)
- ActiveVFP (*.avfp)
- ASP.NET (*.aspx)
- ASP.NET MVC (*.cshtml)
- ColdFusion Markup Language (*.cfm)
- Go (*.go)
- Google Apps Script (*.gs)
- Hack (*.php)
- Haskell (*.hs) (example: Yesod)
- Java (*.jsp) via JavaServer Pages
- JavaScript using Server-side JavaScript (*.ssjs, *.js) (example: Node.js)
- Lasso (*.lasso)
- Lua (*.lp *.op *.lua)
- Parser (*.p)
- Perl via the CGI.pm module (*.cgi, *.ipl, *.pl)
- PHP (*.php, *.php3, *.php4, *.phtml)
- Python (*.py) (examples: Pyramid, Flask, Django)
- R (*.rhtml) - (example: rApache)
- Ruby (*.rb, *.rbw) (example: Ruby on Rails)
- SMX (*.smx)
- Tcl (*.tcl)
- WebDNA (*.dna,*.tpl)
- Progress WebSpeed (*.r,*.w)
- Bigwig (*.wig)