Υποστήριξη
Web Development

Τι είναι στατική και τι δυναμική ιστοσελίδα? Σε τι διαφέρουν?

Εδώ και αρκετά χρόνια υπάρχει ένας σαφής διαχωρισμός μεταξύ στατικών και δυναμικών ιστοσελίδων και ίσως έχετε ακούσει κι εσείς αυτήν την ορολογία να προφέρεται συχνά στο χώρο του διαδικτύου.

Δυναμικές θα μπορούσαμε να χαρακτηρίσουμε αυτές τις ιστοσελίδες που παρέχουν κάποια ευελιξία στην διαχείριση / ανάρτηση περιεχομένου.

Στατικές θα λέγαμε ότι είναι αυτές οι ιστοσελίδες των οποίων το περιεχόμενο αλλάζει πιο δύσκολα και συνεπώς παραμένουν οι ίδιες για μεγάλα χρονικά διαστήματα, εξού και ο χαρακτηρισμός στατικές.

Κάθε τύπος σελίδας έχει τα δικά του ιδιαίτερα χαρακτηριστικά τα οποία μπορεί να σας κάνουν να επιλέξετε τον έναν ή τον άλλο τύπο σελίδας.


Δυναμικές και στατικές ιστοσελίδες

Έπειτα από αρκετά χρόνια εξέλιξης των διαδικτυακών εφαρμογών, διανύουμε μία περίοδο που ένα πολύ μεγάλο μέρος των ιστοσελίδων είναι πλέον δυναμικές. Για να μπορέσει μια σελίδα να είναι δυναμική θα πρέπει με κάποιο τρόπο να παρέχεται η δυνατότητα ανανέωσης του περιεχομένου της στον διαχειριστή της. Συνήθως υπάρχει κάποιο διαχειριστικό περιβάλλον μέσω του οποίου γίνεται η διαχείριση περιεχομένου (Content Management) και συνεπώς μία σειρά από scripts τρέχουν στον server προκειμένου να εκτελούνται οι διάφορες διαχειριστικές ενέργειες. Όταν ένας επισκέπτης του ιστοτόπου επισκέπτεται κάποια από αυτές τις σελίδες, αντλούνται οι διάφορες πληροφορίες από τα μέρη που είναι αποθηκευμένες και συγκροτείται η HTML ιστοσελίδα που προβάλλεται στον Browser του επισκέπτη και κατά συνέπεια ένα σύνολο διεργασιών εκτελείται προκειμένου να σχηματιστεί η σελίδα που τελικά διατίθεται στον τελικό χρήστη.

Τα CMS (Content Management System) είναι εφαρμογές (scripts) που τρέχουν στον server και περέχουν τη δυνατότητα δημιουργίας δυναμικής ιστοσελίδας / περιεχομένου. Γνωστά CMS είναι τα Joomla, Wordpress, Drupal κ.ά.

Είναι σχεδόν βέβαιο ότι τα περισσότερα λογισμικά διαχείρισης περιεχομένου (CMS), κάνουν χρήση πολύπλοκων scripts, με αλληλοεξαρτήσεις και συμπεριλήψεις κώδικα του ενός προς το άλλο ή ακόμη και τη χρήση έτοιμων βιβλιοθηκών που διατίθενται από τρίτους κατασκευαστές (third party) και ενσωματώνονται στα CMS για να εξυπηρετήσουν κάποια λειτουργικότητα.

Ένα απλό παράδειγμα που παρουσιάζει τέτοιου είδους εξαρτήσεις / σύνθεσης μιας δυναμικής σελίδας είναι το ακόλουθο:

<!--?php include('header.php');
?>

Site Content

<!--?php
include('footer.php');
?>

