Back-end: PHP, MySQL

Mirosław Zelent

Mianem back-endu określa się technologie webowe, których kody źródłowe wykonywane są przez procesor serwera (czyli w praktyce przez interpreter danego języka zainstalowany na jego dysku twardym). Jako że skrypty te wykonywane są zdalnie, to rzecz jasna do tych kodów nie może zajrzeć każdy internauta – są jak to mówimy: utajnione (musimy posiadać dostęp do dysku twardego serwera, na przykład dzięki usłudze FTP). Języki back-endowe, takie jak PHP zajmują się mechaniką działania serwisów internetowych i dlatego skrypty te stanowią słodką tajemnicę twórców witryn. Do technologii back-endowych zaliczymy przede wszystkim: PHP i SQL.

Prześledźmy działanie back-endu na przykładzie logowania do Facebooka. Proces logowania przedstawiono na rysunku poniżej:

Logowanie Facebook

Rozpocznijmy od prostej realizacji: surfowanie w sieci nie polega tylko na oglądaniu statycznych stron wizytówek. Czasem zechcemy kupić książkę korzystając z koszyka w wirtualnej księgarni, a czasem postanowimy zalogować do serwisu społecznościowego czy skrzynki pocztowej na własne, spersonalizowane konto. Nasz lokalny komputer nie wystarczy do takich działań – to przecież serwer musi nas wpuścić do swojej bazy danych. I dlatego istnieje back-end.

PHP, SQL, MySQL

Pierwszy język back-endowy, z którym będziesz mieć styczność to PHP.  Podobnie jak JS, jest to pełnoprawny, skryptowy język programowania, no tyle że wykonywany przez procesor serwera, a nie naszej lokalnej maszyny. PHP obsłuży na serwerze mechanikę (logikę) algorytmu logowania, koszyk w sklepie internetowym, rozbudowę armii w grze przeglądarkowej etc.

Pliki PHP znajdują się tylko na serwerze, w ogóle nie trafią na nasz komputer lokalny. W przypadku logowania wygląda to tak: w naszej przeglądarce uzupełniamy login i hasło i klikamy na przycisk "Zaloguj". W tym momencie następuje komunikacja z serwerem, z użyciem protokołu HTTP i pośredniczącego serwera DNS – tak samo jak poprzednim razem.

Jednak teraz nasz komputer lokalny nie prosi już tylko o przesłanie mu strony głównej – teraz podaliśmy swój login i hasło serwerowi, oczekując że ten wpuści nas na nasze spersonalizowane konto na Facebooku. Na serwerze znajduje się dokument z rozszerzeniem .php, który zostaje wywołany do pracy. Nazwa tego pliku była przypisana do kliknięcia przycisku "Zaloguj" w formularzu logowania. To stąd serwer wiedział, który konkretny skrypt PHP zawołać w tym przypadku do pracy.

I teraz – skrypt logowania odczytuje przesłane przez nas dane dostępowe (oczywiście skrypt ten jest wykonywany przez procesor serwera), po czym łączy się z bazą danych wszystkich użytkowników sprawdzając, czy znajduje się w niej użytkownik o takim loginie i haśle.

Bazę danych obsługuje dla nas technologia MySQL. Jest to tzw. system zarządzania bazą danych DBMS (ang. Database Management System). Natomiast SQL (ang. Structured Query Language) to język, który służy do pisania zapytań do tej bazy (zapytania również umieszczone są wewnątrz tego samego skryptu z rozszerzeniem .php).

Reasumując: PHP łączy się z bazą MySQL, i kieruje do niej – w języku SQL – zapytanie: "Czy w bazie znajduje się użytkownik o takim loginie i haśle?". MySQL sprawdza to i odpowiada "Tak!" lub "Nie" (zależnie czy podaliśmy poprawny login i hasło). Bazy danych to potężne i przede wszystkim szybkie silniki składujące olbrzymie ilości danych – nawet gdybyśmy mieli w bazie setki tysięcy zarejestrowanych użytkowników, to i tak MySQL jest w stanie odpowiedzieć na takie zapytanie SQL w ciągu tysięcznych części sekundy!

W zależności od udzielonej przez MySQL odpowiedzi – PHP musi podjąć decyzję. Jeżeli stało się tak, że dane były poprawne i odpowiedź brzmi "Tak" to do klienta zostaje odesłany spersonalizowany profil – panel boczny z avatarem, tablica postów, chat ze znajomymi. Ale uwaga – w jakich językach przychodzi ta odpowiedź? W HTML, CSS i JavaScript! PHP zawsze generuje odpowiedź w językach front-endowych, gdyż ani jedna linia skryptu logowania nie może trafić do przeglądarki klienta.

Po pierwsze byłby to wyciek naszego tajnego algorytmu logowania, a po drugie przeglądarka potraktowałaby kod PHP jak zwykły tekst! Przeglądarka nie interpretuje w ogóle kodu źródłowego PHP czy SQL, bo nie musi. Przeglądarka ma renderować HTML, CSS i JS! Liniami PHP zajmuje się program – interpreter tego języka, zainstalowany na serwerze, co teraz już rozumiemy w pełni. A teraz pora przyjrzeć się bogactwu różnorodności technologii webowych.