Πώς συνδέονται μεταξύ τους ο browser, ο server, το δίκτυο, η ασφάλεια και η απόδοση; Ένας διαδραστικός γράφος με 78 έννοιες και 180 σχέσεις, που δείχνει πώς συνεργάζονται οι τεχνολογίες ώστε να λειτουργήσει ένας ιστότοπος.
Όλες οι έννοιες και οι σχέσεις τους
Η ίδια πληροφορία σε μορφή λίστας, για πλοήγηση με πληκτρολόγιο και αναγνώστες οθόνης. Πάτησε μια έννοια για να ανοίξει η εξήγησή της.
Βασικές Έννοιες (6)
— Ο ιστότοπος είναι το σύνολο των σελίδων, των εικόνων, των αρχείων και των υπηρεσιών που ο επισκέπτης βλέπει κάτω από ένα domain. Για να λειτουργήσει χρειάζεται συνεργασία όλων των υπόλοιπων εννοιών του χάρτη: κώδικας στον browser, κώδικας στον server, δίκτυο, ασφάλεια και υποδομή. Παραδείγματα: agorasite.gr · Ένα ηλεκτρονικό κατάστημα · Ένα blog
Ιστότοπος (Website) αποτελείται από Web Page
Ιστότοπος (Website) προσπελαύνεται μέσω Domain Name
Ιστότοπος (Website) εξυπηρετείται από Web Server
Ιστότοπος (Website) φιλοξενείται σε Web Hosting
Ιστότοπος (Website) έχει ως τμήμα Frontend
Ιστότοπος (Website) έχει ως τμήμα Backend
Ιστότοπος (Website) χρειάζεται Security
Ιστότοπος (Website) αξιολογείται ως προς Performance
Ιστότοπος (Website) δημοσιεύεται μέσω Deployment
Ιστότοπος (Website) μπορεί να εξελιχθεί σε Web Application
Ιστότοπος (Website) βελτιστοποιείται για SEO
— Κάθε σελίδα έχει τη δική της διεύθυνση URL και αποτελείται από HTML για τη δομή, CSS για την εμφάνιση και προαιρετικά JavaScript για τη συμπεριφορά. Όταν ο χρήστης ανοίγει μια διεύθυνση, ο browser ζητά συγκεκριμένα αυτή τη σελίδα από τον server. Παραδείγματα: /contact · /pricing · Ένα άρθρο blog
Ιστότοπος (Website) αποτελείται από Web Page
Web Page δομείται με HTML
Web Page μορφοποιείται με CSS
Web Page αποκτά διαδραστικότητα με JavaScript
Web Page προσδιορίζεται από URL
Accessibility κάνει προσβάσιμη Web Page
— Μια web εφαρμογή μοιάζει περισσότερο με πρόγραμμα παρά με έγγραφο: ο χρήστης συνδέεται, εισάγει δεδομένα και παίρνει αποτελέσματα. Συνήθως έχει frontend που επικοινωνεί με ένα backend μέσω API. Παραδείγματα: Gmail · Google Docs · Ένα πάνελ διαχείρισης παραγγελιών
Ιστότοπος (Website) μπορεί να εξελιχθεί σε Web Application
Web Application μπορεί να υλοποιηθεί ως Single Page Application
Web Application επικοινωνεί με API
Web Application βασίζεται στο Backend
Web Application συχνά απαιτεί Authentication
— Ο browser κατεβάζει τους πόρους μιας σελίδας, χτίζει από το HTML το DOM, εφαρμόζει τα στυλ, εκτελεί το JavaScript και ζωγραφίζει το αποτέλεσμα. Επιπλέον κρατά cookies και cache και επιβάλλει κανόνες ασφαλείας όπως CORS και CSP. Παραδείγματα: Chrome · Firefox · Safari · Edge
Browser αναλύει HTML
Browser εφαρμόζει CSS
Browser εκτελεί JavaScript
Browser δημιουργεί DOM
Browser επικοινωνεί με Web Server
Browser μιλά HTTP
Browser αποθηκεύει και αποστέλλει Cookies
Browser διατηρεί Browser Cache
Browser ζητά επίλυση ονόματος από DNS
Browser επιβάλλει CORS
Browser εφαρμόζει Content Security Policy
Frontend εκτελείται στον Browser
Lazy Loading υποστηρίζεται από Browser
Browser εκτελεί Browser Rendering
— Το frontend είναι ό,τι εκτελείται στη συσκευή του χρήστη: οι σελίδες, τα κουμπιά, οι φόρμες και τα animations. Η ποιότητά του καθορίζει πόσο γρήγορη, κατανοητή και προσβάσιμη φαίνεται η σελίδα. Παραδείγματα: Μια φόρμα επικοινωνίας · Ένα μενού πλοήγησης · Ένα καλάθι αγορών
Ιστότοπος (Website) έχει ως τμήμα Frontend
Frontend εκτελείται στον Browser
Frontend χρησιμοποιεί HTML
Frontend χρησιμοποιεί CSS
Frontend χρησιμοποιεί JavaScript
— Το backend τρέχει στον server και δεν το βλέπει ο χρήστης. Δέχεται τα αιτήματα, ελέγχει ποιος είναι ο χρήστης, διαβάζει ή γράφει στη βάση δεδομένων και επιστρέφει HTML ή δεδομένα JSON. Παραδείγματα: PHP (όπως εδώ) · Node.js · Python/Django · Java
Ιστότοπος (Website) έχει ως τμήμα Backend
Web Application βασίζεται στο Backend
Backend εκτελείται σε Application Server
Backend διαβάζει και γράφει δεδομένα Database
Backend εκθέτει λειτουργίες μέσω API
Backend υλοποιεί Authentication
Backend διαχειρίζεται Session
Backend μπορεί να χρησιμοποιεί Server Cache
Server-Side Rendering εκτελείται στο Backend
Logging καταγράφει σφάλματα του Backend
Frontend (14)
— Το HTML ορίζει τι είναι κάθε κομμάτι του περιεχομένου: τίτλος, παράγραφος, λίστα, σύνδεσμος, εικόνα, φόρμα. Η σωστή σημασιολογική χρήση (π.χ. h1, nav, main) βοηθά τις μηχανές αναζήτησης και τους χρήστες με αναγνώστες οθόνης. Παραδείγματα: <h1>Τίτλος</h1> · <a href="/about">About</a> · <img src="logo.webp" alt="Λογότυπο">
Web Page δομείται με HTML
Browser αναλύει HTML
Frontend χρησιμοποιεί HTML
DOM αναπαριστά ως δέντρο HTML
Accessibility βασίζεται σε σημασιολογικό HTML
Server-Side Rendering παράγει έτοιμο HTML
HTTP μεταφέρει HTML
— Το CSS ορίζει πώς φαίνεται το HTML: χρώματα, γραμματοσειρές, αποστάσεις, διατάξεις και animations. Οι κανόνες του μπορούν να αλλάζουν ανάλογα με το μέγεθος της οθόνης ή την κατάσταση ενός στοιχείου. Παραδείγματα: button { background: #0d6efd; } · nav a:hover { text-decoration: underline; }
Web Page μορφοποιείται με CSS
Browser εφαρμόζει CSS
Frontend χρησιμοποιεί CSS
JavaScript μεταβάλλει δυναμικά μέσω DOM CSS
CSS επιλέγει και μορφοποιεί στοιχεία του DOM
Media Queries αποτελεί χαρακτηριστικό της CSS
Cumulative Layout Shift επηρεάζεται από ασταθείς διαστάσεις στη CSS
CSS παρέχει CSS Grid
CSS παρέχει Flexbox
HTTP μεταφέρει CSS
Browser Rendering εφαρμόζει στυλ από CSS
— Η JavaScript είναι η γλώσσα που τρέχει μέσα στον browser. Αντιδρά σε κλικ και πληκτρολόγηση, αλλάζει το DOM χωρίς να ξαναφορτώσει η σελίδα και μπορεί να ζητά δεδομένα από APIs. Βαριά ή κακογραμμένη JavaScript κάνει τη σελίδα αργή. Παραδείγματα: Άνοιγμα μενού στο κινητό · Έλεγχος φόρμας πριν σταλεί · fetch("/api/orders")
Web Page αποκτά διαδραστικότητα με JavaScript
Browser εκτελεί JavaScript
Frontend χρησιμοποιεί JavaScript
JavaScript διαβάζει και τροποποιεί DOM
JavaScript μεταβάλλει δυναμικά μέσω DOM CSS
JavaScript καλεί μέσω fetch/XHR API
TypeScript μεταγλωττίζεται σε JavaScript
Accessibility χρειάζεται διαχείριση focus και ARIA μέσω JavaScript
Single Page Application βασίζεται σε JavaScript
XSS εκμεταλλεύεται JavaScript
Interaction to Next Paint επηρεάζεται από βαριά εκτέλεση της JavaScript
HTTP μεταφέρει JavaScript
— Η TypeScript προσθέτει τύπους στη JavaScript ώστε πολλά λάθη να εντοπίζονται πριν τρέξει ο κώδικας. Ο browser δεν την καταλαβαίνει απευθείας· πριν τη δημοσίευση μετατρέπεται σε απλή JavaScript. Παραδείγματα: function total(price: number, qty: number) · Angular · Μεγάλες εφαρμογές React
TypeScript μεταγλωττίζεται σε JavaScript
— Όταν ο browser διαβάζει το HTML, το μετατρέπει σε δέντρο αντικειμένων, το DOM. Η JavaScript χρησιμοποιεί αυτό το δέντρο για να βρει στοιχεία και να αλλάξει κείμενο, χρώματα ή CSS classes, και η αλλαγή φαίνεται αμέσως στην οθόνη. Παραδείγματα: document.querySelector("h1") · el.classList.add("active") · el.textContent = "Γεια"
Browser δημιουργεί DOM
JavaScript διαβάζει και τροποποιεί DOM
DOM αναπαριστά ως δέντρο HTML
CSS επιλέγει και μορφοποιεί στοιχεία του DOM
XSS εγχέει κακόβουλο περιεχόμενο στο DOM
Browser Rendering χρησιμοποιεί DOM
— Η ίδια σελίδα πρέπει να είναι άνετη σε κινητό, tablet και μεγάλη οθόνη. Αυτό γίνεται με ευέλικτες διατάξεις, εικόνες που προσαρμόζονται και CSS κανόνες που αλλάζουν ανάλογα με το πλάτος. Παραδείγματα: Μενού που γίνεται «χάμπουργκερ» στο κινητό · Κάρτες σε 3 στήλες σε desktop και 1 στήλη σε κινητό
Responsive Design χρησιμοποιεί Media Queries
Responsive Design υλοποιείται με Flexbox
Responsive Design υλοποιείται με CSS Grid
— Τα media queries είναι συνθήκες μέσα στο CSS. Οι κανόνες που περιέχουν εφαρμόζονται μόνο όταν η συνθήκη ισχύει, π.χ. όταν η οθόνη είναι στενότερη από 768px ή όταν ο χρήστης προτιμά σκούρο θέμα. Παραδείγματα: @media (max-width: 768px) { ... } · @media (prefers-reduced-motion: reduce) { ... }
Responsive Design χρησιμοποιεί Media Queries
Media Queries αποτελεί χαρακτηριστικό της CSS
— Το Flexbox τοποθετεί στοιχεία σε μία γραμμή ή στήλη και μοιράζει τον διαθέσιμο χώρο ανάμεσά τους. Είναι κατάλληλο για μενού, γραμμές κουμπιών και κάρτες που πρέπει να ευθυγραμμιστούν. Παραδείγματα: display: flex; gap: 8px; · Κεντράρισμα ενός στοιχείου με justify-content: center
Responsive Design υλοποιείται με Flexbox
CSS παρέχει Flexbox
— Το CSS Grid ορίζει γραμμές και στήλες ταυτόχρονα και τοποθετεί τα στοιχεία σε κελιά. Είναι κατάλληλο για ολόκληρες διατάξεις σελίδας, όπως κεφαλίδα, πλευρική στήλη, περιεχόμενο και υποσέλιδο. Παραδείγματα: grid-template-columns: repeat(3, 1fr); · Συλλογή εικόνων
Responsive Design υλοποιείται με CSS Grid
CSS παρέχει CSS Grid
— Η προσβασιμότητα εξασφαλίζει ότι κάθε επισκέπτης μπορεί να χρησιμοποιήσει τη σελίδα, ακόμη κι αν δεν βλέπει την οθόνη, δεν χρησιμοποιεί ποντίκι ή δυσκολεύεται με χρώματα και μικρά γράμματα. Βοηθά και το SEO, γιατί βασίζεται στην ίδια καθαρή δομή HTML. Παραδείγματα: Εναλλακτικό κείμενο (alt) στις εικόνες · Πλοήγηση μόνο με Tab · Επαρκής αντίθεση χρωμάτων
Accessibility κάνει προσβάσιμη Web Page
Accessibility βασίζεται σε σημασιολογικό HTML
Accessibility χρειάζεται διαχείριση focus και ARIA μέσω JavaScript
— Σε μια SPA ο browser φορτώνει την εφαρμογή μία φορά και στη συνέχεια η JavaScript αλλάζει το περιεχόμενο όταν ο χρήστης πλοηγείται, ζητώντας από το API μόνο τα δεδομένα. Η αίσθηση είναι πιο άμεση, αλλά η αρχική φόρτωση και το SEO χρειάζονται προσοχή. Παραδείγματα: Gmail · Trello · Εφαρμογές σε React ή Vue
Web Application μπορεί να υλοποιηθεί ως Single Page Application
Single Page Application βασίζεται σε JavaScript
Single Page Application ανταλλάσσει δεδομένα μέσω API
Single Page Application αντιπαραβάλλεται με Server-Side Rendering
Single Page Application χωρίς SSR δυσκολεύει SEO
— Στο SSR ο server ετοιμάζει το πλήρες HTML της σελίδας πριν το στείλει, οπότε ο browser και οι μηχανές αναζήτησης βλέπουν το περιεχόμενο αμέσως. Το ίδιο κάνει και μια κλασική PHP σελίδα. Παραδείγματα: Σελίδες PHP · Next.js με SSR · Blog που παράγεται από τη βάση
Single Page Application αντιπαραβάλλεται με Server-Side Rendering
Server-Side Rendering εκτελείται στο Backend
Server-Side Rendering παράγει έτοιμο HTML
Server-Side Rendering βελτιώνει SEO
Server-Side Rendering μπορεί να βελτιώσει Largest Contentful Paint
— Το SEO είναι το σύνολο των πρακτικών ώστε η σελίδα να εμφανίζεται ψηλά στα αποτελέσματα αναζήτησης. Εξαρτάται από το περιεχόμενο, τη δομή του HTML, την ταχύτητα και την ασφάλεια (HTTPS). Παραδείγματα: Μοναδικός τίτλος και περιγραφή ανά σελίδα · Ένα h1 ανά σελίδα · Sitemap
Single Page Application χωρίς SSR δυσκολεύει SEO
Server-Side Rendering βελτιώνει SEO
SEO επηρεάζεται από Core Web Vitals
Ιστότοπος (Website) βελτιστοποιείται για SEO
— Ο browser χτίζει το DOM από το HTML, εφαρμόζει τους κανόνες CSS, υπολογίζει θέση και μέγεθος κάθε στοιχείου (layout) και τέλος ζωγραφίζει τα pixels (paint). Όταν η JavaScript αλλάζει το DOM, μέρος της διαδικασίας ξαναγίνεται. Παραδείγματα: Πρώτη εμφάνιση της σελίδας · Επαναϋπολογισμός διάταξης όταν αλλάζει το μέγεθος του παραθύρου
Browser εκτελεί Browser Rendering
Browser Rendering χρησιμοποιεί DOM
Browser Rendering εφαρμόζει στυλ από CSS
Δίκτυο & Internet (16)
— Το Internet είναι το παγκόσμιο δίκτυο που συνδέει εκατομμύρια δίκτυα. Το Web (οι ιστοσελίδες) είναι μία από τις υπηρεσίες που τρέχουν πάνω του, όπως και το email. Παραδείγματα: Web · Email · Streaming βίντεο
Internet αποτελείται από Δίκτυο (Network)
Internet χρησιμοποιεί διευθύνσεις IP Address
Internet μεταφέρει δεδομένα μέσω TCP
Internet μεταφέρει δεδομένα μέσω UDP
— Ένα δίκτυο είναι οι συσκευές και οι συνδέσεις που μεταφέρουν πακέτα δεδομένων. Η απόσταση, η ποιότητα της σύνδεσης και η συμφόρηση επηρεάζουν άμεσα πόσο γρήγορα φτάνει μια σελίδα στον χρήστη. Παραδείγματα: Το WiFi του σπιτιού · Δίκτυο κινητής τηλεφωνίας · Το δίκτυο του data center
Internet αποτελείται από Δίκτυο (Network)
Bandwidth είναι χαρακτηριστικό του Δίκτυο (Network)
Latency επηρεάζεται από Δίκτυο (Network)
Firewall φιλτράρει την κίνηση του Δίκτυο (Network)
— Το domain είναι το όνομα που πληκτρολογεί ο χρήστης αντί για μια αριθμητική IP. Νοικιάζεται από εταιρεία καταχώρισης και δείχνει, μέσω DNS, στον server του ιστότοπου. Παραδείγματα: agorasite.gr · example.com · Υποτομέας: blog.example.com
Ιστότοπος (Website) προσπελαύνεται μέσω Domain Name
Domain Name επιλύεται μέσω DNS
Domain Name αποτελεί τμήμα του URL
SSL/TLS Certificate εκδίδεται για Domain Name
— Το URL είναι η πλήρης διεύθυνση ενός πόρου. Περιέχει το πρωτόκολλο, το domain, τη διαδρομή και προαιρετικά παραμέτρους, και λέει στον browser τι ακριβώς να ζητήσει και από πού. Παραδείγματα: https://agorasite.gr/web-development-map · https://example.com/search?q=dns
Web Page προσδιορίζεται από URL
Domain Name αποτελεί τμήμα του URL
URL χρησιμοποιεί πρωτόκολλο όπως HTTPS
— Το Domain Name System μετατρέπει ονόματα χώρου, όπως agorasite.gr, σε πληροφορίες διευθυνσιοδότησης, όπως IP addresses, ώστε ο browser να μπορεί να εντοπίσει τον κατάλληλο server. Αν το DNS είναι αργό ή λάθος ρυθμισμένο, η σελίδα καθυστερεί ή δεν ανοίγει καθόλου, ακόμη κι αν ο server λειτουργεί. Παραδείγματα: Εγγραφή A: agorasite.gr → διεύθυνση IPv4 · Εγγραφή CNAME: www → agorasite.gr · Αλλαγή server: ενημέρωση της εγγραφής A
Browser ζητά επίλυση ονόματος από DNS
Domain Name επιλύεται μέσω DNS
DNS επιστρέφει διεύθυνση IP Address
DNS χρησιμοποιεί συνήθως UDP
CDN συχνά ενεργοποιείται μέσω DNS
— Κάθε συσκευή και κάθε server στο Internet έχει μια IP διεύθυνση, που λειτουργεί σαν ταχυδρομική διεύθυνση για τα πακέτα δεδομένων. Υπάρχουν IPv4 (π.χ. 203.0.113.10) και IPv6. Παραδείγματα: 203.0.113.10 (IPv4) · 2001:db8::1 (IPv6)
Internet χρησιμοποιεί διευθύνσεις IP Address
DNS επιστρέφει διεύθυνση IP Address
Web Server βρίσκεται σε IP Address
— Το TCP χωρίζει τα δεδομένα σε πακέτα, τα αριθμεί, επιβεβαιώνει την παραλαβή και ξαναστέλνει όσα χάθηκαν. Έτσι ο browser παίρνει ολόκληρη και σωστή τη σελίδα, με κόστος κάποιας καθυστέρησης για τη δημιουργία της σύνδεσης. Παραδείγματα: Το HTTP/1.1 και το HTTP/2 τρέχουν πάνω από TCP · Η αποστολή email
Internet μεταφέρει δεδομένα μέσω TCP
HTTP τρέχει συνήθως πάνω από TCP
HTTP/2 τρέχει πάνω από TCP
— Το UDP στέλνει πακέτα χωρίς να δημιουργεί σύνδεση και χωρίς να εγγυάται ότι θα φτάσουν. Είναι πιο γρήγορο και ελαφρύ, γι’ αυτό το χρησιμοποιούν το DNS, το streaming και το HTTP/3 (μέσω QUIC), που προσθέτει αξιοπιστία από πάνω. Παραδείγματα: Ερωτήματα DNS · Βιντεοκλήσεις · QUIC / HTTP/3
Internet μεταφέρει δεδομένα μέσω UDP
DNS χρησιμοποιεί συνήθως UDP
HTTP/3 τρέχει πάνω από (QUIC) UDP
— Το HTTP είναι η «γλώσσα» του Web. Ο browser στέλνει αίτημα με μέθοδο (GET, POST…) και διεύθυνση, και ο server απαντά με κωδικό κατάστασης, headers και περιεχόμενο. Δεν κρατά μνήμη ανάμεσα στα αιτήματα, γι’ αυτό χρειάζονται cookies και sessions. Παραδείγματα: GET /about → 200 OK · POST /contact → 302 Redirect · 404 Not Found
Browser μιλά HTTP
HTTP τρέχει συνήθως πάνω από TCP
HTTPS είναι η ασφαλής εκδοχή του HTTP
HTTP/2 είναι εξέλιξη του HTTP
HTTP/3 είναι εξέλιξη του HTTP
Web Server εξυπηρετεί αιτήματα HTTP
REST API χρησιμοποιεί HTTP
GraphQL μεταφέρεται συνήθως μέσω HTTP
Cookies μεταφέρονται σε headers του HTTP
Compression εφαρμόζεται μέσω headers του HTTP
Browser Cache ελέγχεται από headers του HTTP
HTTP μεταφέρει HTML
HTTP μεταφέρει CSS
HTTP μεταφέρει JavaScript
— Το HTTPS είναι το HTTP μέσα σε κρυπτογραφημένη σύνδεση. Κανείς ενδιάμεσα δεν μπορεί να διαβάσει ή να αλλάξει τα δεδομένα, και ο browser επιβεβαιώνει ότι μιλά με τον πραγματικό server. Σήμερα είναι απαραίτητο για login, πληρωμές και καλό SEO. Παραδείγματα: Το λουκέτο στη γραμμή διευθύνσεων · Προειδοποίηση «Μη ασφαλής» όταν λείπει
HTTPS είναι η ασφαλής εκδοχή του HTTP
HTTPS χρησιμοποιεί για ασφάλεια TLS
URL χρησιμοποιεί πρωτόκολλο όπως HTTPS
Authentication απαιτεί HTTPS
Security ενισχύεται με HTTPS
— Το TLS διαπραγματεύεται κλειδιά κρυπτογράφησης μεταξύ browser και server και ελέγχει το πιστοποιητικό του server. Είναι το πρωτόκολλο που κάνει το HTTPS ασφαλές (παλαιότερα λεγόταν SSL). Παραδείγματα: TLS 1.3 · Πιστοποιητικό Let’s Encrypt
HTTPS χρησιμοποιεί για ασφάλεια TLS
TLS βασίζεται σε SSL/TLS Certificate
Web Server τερματίζει συνδέσεις TLS
Reverse Proxy μπορεί να τερματίζει TLS
— Το HTTP/2 επιτρέπει πολλά αιτήματα ταυτόχρονα μέσα σε μία σύνδεση (multiplexing) και συμπιέζει τα headers. Έτσι μειώνει την αναμονή όταν η σελίδα χρειάζεται δεκάδες αρχεία. Παραδείγματα: Φόρτωση πολλών μικρών αρχείων CSS/JS/εικόνων σε μία σύνδεση
HTTP/2 είναι εξέλιξη του HTTP
HTTP/2 τρέχει πάνω από TCP
HTTP/2 μειώνει με multiplexing Latency
— Το HTTP/3 τρέχει πάνω από QUIC (UDP). Ένα χαμένο πακέτο δεν σταματά όλα τα υπόλοιπα αιτήματα και η σύνδεση ξεκινά πιο γρήγορα, κάτι που βοηθά ιδιαίτερα σε κινητά και ασταθή δίκτυα. Παραδείγματα: Μετάβαση από WiFi σε 4G χωρίς διακοπή της φόρτωσης
HTTP/3 είναι εξέλιξη του HTTP
HTTP/3 τρέχει πάνω από (QUIC) UDP
HTTP/3 μειώνει Latency
— Η latency είναι ο χρόνος αναμονής πριν αρχίσουν να έρχονται δεδομένα. Εξαρτάται από την απόσταση, τον αριθμό των ενδιάμεσων κόμβων και τον χρόνο που χρειάζεται ο server για να απαντήσει. Δεν μειώνεται αυξάνοντας απλώς το bandwidth. Παραδείγματα: Ping 20 ms προς server στην Αθήνα · Ping 180 ms προς server στις ΗΠΑ
HTTP/2 μειώνει με multiplexing Latency
HTTP/3 μειώνει Latency
Latency επηρεάζεται από Δίκτυο (Network)
Latency επηρεάζεται από τον χρόνο απόκρισης του Web Server
Latency επηρεάζει Performance
CDN μπορεί να μειώσει Latency
Largest Contentful Paint επηρεάζεται από Latency
— Το bandwidth είναι πόσα δεδομένα χωρούν στη σύνδεση ανά δευτερόλεπτο. Έχει σημασία για μεγάλα αρχεία, όπως εικόνες και βίντεο, ενώ για πολλά μικρά αιτήματα μετρά περισσότερο η latency. Παραδείγματα: Σύνδεση 100 Mbps · Εικόνα 3 MB έναντι 150 KB
Bandwidth είναι χαρακτηριστικό του Δίκτυο (Network)
CDN εξοικονομεί Bandwidth
Compression μειώνει τη χρήση του Bandwidth
Image Optimization εξοικονομεί Bandwidth
— Ένα CDN κρατά αντίγραφα στατικών αρχείων (εικόνες, CSS, JS) σε servers σε πολλές χώρες και εξυπηρετεί τον κάθε χρήστη από τον πλησιέστερο. Μειώνει τη latency και αφήνει τον κεντρικό server να ασχολείται μόνο με τα δυναμικά αιτήματα. Παραδείγματα: Cloudflare · Amazon CloudFront · jsDelivr για βιβλιοθήκες JavaScript
CDN μπορεί να μειώσει Latency
CDN αποφορτίζει Web Server
CDN εξοικονομεί Bandwidth
CDN συχνά ενεργοποιείται μέσω DNS
Servers & Backend (12)
— Ο web server περιμένει συνδέσεις, διαβάζει τα HTTP αιτήματα και είτε επιστρέφει ένα αρχείο είτε περνά το αίτημα σε εφαρμογή (π.χ. PHP). Ρυθμίζει επίσης HTTPS, συμπίεση, redirects και caching. Παραδείγματα: Apache · Nginx · Caddy
Ιστότοπος (Website) εξυπηρετείται από Web Server
Browser επικοινωνεί με Web Server
Web Server βρίσκεται σε IP Address
SSL/TLS Certificate εγκαθίσταται στον Web Server
Latency επηρεάζεται από τον χρόνο απόκρισης του Web Server
CDN αποφορτίζει Web Server
Web Server εξυπηρετεί αιτήματα HTTP
Web Server τερματίζει συνδέσεις TLS
Web Server προωθεί δυναμικά αιτήματα στον Application Server
Web Server μπορεί να χρησιμοποιεί Server Cache
Reverse Proxy προωθεί αιτήματα στον Web Server
Load Balancer κατανέμει την κίνηση σε Web Server
Firewall προστατεύει Web Server
Web Hosting παρέχει Web Server
Monitoring παρακολουθεί Web Server
Logging καταγράφει αιτήματα του Web Server
Compression ενεργοποιείται στον Web Server
— Ο application server εκτελεί τον κώδικα της εφαρμογής και επιστρέφει το αποτέλεσμα στον web server. Ο web server είναι καλός στο να σερβίρει αρχεία και ο application server στο να τρέχει λογική. Παραδείγματα: PHP-FPM πίσω από Nginx · Node.js με Express · Gunicorn για Python
Backend εκτελείται σε Application Server
Web Server προωθεί δυναμικά αιτήματα στον Application Server
— Ο reverse proxy στέκεται μπροστά από έναν ή περισσότερους servers, δέχεται τα αιτήματα του κόσμου και τα προωθεί στον κατάλληλο. Μπορεί ταυτόχρονα να χειρίζεται TLS, caching και προστασία, κρύβοντας την εσωτερική υποδομή. Παραδείγματα: Nginx μπροστά από εφαρμογή Node.js · Traefik με Docker
Reverse Proxy προωθεί αιτήματα στον Web Server
Reverse Proxy μπορεί να τερματίζει TLS
Reverse Proxy μπορεί να κάνει caching με Server Cache
Load Balancer μπορεί να υλοποιείται ως Reverse Proxy
— Ο load balancer μοιράζει τα εισερχόμενα αιτήματα σε πολλούς servers. Αν ένας πέσει, η κίνηση πηγαίνει στους υπόλοιπους, άρα ο ιστότοπος αντέχει περισσότερους χρήστες και μένει διαθέσιμος. Παραδείγματα: AWS Elastic Load Balancer · HAProxy · Τρεις ίδιοι servers πίσω από έναν balancer
Load Balancer μπορεί να υλοποιείται ως Reverse Proxy
Load Balancer κατανέμει την κίνηση σε Web Server
Load Balancer βελτιώνει Uptime
Cloud Hosting προσφέρει Load Balancer
— Ένα API καθορίζει ποια αιτήματα δέχεται ένα σύστημα και τι επιστρέφει. Έτσι το frontend, μια εφαρμογή κινητού ή άλλη υπηρεσία μπορούν να χρησιμοποιούν τις λειτουργίες του backend χωρίς να γνωρίζουν πώς είναι φτιαγμένο. Παραδείγματα: Το API καιρού · Το API πληρωμών του Stripe · GET /api/orders
Web Application επικοινωνεί με API
Backend εκθέτει λειτουργίες μέσω API
JavaScript καλεί μέσω fetch/XHR API
Single Page Application ανταλλάσσει δεδομένα μέσω API
API υλοποιείται συχνά ως REST API
API υλοποιείται εναλλακτικά ως GraphQL
API μπορεί να ανταλλάσσει δεδομένα σε JSON
API προστατεύεται με Rate Limiting
CORS ρυθμίζει την πρόσβαση στο API
— Σε ένα REST API κάθε πόρος έχει δική του διεύθυνση και οι ενέργειες εκφράζονται με μεθόδους HTTP: GET για ανάγνωση, POST για δημιουργία, PUT/PATCH για ενημέρωση, DELETE για διαγραφή. Παραδείγματα: GET /users/5 · POST /orders · DELETE /orders/12
API υλοποιείται συχνά ως REST API
REST API χρησιμοποιεί HTTP
REST API επιστρέφει συνήθως JSON
— Στο GraphQL ο client περιγράφει ακριβώς ποια πεδία θέλει σε ένα μόνο αίτημα, αντί να καλεί πολλά endpoints και να παίρνει περιττά δεδομένα. Συνήθως στέλνεται με POST σε ένα ενιαίο endpoint. Παραδείγματα: { user(id: 5) { name orders { total } } } · GitHub API v4
API υλοποιείται εναλλακτικά ως GraphQL
GraphQL μεταφέρεται συνήθως μέσω HTTP
GraphQL επιστρέφει JSON
— Το JSON γράφει δεδομένα ως ζεύγη κλειδιού–τιμής και λίστες, με τρόπο που διαβάζεται εύκολα από ανθρώπους και προγράμματα. Είναι ο συνηθέστερος τρόπος ανταλλαγής δεδομένων μεταξύ frontend και backend. Παραδείγματα: {"name": "Μαρία", "orders": 3} · Η απάντηση ενός API
API μπορεί να ανταλλάσσει δεδομένα σε JSON
REST API επιστρέφει συνήθως JSON
GraphQL επιστρέφει JSON
— Η βάση δεδομένων αποθηκεύει μόνιμα πληροφορίες όπως χρήστες, προϊόντα και παραγγελίες, και επιτρέπει γρήγορη αναζήτηση. Αν τα ερωτήματα είναι αργά, ολόκληρο το backend και άρα η σελίδα επιβραδύνεται. Παραδείγματα: MySQL · PostgreSQL · MongoDB
Backend διαβάζει και γράφει δεδομένα Database
Database ερωτάται με SQL
Database ανακουφίζεται από Server Cache
— Η SQL είναι η γλώσσα με την οποία ζητάμε, προσθέτουμε, αλλάζουμε ή διαγράφουμε δεδομένα σε σχεσιακές βάσεις. Τα ερωτήματα πρέπει να γράφονται με προσοχή (prepared statements) για να μη γίνονται SQL injection. Παραδείγματα: SELECT * FROM orders WHERE user_id = 5; · INSERT INTO users (name) VALUES ("Μαρία");
Database ερωτάται με SQL
— Η cache του server κρατά έτοιμα αποτελέσματα που ζητούνται συχνά ώστε να μη χρειάζεται να ξαναϋπολογιστούν ή να ξαναρωτηθεί η βάση. Η δυσκολία είναι να ανανεώνεται όταν αλλάζουν τα δεδομένα. Παραδείγματα: Redis · Memcached · OPcache της PHP
Backend μπορεί να χρησιμοποιεί Server Cache
Web Server μπορεί να χρησιμοποιεί Server Cache
Reverse Proxy μπορεί να κάνει caching με Server Cache
Database ανακουφίζεται από Server Cache
Performance βελτιώνεται με Server Cache
— Το HTTP δεν θυμάται τον χρήστη από αίτημα σε αίτημα. Το session λύνει το πρόβλημα: ο server κρατά δεδομένα για τον χρήστη (π.χ. ποιος είναι συνδεδεμένος) και του δίνει ένα αναγνωριστικό που ο browser στέλνει πίσω σε κάθε αίτημα, συνήθως σε cookie. Παραδείγματα: $_SESSION["user"] στην PHP · Το καλάθι αγορών ενός επισκέπτη
Backend διαχειρίζεται Session
Session αναγνωρίζεται συνήθως μέσω Cookies
Authentication μπορεί να χρησιμοποιεί Session
Ασφάλεια (10)
— Η ασφάλεια δεν είναι ένα εργαλείο αλλά επίπεδα προστασίας: κρυπτογράφηση της επικοινωνίας, έλεγχος ποιος μπαίνει και τι επιτρέπεται, προστασία από επιθέσεις και ενημερώσεις λογισμικού. Μια αδυναμία σε ένα επίπεδο μπορεί να ακυρώσει τα υπόλοιπα. Παραδείγματα: HTTPS · Δυνατοί κωδικοί και 2FA · Τακτικές ενημερώσεις
Ιστότοπος (Website) χρειάζεται Security
Security ενισχύεται με HTTPS
Security περιλαμβάνει Authentication
Security περιλαμβάνει Authorization
Security περιλαμβάνει Firewall
Security περιλαμβάνει Content Security Policy
Security περιλαμβάνει CORS
Security περιλαμβάνει Rate Limiting
Security αντιμετωπίζει XSS
Security αντιμετωπίζει CSRF
— Η αυθεντικοποίηση απαντά στο «ποιος είσαι;». Ο χρήστης αποδεικνύει την ταυτότητά του με κωδικό, κωδικό μίας χρήσης, δακτυλικό αποτύπωμα ή σύνδεση μέσω τρίτου. Μετά τη σύνδεση, το σύστημα τον θυμάται με session ή token. Παραδείγματα: Φόρμα login · Σύνδεση με Google · Κωδικός από εφαρμογή 2FA
Web Application συχνά απαιτεί Authentication
Backend υλοποιεί Authentication
Authentication μπορεί να χρησιμοποιεί Session
Authentication έπεται Authorization
Authentication διατηρείται συχνά μέσω Cookies
Authentication απαιτεί HTTPS
Security περιλαμβάνει Authentication
— Η εξουσιοδότηση απαντά στο «τι επιτρέπεται να κάνεις;». Ένας χρήστης μπορεί να βλέπει τις δικές του παραγγελίες αλλά όχι των άλλων, και μόνο ο διαχειριστής να αλλάζει τιμές. Παραδείγματα: Ρόλοι: χρήστης, διαχειριστής · Μόνο ο ιδιοκτήτης διαγράφει το άρθρο του
Authentication έπεται Authorization
Security περιλαμβάνει Authorization
— Ο server στέλνει ένα cookie και ο browser το επιστρέφει σε κάθε επόμενο αίτημα προς το ίδιο site. Χρησιμεύει για sessions, προτιμήσεις και παρακολούθηση. Τα σημαντικά cookies πρέπει να έχουν τα χαρακτηριστικά Secure, HttpOnly και SameSite. Παραδείγματα: Cookie PHPSESSID · Επιλογή γλώσσας · Συναίνεση για cookies
Browser αποθηκεύει και αποστέλλει Cookies
Session αναγνωρίζεται συνήθως μέσω Cookies
Authentication διατηρείται συχνά μέσω Cookies
CSRF εκμεταλλεύεται Cookies
Cookies μεταφέρονται σε headers του HTTP
— Ένας browser δεν αφήνει από προεπιλογή ένα script από το ένα site να διαβάσει απαντήσεις από άλλο domain. Με τα CORS headers ο server δηλώνει ποια origins επιτρέπονται. Προστατεύει τον χρήστη, δεν προστατεύει το API από εξωτερικά προγράμματα. Παραδείγματα: Access-Control-Allow-Origin: https://agorasite.gr · Σφάλμα «blocked by CORS policy» στην κονσόλα
Browser επιβάλλει CORS
CORS ρυθμίζει την πρόσβαση στο API
Security περιλαμβάνει CORS
— Με το header CSP ο server λέει στον browser από ποιες πηγές επιτρέπεται να φορτώνονται scripts, στυλ και εικόνες. Έτσι ένα κακόβουλο script που κατάφερε να εισαχθεί στη σελίδα συχνά δεν θα εκτελεστεί. Παραδείγματα: Content-Security-Policy: script-src 'self' cdn.jsdelivr.net
Browser εφαρμόζει Content Security Policy
Security περιλαμβάνει Content Security Policy
XSS μετριάζεται από Content Security Policy
— Στο XSS ο επιτιθέμενος καταφέρνει να μπει δικό του JavaScript στη σελίδα, π.χ. μέσα από ένα σχόλιο που δεν ελέγχθηκε. Το script τρέχει στον browser του θύματος και μπορεί να κλέψει δεδομένα ή να κάνει ενέργειες στο όνομά του. Η άμυνα είναι το escaping της εξόδου και το CSP. Παραδείγματα: Σχόλιο που περιέχει <script>…</script> · htmlspecialchars() στην PHP
XSS εγχέει κακόβουλο περιεχόμενο στο DOM
Security αντιμετωπίζει XSS
XSS μετριάζεται από Content Security Policy
XSS εκμεταλλεύεται JavaScript
— Στο CSRF μια κακόβουλη σελίδα κάνει τον browser ενός συνδεδεμένου χρήστη να στείλει αίτημα προς ένα άλλο site, και ο browser επισυνάπτει αυτόματα τα cookies. Αντιμετωπίζεται με CSRF tokens και cookies SameSite. Παραδείγματα: Κρυφή φόρμα που στέλνει POST προς το site της τράπεζας · CSRF token σε κάθε φόρμα
Security αντιμετωπίζει CSRF
CSRF εκμεταλλεύεται Cookies
— Το firewall ελέγχει ποια κίνηση επιτρέπεται να φτάσει σε έναν server, π.χ. μόνο τα ports 80 και 443. Ένα Web Application Firewall (WAF) εξετάζει και το περιεχόμενο των αιτημάτων για γνωστές επιθέσεις. Παραδείγματα: Κλείσιμο του port της βάσης στο διαδίκτυο · Cloudflare WAF
Security περιλαμβάνει Firewall
Firewall φιλτράρει την κίνηση του Δίκτυο (Network)
Firewall προστατεύει Web Server
— Το rate limiting θέτει όριο στα αιτήματα ανά χρήστη ή IP σε συγκεκριμένο χρόνο. Μειώνει τον κίνδυνο brute force στο login, κατάχρησης του API και υπερφόρτωσης του server. Παραδείγματα: Μέγιστο 5 προσπάθειες login ανά λεπτό · Απάντηση 429 Too Many Requests
API προστατεύεται με Rate Limiting
Security περιλαμβάνει Rate Limiting
Hosting & DevOps (11)
— Το hosting είναι ο υπολογιστής (ή η υπηρεσία) που τρέχει συνεχώς τον web server και αποθηκεύει τα αρχεία και τη βάση του ιστότοπου. Η ποιότητά του επηρεάζει ταχύτητα, διαθεσιμότητα και ασφάλεια. Παραδείγματα: Shared hosting · VPS · Dedicated server
Ιστότοπος (Website) φιλοξενείται σε Web Hosting
Web Hosting παρέχει Web Server
Cloud Hosting είναι τύπος Web Hosting
Deployment γίνεται στο Web Hosting
Uptime εξαρτάται από Web Hosting
— Στο cloud hosting ο ιστότοπος τρέχει σε ελαστική υποδομή: προσθέτεις ή αφαιρείς πόρους όποτε χρειάζεται και πληρώνεις για όσα χρησιμοποιείς. Ταιριάζει σε ιστότοπους με μεταβλητή κίνηση. Παραδείγματα: AWS · Google Cloud · Azure · DigitalOcean
Cloud Hosting είναι τύπος Web Hosting
Cloud Hosting τρέχει συχνά Containers
Cloud Hosting προσφέρει Load Balancer
— Το Git αποθηκεύει κάθε αλλαγή του κώδικα ως «στιγμιότυπο» με συγγραφέα και μήνυμα. Επιτρέπει επιστροφή σε παλιά έκδοση, παράλληλη δουλειά σε κλάδους και συνεργασία πολλών ατόμων. Παραδείγματα: git commit · git branch · GitHub / GitLab
CI/CD ενεργοποιείται από αλλαγές σε Git
— Σε κάθε αλλαγή στο Git, το CI/CD τρέχει αυτόματα τεστ και build (CI) και, αν όλα πάνε καλά, δημοσιεύει τη νέα έκδοση (CD). Έτσι οι αλλαγές βγαίνουν συχνά και με λιγότερο ρίσκο. Παραδείγματα: GitHub Actions · GitLab CI · Jenkins
CI/CD αυτοματοποιεί Deployment
CI/CD χτίζει images με Docker
CI/CD ενεργοποιείται από αλλαγές σε Git
— Το Docker πακετάρει την εφαρμογή μαζί με τις εξαρτήσεις της (έκδοση PHP, επεκτάσεις κ.λπ.) σε ένα image. Το ίδιο image τρέχει με τον ίδιο τρόπο στον υπολογιστή του προγραμματιστή και στον server. Παραδείγματα: Dockerfile · docker compose up · Docker Hub
Docker δημιουργεί και εκτελεί Containers
CI/CD χτίζει images με Docker
— Ένα container είναι ένα απομονωμένο περιβάλλον όπου τρέχει μια εφαρμογή, ελαφρύτερο από μια ολόκληρη εικονική μηχανή. Πολλά containers μοιράζονται το ίδιο λειτουργικό σύστημα αλλά δεν βλέπουν το ένα το άλλο. Παραδείγματα: Container για PHP · Container για MySQL · Kubernetes
Cloud Hosting τρέχει συχνά Containers
Docker δημιουργεί και εκτελεί Containers
Containers απλοποιούν Deployment
— Το πιστοποιητικό δένει ένα δημόσιο κλειδί με ένα domain και έχει υπογραφεί από αρχή πιστοποίησης που εμπιστεύεται ο browser. Λήγει και πρέπει να ανανεώνεται, αλλιώς οι επισκέπτες βλέπουν προειδοποίηση ασφαλείας. Παραδείγματα: Let’s Encrypt (δωρεάν, αυτόματη ανανέωση) · Wildcard *.example.com
TLS βασίζεται σε SSL/TLS Certificate
SSL/TLS Certificate εκδίδεται για Domain Name
SSL/TLS Certificate εγκαθίσταται στον Web Server
— Το monitoring ελέγχει συνεχώς αν ο ιστότοπος λειτουργεί και πόσο γρήγορα, και ειδοποιεί όταν κάτι ξεφεύγει, ώστε το πρόβλημα να βρεθεί πριν το αναφέρουν οι χρήστες. Παραδείγματα: Έλεγχος κάθε λεπτό ότι η αρχική απαντά με 200 · Ειδοποίηση όταν ο server ξεπερνά το 90% CPU
Monitoring παρακολουθεί Uptime
Monitoring αξιοποιεί Logging
Monitoring παρακολουθεί Web Server
Monitoring μετρά Core Web Vitals
— Τα logs καταγράφουν τι έγινε και πότε: ποια αιτήματα ήρθαν, ποια λάθη προέκυψαν και ποιος συνδέθηκε. Είναι το πρώτο μέρος που κοιτάμε όταν κάτι χαλάσει ή όταν ερευνούμε περιστατικό ασφαλείας. Παραδείγματα: Apache access.log · error.log της PHP
Monitoring αξιοποιεί Logging
Logging καταγράφει αιτήματα του Web Server
Logging καταγράφει σφάλματα του Backend
— Το uptime μετρά το ποσοστό του χρόνου που ο ιστότοπος ήταν διαθέσιμος. Το 99,9% σημαίνει περίπου 8,8 ώρες εκτός λειτουργίας τον χρόνο, ενώ το 99% περίπου 3,7 ημέρες. Παραδείγματα: 99,9% uptime · SLA του hosting
Load Balancer βελτιώνει Uptime
Uptime εξαρτάται από Web Hosting
Monitoring παρακολουθεί Uptime
— Το deployment είναι η μετάβαση ενός νέου κώδικα από τον υπολογιστή του προγραμματιστή στον server όπου τον βλέπουν οι χρήστες. Μπορεί να γίνει χειροκίνητα ή αυτόματα, με δυνατότητα γρήγορης επαναφοράς αν κάτι πάει στραβά. Παραδείγματα: Ανέβασμα αρχείων με FTP · Αυτόματο deploy μετά από commit · Rollback στην προηγούμενη έκδοση
Ιστότοπος (Website) δημοσιεύεται μέσω Deployment
Containers απλοποιούν Deployment
CI/CD αυτοματοποιεί Deployment
Deployment γίνεται στο Web Hosting
Απόδοση (9)
— Η απόδοση περιγράφει πόσο γρήγορα φορτώνει και αποκρίνεται η σελίδα. Επηρεάζεται από όλα τα επίπεδα: δίκτυο, server, βάση δεδομένων, μέγεθος αρχείων και JavaScript. Επηρεάζει τις μετατροπές, το SEO και την εμπειρία του χρήστη. Παραδείγματα: Σελίδα που ανοίγει σε 1 δευτερόλεπτο αντί για 5 · Έλεγχος με Lighthouse
Ιστότοπος (Website) αξιολογείται ως προς Performance
Latency επηρεάζει Performance
Performance μετράται με Core Web Vitals
Performance βελτιώνεται με Server Cache
Compression βελτιώνει Performance
Browser Cache μπορεί να βελτιώσει Performance
Lazy Loading βελτιώνει Performance
Image Optimization βελτιώνει Performance
— Τα Core Web Vitals είναι τρεις μετρικές της Google που αποτυπώνουν την εμπειρία του χρήστη: πόσο γρήγορα εμφανίζεται το κύριο περιεχόμενο (LCP), πόσο σταθερή είναι η διάταξη (CLS) και πόσο γρήγορα αντιδρά στις ενέργειες (INP). Λαμβάνονται υπόψη στην κατάταξη αναζήτησης. Παραδείγματα: PageSpeed Insights · Search Console → Core Web Vitals
SEO επηρεάζεται από Core Web Vitals
Monitoring μετρά Core Web Vitals
Performance μετράται με Core Web Vitals
Core Web Vitals περιλαμβάνει Largest Contentful Paint
Core Web Vitals περιλαμβάνει Cumulative Layout Shift
Core Web Vitals περιλαμβάνει Interaction to Next Paint
— Το LCP μετρά πότε εμφανίζεται το μεγαλύτερο ορατό στοιχείο, συνήθως η κεντρική εικόνα ή ο μεγάλος τίτλος. Βελτιώνεται με γρήγορο server, βελτιστοποιημένες εικόνες και αποφυγή αρχείων που μπλοκάρουν την εμφάνιση. Παραδείγματα: Hero εικόνα 2 MB → 150 KB · Καλός χρόνος: κάτω από 2,5 s
Server-Side Rendering μπορεί να βελτιώσει Largest Contentful Paint
Core Web Vitals περιλαμβάνει Largest Contentful Paint
Largest Contentful Paint βελτιώνεται με Image Optimization
Largest Contentful Paint επηρεάζεται από Latency
— Το CLS μετρά πόσο «πηδούν» τα στοιχεία ενώ φορτώνει η σελίδα. Συμβαίνει όταν μια εικόνα ή διαφήμιση εμφανίζεται χωρίς δεσμευμένο χώρο και σπρώχνει το κείμενο προς τα κάτω, ώστε ο χρήστης να πατά κατά λάθος κάτι άλλο. Παραδείγματα: Εικόνα χωρίς width/height · Banner που εμφανίζεται με καθυστέρηση
Core Web Vitals περιλαμβάνει Cumulative Layout Shift
Cumulative Layout Shift επηρεάζεται από ασταθείς διαστάσεις στη CSS
Image Optimization μπορεί να μειώσει Cumulative Layout Shift
— Το INP μετρά πόσο χρόνο περνά από ένα κλικ, ένα άγγιγμα ή ένα πάτημα πλήκτρου μέχρι να φανεί η αντίδραση στην οθόνη. Αργεί όταν η JavaScript είναι βαριά και κρατά απασχολημένο τον browser. Παραδείγματα: Κουμπί που αργεί να ανοίξει το μενού · Καλός χρόνος: κάτω από 200 ms
Core Web Vitals περιλαμβάνει Interaction to Next Paint
Interaction to Next Paint επηρεάζεται από βαριά εκτέλεση της JavaScript
— Ο server συμπιέζει κείμενο (HTML, CSS, JS, JSON) πριν το στείλει και ο browser το αποσυμπιέζει. Το μέγεθος μειώνεται συχνά πάνω από 70%, άρα φτάνει γρηγορότερα. Παραδείγματα: Content-Encoding: br · gzip στον Apache ή Nginx
Compression εφαρμόζεται μέσω headers του HTTP
Compression ενεργοποιείται στον Web Server
Compression μειώνει τη χρήση του Bandwidth
Compression βελτιώνει Performance
— Ο browser αποθηκεύει τοπικά αρχεία που δεν αλλάζουν συχνά, όπως λογότυπα, CSS και JS, και στις επόμενες επισκέψεις δεν τα ξανακατεβάζει. Ο server ορίζει τη διάρκεια με headers όπως Cache-Control. Παραδείγματα: Cache-Control: max-age=31536000 · ETag
Browser διατηρεί Browser Cache
Browser Cache ελέγχεται από headers του HTTP
Browser Cache μπορεί να βελτιώσει Performance
— Με το lazy loading οι εικόνες και τα iframes που βρίσκονται κάτω από την ορατή περιοχή φορτώνονται μόνο όταν ο χρήστης πλησιάσει σε αυτά. Εξοικονομεί δεδομένα και χρόνο, αλλά δεν πρέπει να εφαρμόζεται στο κύριο στοιχείο πάνω από την πρώτη οθόνη (LCP). Παραδείγματα: <img loading="lazy"> · Ατέλειωτο scroll σε γκαλερί
Lazy Loading συμπληρώνει Image Optimization
Lazy Loading βελτιώνει Performance
Lazy Loading υποστηρίζεται από Browser
— Οι εικόνες είναι συχνά το μεγαλύτερο μέρος του βάρους μιας σελίδας. Βελτιστοποιούνται με σύγχρονες μορφές (WebP, AVIF), σωστές διαστάσεις, συμπίεση και προσαρμογή στο μέγεθος της οθόνης. Παραδείγματα: PNG 2 MB → WebP 150 KB · srcset για διαφορετικά πλάτη οθόνης
Largest Contentful Paint βελτιώνεται με Image Optimization
Image Optimization μπορεί να μειώσει Cumulative Layout Shift
Lazy Loading συμπληρώνει Image Optimization
Image Optimization εξοικονομεί Bandwidth
Image Optimization βελτιώνει Performance
Εγγραφείτε στο Newsletter μας
για να λαμβάνετε τις τελευταίες ενημερώσεις, δωρεάν πρότυπα και αποκλειστικές προσφορές απευθείας στο inbox σας.