Czym są języki po stronie serwera?
Języki programowania po stronie serwera (ang. server-side languages) służą do tworzenia logiki aplikacji wykonywanej na serwerze WWW, a nie w przeglądarce użytkownika. Serwer odbiera żądanie HTTP od przeglądarki, uruchamia kod aplikacji, ewentualnie komunikuje się z bazą danych, a następnie odsyła klientowi gotowy wynik — najczęściej dokument HTML, dane w formacie JSON lub plik do pobrania.

To podstawowe rozróżnienie w kwalifikacji INF.03 (Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych). W pytaniach egzaminacyjnych bardzo często trzeba rozróżnić język serwerowy od klienckiego albo wskazać, który język NIE działa po stronie serwera.
Server-side vs client-side
Aplikacja webowa zawsze ma dwie strony:
| Strona | Gdzie się wykonuje | Co tam działa |
|---|---|---|
| klient (front-end) | w przeglądarce użytkownika | HTML, CSS, JavaScript |
| serwer (back-end) | na serwerze WWW | PHP, Java, C#, Python, Ruby, Node.js |
Schemat działania
- Użytkownik wpisuje adres URL lub klika link → przeglądarka wysyła żądanie (request) do serwera.
- Serwer uruchamia kod w języku serwerowym (np. PHP) — wykonuje logikę, łączy się z bazą danych.
- Kod serwerowy generuje dokument HTML (lub JSON / plik).
- Serwer odsyła odpowiedź do przeglądarki, która wyświetla stronę użytkownikowi.
Po stronie klienta dalej działa JavaScript — np. obsługuje kliknięcia, walidację formularzy, animacje. Ale danych w bazie modyfikować nie potrafi — musi „poprosić" o to serwer.
Najpopularniejsze języki po stronie serwera
PHP
PHP to najbardziej popularny język serwerowy w klasycznych stronach WWW. Cechy:
- język skryptowy ogólnego przeznaczenia,
- zagnieżdżany w kodzie HTML (specjalnymi znacznikami
<?php ... ?>), - uruchamiany po stronie serwera,
- używany w popularnych systemach CMS: WordPress, Joomla, Drupal.
To częsta odpowiedź egzaminacyjna: „język skryptowy ogólnego przeznaczenia, zagnieżdżany w HTML, uruchamiany po stronie serwera" → PHP.
Java
Java to obiektowy język ogólnego przeznaczenia, używany do:
- dużych aplikacji biznesowych (banki, ubezpieczenia),
- systemów backendowych (frameworki: Spring, Jakarta EE),
- aplikacji mobilnych Android.
Kod kompilowany jest do bytecode'u i uruchamiany przez JVM (Java Virtual Machine).
C# / .NET
C# to język firmy Microsoft, używany głównie z platformą .NET i frameworkiem ASP.NET. Stosowany w:
- aplikacjach webowych Microsoft,
- aplikacjach desktopowych Windows,
- grach (Unity).
Python
Python to język wysokiego poziomu, bardzo popularny w:
- aplikacjach webowych (frameworki Django, Flask, FastAPI),
- automatyzacji, skryptach,
- analizie danych i uczeniu maszynowym,
- REST API.
Ruby
Ruby najbardziej znany z frameworka Ruby on Rails — platformy webowej preferującej „convention over configuration".
Node.js — JavaScript po stronie serwera
Node.js to środowisko uruchomieniowe pozwalające wykonywać JavaScript po stronie serwera. Powstało, by można było używać tego samego języka i po stronie klienta, i po stronie serwera. Frameworki webowe oparte na Node.js to m.in. Express, NestJS, Next.js.
Node.js bywa „pułapką" w pytaniach egzaminacyjnych — JavaScript klasycznie jest językiem klienta, ale dzięki Node.js może być też serwerowym.
Zestaw języków serwerowych — odpowiedzi egzaminacyjne
W pytaniach typu „Które języki działają po stronie serwera?" poprawny zestaw to najczęściej:
PHP, Java, C#, Python, Ruby (i opcjonalnie Node.js)
To pełen zestaw kandydatów na poprawną odpowiedź. Jeśli w zestawie odpowiedzi jest JavaScript bez kontekstu Node.js — w klasycznych pytaniach NIE jest to język serwerowy.
Co NIE jest językiem serwerowym?
To częsta pułapka w pytaniach. Nie są typowymi językami serwerowymi:
| Pojęcie | Czym faktycznie jest |
|---|---|
| AJAX | technika komunikacji przeglądarki z serwerem bez przeładowania strony (Asynchronous JavaScript And XML) — nie język |
| ActionScript | historyczny język technologii Adobe Flash (dziś martwej), nie był językiem serwerowym |
| HTML | język znaczników opisujący strukturę strony — nie programowania |
| CSS | język opisu wyglądu — nie programowania |
| JavaScript (klasycznie) | język klienta, działa w przeglądarce; po stronie serwera tylko jako Node.js |
| SQL | język zapytań do bazy danych — używany przez aplikację serwerową, ale sam w sobie nie jest językiem aplikacji |
Front-end / client-side — co tam działa?
Po stronie klienta (front-endu) działa klasycznie:
- HTML — struktura,
- CSS — wygląd,
- JavaScript — interaktywność (bez Node.js).
Jeśli pytanie brzmi „który język jest typowo front-endowy / wykonywany po stronie klienta?" — odpowiedź to JavaScript.
Język + baza danych
Język serwerowy ma dostęp do bazy danych — to jego kluczowa cecha. W aplikacji webowej:
- PHP + MySQL — najpopularniejsze połączenie (sklepy internetowe, blogi, fora),
- PHP + PostgreSQL — przez funkcje
pg_*, - Java + dowolna baza — przez JDBC,
- Python + dowolna baza — przez SQLAlchemy lub natywne biblioteki,
- C# + MS SQL Server / dowolna — przez Entity Framework.
Aby obsłużyć połączenie z bazą MySQL podczas tworzenia aplikacji webowej, można użyć m.in. PHP (funkcje mysqli_*), Java (JDBC), Python (PyMySQL, mysql-connector). Więcej w haśle komunikacja aplikacji internetowej z bazą SQL.
Co PHP potrafi, a czego nie?
PHP jest językiem uniwersalnym dla aplikacji webowych — potrafi:
- generować dynamiczne strony HTML,
- obsługiwać formularze, sesje, ciasteczka,
- komunikować się z bazami danych (MySQL, PostgreSQL, SQLite, MS SQL i in.),
- czytać i zapisywać pliki na serwerze,
- wysyłać e-maile, generować obrazy, PDF-y,
- konsumować API zewnętrznych.
Czego nie potrafi robić bezpośrednio:
- interakcji w przeglądarce bez przeładowania strony — to domena JavaScript (lub AJAX),
- animacji w czasie rzeczywistym po stronie klienta,
- bezpośredniej obsługi zdarzeń przeglądarki (kliknięcia, ruchy myszy) — kod PHP wykonuje się na serwerze, zanim strona dotrze do użytkownika.
Stąd typowe pytanie egzaminacyjne: „W języku PHP nie można zrealizować…" — odpowiedzią są zwykle operacje wykonywane po stronie klienta (np. „natychmiastowej walidacji formularza w przeglądarce bez wysłania go do serwera").
CMS Joomla — środowisko serwerowe
System CMS Joomla! jest aplikacją napisaną w PHP. Aby ją uruchomić, potrzebne jest typowe środowisko serwerowe:
- serwer WWW (Apache, Nginx),
- interpreter PHP,
- baza danych SQL (MySQL / MariaDB).
To stos określany jako LAMP (Linux + Apache + MySQL + PHP) lub WAMP/XAMPP w wariancie deweloperskim.
Częste pomyłki — nie myl tego!
- język serwerowy ≠ język klienta — PHP/Java/Python/C#/Ruby działają na serwerze, JavaScript klasycznie w przeglądarce.
- JavaScript ≠ Java — to dwa zupełnie różne języki. Java to obiektowy język ogólnego przeznaczenia, JavaScript to skryptowy język webowy.
- AJAX nie jest językiem — to technika komunikacji asynchronicznej między przeglądarką a serwerem.
- HTML i CSS to nie języki programowania — to języki opisu (znaczników / stylów).
- SQL nie jest językiem aplikacji — to język zapytań do bazy danych.
- ActionScript to nie język serwerowy — to historyczny język Flasha (już niewspierany).
- Node.js to nie nowy język — to środowisko uruchamiające JavaScript po stronie serwera.
- PHP nie wykonuje się w przeglądarce — kod PHP wykonuje się na serwerze, do przeglądarki trafia już gotowy HTML (bez kodu PHP).
Najważniejsze do zapamiętania
Języki po stronie serwera to PHP, Java, C#, Python, Ruby (i Node.js dla JavaScriptu). Działają na serwerze WWW, generują HTML/JSON, łączą się z bazą danych. JavaScript klasycznie działa po stronie klienta, w przeglądarce. AJAX to technika, nie język. ActionScript to historyczny język Flash. PHP to język skryptowy ogólnego przeznaczenia, zagnieżdżany w HTML i uruchamiany po stronie serwera — to pełna „etykieta" odpowiedzi egzaminacyjnej.