Στον παραπάνω κώδικα δηλώνονται 2 συμπεριλήψεις κώδικα (includes), μία προς ένα αρχείο header.php και μία προς ένα footer.php. Τα αρχεία αυτά μπορούν να περιέχουν πληροφορίες και κώδικα που επαναλαμβάνεται σε όλες της σελίδες ενός ιστοτόπου, οπότε και αποθηκεύονται σε ξεχωριστά αρχεία τα οποία γίνονται include από όλες τις άλλες σελίδες. Αυτό σε μία στατική σελίδα δεν μπορεί να συμβεί, αντιθέτως κάθε σελίδα είναι πλήρης περιεχομένου και αυτόνομη με ότι αυτό συνεπάγεται στην επανάληψη του ίδιου κώδικα από αρχείο σε αρχείο.

Κάθε φορά που ένας επισκέπτης επισκέπτεται μία σελίδα όπως την παραπάνω, ο server αναλαμβάνει να συνθέσει τον HTML κώδικα της σελίδας συμπεριλαμβάνοντας όλες τις πληροφορίες των included αρχείων και αυτό είναι μια διαδικασία που γίνεται δυναμικά. Σε αυτό το επίπεδο εισάγεται και η έννοια του κασαρίσματος (caching) κατά την οποία όταν ο server κάνει μία σύνθεση όπως η παραπάνω, αποθηκεύει το HTML αποτέλεσμα σε μία στατική σελίδα και σερβίρει αυτήν στους επόμενους επισκέπτες για κάποιο χρονικό διάστημα. Με αυτόν τον τρόπο δεν καταναλώνει πόρους (επεξεργαστική ισχύ - CPU, μνήμη Ram) για συνεχείς αναδομήσεις σελίδων αντ'αυτού σερβίρει τις σελίδες σαν στατικές. Ο μηχανισμός κασαρίσματος μεριμνά επίσης ως προς τη διαγραφή των στατικών αρχείων μετά από κάποιο χρονικό όριο, ώστε να ανασυντεθεί η σελίδα και να συμπεριλάβει νέες πληροφορίες που ενδεχομένως έχουν αλλάξει στο ενδιάμεσο από τον διαχειριστή της ιστοσελίδας.


Διαχείριση / εξοικονόμηση πόρων

Οι δυναμικές ιστοσελίδες μπορούν πολύ εύκολα να επιδοθούν σε υψηλή κατανάλωση πόρων και να στρεσάρουν τον λογαριασμό σας σε κατανάλωση CPU και Ram, ιδίως όταν κουμπώνουν πολλά plugins, modules, components σε αυτές. Αντιθέτως σε μία στατική σελίδα υπάρχει περιορισμένη δυνατότητα για τέτοιου είδους προσθήκες οπότε υπάρχει σημαντική εξοικονόμηση πόρων κατά το σερβίρισμα στατικών σελίδων.

Με την τεχνική του κασαρίσματος ενδέχεται και οι δυναμικές ιστοσελίδες να γίνουν εν μέρη στατικές και αναλόγως της φύσης της πληροφορίας που διακινεί η κάθε σελίδα, μπορεί κάποιες σελίδες του ίδιου ιστοτόπου να σερβίρονται κασαρισμένες (και συνεπώς στατικές) ενώ κάποιες άλλες με δυναμικό τρόπο.

Κατά γενική ομολογία η χρήση των δυναμικών ιστοσελίδων δίνει μεγαλύτερη ευελιξία στην προσθήκη / τροποποίηση περιεχομένου, έχοντας όμως πάντοτε στον αντίποδα το υψηλότερο κόστος ανάπτυξης και τα θέματα ασφαλείας που μπορεί να προκύψουν. Ιδίως το θέμα της ασφάλειας είναι κομβικό, καθότι στις δυναμικές ιστοσελίδες μπορεί να προκύψουν κενά ασφαλείας από κακογραμμένο κώδικα με αποτέλεσμα να γίνει μία ιστοσελίδα θύμα κακόβουλης ενέργειας hacking. Συμβουλευτείτε κάποιον εξειδικευμένο τεχνικό / προγραμματιστή για θέματα που αφορούν την ασφάλεια δυναμικών ιστοσελίδων και εφαρμογών.

IPGLOBAL IKE   |  IP.GR   Web Hosting and Domain Name registration services in Greece