Statyczne czy dynamiczne strony internetowe


Czy statyczne strony internetowe to relikt przeszłości?


W 1991 roku w instytucie CERN powstał projekt World Wide Web. Tim Berners-Lee stworzył pierwszą stronę internetową jako wewnętrzny projekt instytutu, służący zbieraniu i wymianie informacji pomiędzy naukowcami.

Pierwsza strona nadal dostępna na serwerach CERN trochę jako żywy pomnik to Hypertext czyli tekst z hyperlinkami do kolejnych stron z tekstem.


Hypertext opisany HyperText Markup Language, czyli HTML’em był typowo statyczny. Powoli pojawiły się obrazki, kolorki (CSS) i coraz to więcej treści.

Statyczny tekst to za mało. Potentat ówczesnego czasu rynku przeglądarek internetowych, Netscape, poszukiwał metod zwiększenia interaktywności dostępnej dla odbiorców. Netscape postawił kilka wymagań co do języka, który mógłby być dodany do HTML’a. W odpowiedzi na wymagania i potrzeby Brendan Eich stworzył język, dodający interaktywności do hypertekstu, znany jako JavaScript.
  
Statyczne strony to właśnie te trzy elementy. HTML, CSS, JavaScript.
Statyczne strony prezentują użytkownikowi treść, która zapisana jest na serwerze. Każdy użytkownik widzi dokładnie tą samą treść.


Strony dynamiczne natomiast są generowane przez Web Aplikacje, czyli aplikacje w architekturze klient-serwer. Przeglądarka wysyła żądanie (request), w odpowiedzi, na które serwer generuje stronę gotową do wyświetlenia i wysyła ją do przeglądarki. Aplikacja może generować różne strony w zależności od ustawień, zmiennych, logiki, wymagań… Każdy użytkownik może widzieć zawartość skonstruowaną specyficznie dla niego.

Przywykliśmy do dużych aplikacji webowych np. email, facebook i tysiące innych, serwujących zawartość dostosowaną do użytkownika. Spersonalizowana zawartość, dostęp do danych specyficznych dla danego użytkownika jak banki, rachunki. Zawartość wymagająca zaawansowanych algorytmów, przetwarzania dużej ilości danych, lub przechowywania dużej ilości danych np sklepy internetowe. Dużo tego.

Ale jest też dużo miejsc gdzie liczy się treść. 
Jak blogi. Stąd coraz większą popularnością cieszy się np: GitHub Pages.
I w taki właśnie sposób wracamy do korzeni. Liczy się treść, liczy się zawartość. Niewielka interaktywność jest wybaczalna, liczy się prostota i szybkość tworzenia treści.

Ale jest jeszcze drugi kierunek dla statycznych stron - więcej przetwarzania po stronie klienta, po stronie przeglądarki. Takie przemieszczenie odpowiedzialności dzieje się już od dawna dzięki JavaScript.
Teraz wchodzimy w nowy etap dzięki WebAssembly, ale to temat sam w sobie :)

Małe porównanie statyczne <==> dynamiczne

Statyczne
Dynamiczne
HTML + CSS + JS
Język używany na serwerze np. C#, Node
Przechowywane na serwerze,
NIE generowane na serwerze
Serwer zwraca dynamicznie
wygenerowaną stronę HTML
Zawartość strony MOŻE się zmieniać dzięki JavaScrip
Serwer nie ingeruje w wygenerowaną stronę,
Serwer odpowiada na kolejne żądania
Zawartość strony może zmieniać się dalej po stronie przeglądarki dzięki JavaScrip
Statyczne strony mogą się zmieniać,
jednak każda zmiana następuje po stronie przeglądarki, po stronie klienta i użytkownika.
Strony statyczne nie są pregenerowane
w trakcie developmentu
Dynamiczne strony również są HTMLem,
Jednak HTML jest generowany dynamicznie
przy każdym żądaniu do serwera
Renderowanie strony odbywa się w przeglądarce po stronie klienta
Duża interaktywność strony,
Ściąganie danych może być czasochłonne
Generowanie strony odbywa się na serwerze i może być skomplikowane
Statyczny serwer, który tylko udostępnia dane będzie wystarczający
Łatwy deployment i utrzymanie zawartości
Serwer może być bardziej skomplikowany
i może być bardziej kosztowny
Duże skomplikowanie procesów wytwórczych ;)

Komentarze

Popularne posty