📚 Περιεχόμενα Ενότητας
1.1 Ιστορική Αναδρομή του WWW
Η Γέννηση του World Wide Web
Τα Πρώιμα Χρόνια - CERN 1989
- Δημιουργός: Tim Berners-Lee
- Τοποθεσία: CERN (Ευρωπαϊκός Οργανισμός Πυρηνικών Ερευνών)
- Στόχος: Διαμοιρασμός πληροφοριών μεταξύ ερευνητών
- Πρόβλημα: Ασυμβατότητα διαφορετικών συστημάτων
Το Όραμα του Tim Berners-Lee
Ο Tim Berners-Lee οραματίστηκε ένα "παγκόσμιο δίκτυο πληροφοριών" όπου:
- Οι πληροφορίες θα ήταν προσβάσιμες από οπουδήποτε
- Τα έγγραφα θα συνδέονταν μεταξύ τους
- Η πρόσβαση θα ήταν απλή, διαισθητική και φυσικά κατανοητή
- Το σύστημα θα ήταν ανοιχτό και δωρεάν
📅 Χρονολόγιο Εξέλιξης WWW
- 1989: Πρόταση του WWW από τον Tim Berners-Lee
- 1990: Πρώτος web browser (WorldWideWeb) και web server
- 1991: Η πρώτη ιστοσελίδα στο διαδίκτυο (info.cern.ch)
- 1993: CERN ανακοινώνει ότι το WWW θα είναι δωρεάν
- 1993: Κυκλοφορία του Mosaic browser
- 1994: Ίδρυση του W3C (World Wide Web Consortium)
- 1995: Εμφάνιση του Netscape Navigator
- 1995: Microsoft Internet Explorer 1.0
- 1998: Google search engine
- 2004: Web 2.0 - Social media και user-generated content
Τα Βασικά Συστατικά του Αρχικού WWW
- HTML (HyperText Markup Language): Γλώσσα σήμανσης για δημιουργία ιστοσελίδων
- HTTP (HyperText Transfer Protocol): Πρωτόκολλο επικοινωνίας
- URLs (Uniform Resource Locators): Διευθύνσεις πόρων στο διαδίκτυο
- Web Browser: Εφαρμογή για περιήγηση στο web
- Web Server: Σύστημα που εξυπηρετεί ιστοσελίδες
Εξέλιξη από το Web 1.0 στο Web 3.0
🔹 Web 1.0 (1990-2000)
- Χαρακτήρας: Στατικός, μόνο ανάγνωση
- Περιεχόμενο: Δημιουργείται από webmasters
- Αλληλεπίδραση: Ελάχιστη
- Παραδείγματα: Απλές ιστοσελίδες, directories
🔹 Web 2.0 (2000-2010)
- Χαρακτήρας: Διαδραστικός, read-write
- Περιεχόμενο: User-generated content
- Αλληλεπίδραση: Υψηλή
- Παραδείγματα: Social media, blogs, wikis
🚀 Web 3.0 - Το Μέλλον
Το Web 3.0 αναμένεται να φέρει:
- Semantic Web: Τα δεδομένα θα έχουν νόημα για τις μηχανές
- Artificial Intelligence: Έξυπνες υπηρεσίες και προσωποποίηση
- Decentralization: Αποκεντρωμένες εφαρμογές (DApps)
- Blockchain: Ασφάλεια και διαφάνεια
1.2 Εξυπηρετητές Ιστού (Web Servers)
Τι είναι ο Web Server
Ο εξυπηρετητής ιστού είναι λογισμικό (και υλικό) που:
- Δέχεται αιτήματα HTTP από clients (browsers)
- Επεξεργάζεται τα αιτήματα
- Στέλνει απαντήσεις HTTP πίσω στον client
- Εξυπηρετεί στατικό και δυναμικό περιεχόμενο
Βασικές Λειτουργίες Web Server
⚙️ Λειτουργίες Server
- Αναμονή Αιτημάτων: Ακούει σε συγκεκριμένη θύρα (port)
- Ανάλυση Αιτήματος: Κατανοεί τι ζητά ο client
- Εύρεση Πόρου: Εντοπίζει το ζητούμενο αρχείο/σελίδα
- Επεξεργασία: Εκτελεί scripts αν χρειάζεται
- Αποστολή Απάντησης: Στέλνει το αποτέλεσμα στον client
Δημοφιλείς Web Servers
🅰️ Apache HTTP Server
- Τύπος: Open Source
- Μερίδιο αγοράς: ~25%
- Πλεονεκτήματα: Stable, modules
- Μειονεκτήματα: Βαρύς για υψηλό traffic
🚀 Nginx
- Τύπος: Open Source
- Μερίδιο αγοράς: ~35%
- Πλεονεκτήματα: Υψηλή απόδοση
- Χρήσεις: Reverse proxy, load balancer
🖥️ Microsoft IIS
- Τύπος: Commercial
- Πλατφόρμα: Windows μόνο
- Πλεονεκτήματα: Ενσωμάτωση με .NET
- Χρήση: Enterprise εφαρμογές
Cloudflare - Reverse Proxy/CDN
☁️ Τι είναι το Cloudflare
Το Cloudflare ΔΕΝ είναι web server, αλλά είναι:
- Reverse proxy/CDN/Security layer που κάθεται μπροστά από τον πραγματικό web server σας (Apache, Nginx, LiteSpeed)
- Διαχειρίζεται: DNS, caching, DDoS προστασία, SSL termination, firewall rules, load balancing
- Ροή λειτουργίας: User → Cloudflare → Origin Web Server
- Cache logic: Αν υπάρχει cache → σερβίρει κατευθείαν, αλλιώς ζητάει από τον origin server
Τύποι Περιεχομένου που Εξυπηρετούν
| Τύπος Περιεχομένου | Περιγραφή | Παραδείγματα | Επεξεργασία |
|---|---|---|---|
| Στατικό | Αρχεία που δεν αλλάζουν | HTML, CSS, JS, εικόνες | Άμεση αποστολή |
| Δυναμικό | Περιεχόμενο που δημιουργείται | PHP, Python, Node.js | Εκτέλεση script |
| API Responses | Δεδομένα σε JSON/XML | REST APIs, GraphQL | Database queries |
| Media | Μεγάλα αρχεία πολυμέσων | Βίντεο, audio, PDFs | Streaming/chunked |
1.3 URLs - Uniform Resource Locators
Δομή των URLs
Τα URLs είναι οι διευθύνσεις που χρησιμοποιούμε για να εντοπίσουμε πόρους στο διαδίκτυο.
scheme://[username:password@]host[:port][/path][?query][#fragment]
Ανάλυση Συστατικών URL
Λεπτομερής Εξήγηση Συστατικών
| Συστατικό | Περιγραφή | Παραδείγματα | Υποχρεωτικό |
|---|---|---|---|
| Scheme | Πρωτόκολλο επικοινωνίας | http, https, ftp, mailto | Ναι |
| Host | Όνομα server ή IP διεύθυνση | google.com, 192.168.1.1 | Ναι |
| Port | Θύρα σύνδεσης | 80 (HTTP), 443 (HTTPS) | Όχι |
| Path | Διαδρομή στον server | /home, /products/list | Όχι |
| Query | Παράμετροι αναζήτησης | ?search=web&limit=10 | Όχι |
| Fragment | Τμήμα σελίδας | #section1, #top | Όχι |
Λεπτομερής Ανάλυση της Γενικής Δομής URL
Ας εξηγήσουμε κομμάτι-κομμάτι τη γενική δομή:
🔍 Αναλυτική Επεξήγηση Κάθε Συστατικού
- scheme — Το πρωτόκολλο πρόσβασης (π.χ. http, https, ftp, mailto).
- :// — Διαχωρίζει το scheme από το υπόλοιπο URL (υποχρεωτικό μόνο σε URL με "authority" όπως http/https).
- [username:password@] (προαιρετικό) — Περιλαμβάνει στοιχεία αυθεντικοποίησης για πρόσβαση, π.χ. ftp://user:pass@host.
- host — Το domain ή IP (π.χ. example.com ή 192.168.1.10).
- [:port] (προαιρετικό) — Ο αριθμός θύρας, π.χ. :8080.
- [/path] (προαιρετικό) — Η διαδρομή μέσα στον server, π.χ. /products/list.
- [?query] (προαιρετικό) — Παράμετροι ερωτήματος (key=value), π.χ. ?id=123&lang=el.
- [#fragment] (προαιρετικό) — Εσωτερικό σημείο ή άγκυρα στη σελίδα, π.χ. #section2.
Παράδειγμα με Όλα τα Συστατικά
| Συστατικό | Τιμή | Επεξήγηση |
|---|---|---|
| scheme | ftp | Πρωτόκολλο μεταφοράς αρχείων |
| username:password | john:secret123 | Στοιχεία σύνδεσης χρήστη |
| host | files.example.com | Όνομα του FTP server |
| port | 21 | Θύρα FTP (default είναι 21) |
| path | /documents/report.pdf | Διαδρομή προς το αρχείο |
| query | version=2 | Παράμετρος για συγκεκριμένη έκδοση |
| fragment | page5 | Αναφορά στη σελίδα 5 του εγγράφου |
Τύποι URLs
1. Absolute URLs (Απόλυτα)
2. Relative URLs (Σχετικά)
3. Protocol-relative URLs
URL Encoding
Ειδικοί χαρακτήρες πρέπει να κωδικοποιούνται για ασφαλή μεταφορά:
| Χαρακτήρας | Κωδικοποίηση | Χρήση |
|---|---|---|
| Κενό | %20 ή + | Διαχωριστής λέξεων |
| & | %26 | Διαχωριστής παραμέτρων |
| ? | %3F | Αρχή query string |
| # | %23 | Fragment identifier |
🔹 Παράδειγμα URL Encoding
Αν έχεις αυτό:
⚠️ Πρόβλημα
❌ Λάθος, γιατί το & θα θεωρηθεί διαχωριστής παραμέτρων και το (κενό) δεν επιτρέπεται.
✅ Σωστά κωδικοποιημένο:
Έτσι ο server θα λάβει το query σωστά ως "tea & sugar".
1.4 Το Μοντέλο Πελάτη-Εξυπηρετητή
Βασικές Αρχές
🔄 Αρχιτεκτονική Client-Server
Το μοντέλο πελάτη-εξυπηρετητή είναι μια αρχιτεκτονική όπου:
- Client (Πελάτης): Στέλνει αιτήματα και περιμένει απαντήσεις
- Server (Εξυπηρετητής): Δέχεται αιτήματα και στέλνει απαντήσεις
- Stateless: Κάθε αίτημα είναι ανεξάρτητο
- Asynchronous: Μπορούν να υπάρχουν πολλαπλά αιτήματα ταυτόχρονα
🔍 Παράδειγμα Stateless Επικοινωνίας
Φαντάσου ότι μπαίνεις σε ένα site και κάνεις αυτά:
- GET /login-page → ανοίγει η φόρμα σύνδεσης
- POST /login → στέλνεις τα στοιχεία σου
- GET /profile → ζητάς τη σελίδα του προφίλ σου
➡️ Κάθε ένα από αυτά είναι ξεχωριστό αίτημα. Ο server δεν "θυμάται" ότι είσαι ο ίδιος χρήστης από το προηγούμενο βήμα.
🧩 Άρα… πώς "θυμάται" ποιος είσαι;
Αυτό γίνεται με βοηθητικά μηχανισμούς πάνω από το HTTP, όπως:
- 🍪 Cookies — ο browser κρατάει ένα "χαρτάκι" με τα στοιχεία σου και το στέλνει κάθε φορά.
- 🔑 Tokens / Sessions — ο server δημιουργεί ένα "session id" ή "JWT token" που δείχνει ποιος είσαι.
- 🧾 Headers — κάθε αίτημα μπορεί να περιλαμβάνει δεδομένα αυθεντικοποίησης (π.χ. Authorization: Bearer ...).
Ροή Επικοινωνίας HTTP Request-Response
📋 Βήματα Επικοινωνίας
- Βήμα 1: Χρήστης πληκτρολογεί URL στον browser
- Βήμα 2: Browser αναλύει το URL
- Βήμα 3: DNS lookup για εύρεση IP διεύθυνσης
- Βήμα 4: Εγκαθίδρυση TCP σύνδεσης
- Βήμα 5: Αποστολή HTTP request
- Βήμα 6: Server επεξεργάζεται το αίτημα
- Βήμα 7: Server στέλνει HTTP response
- Βήμα 8: Browser renders την σελίδα
Χαρακτηριστικά του Μοντέλου
✅ Πλεονεκτήματα
- Κλιμάκωση: Ένας server εξυπηρετεί πολλούς clients
- Κεντρική διαχείριση: Δεδομένα και λογική στον server
- Ασφάλεια: Κεντρικός έλεγχος πρόσβασης
- Συντήρηση: Αλλαγές μόνο στον server
- Διαμοιρασμός πόρων: Κοινή χρήση δεδομένων
❌ Μειονεκτήματα
- Εξάρτηση δικτύου: Απαιτείται σύνδεση
- Single point of failure: Πρόβλημα server = πρόβλημα όλων
- Latency: Χρόνος απόκρισης δικτύου
- Φόρτος server: Περιορισμένη ταυτόχρονη εξυπηρέτηση
Τύποι Clients
| Τύπος Client | Περιγραφή | Παραδείγματα | Χαρακτηριστικά |
|---|---|---|---|
| Web Browser | Γραφικό περιβάλλον περιήγησης | Chrome, Firefox, Safari | HTML rendering, JavaScript |
| Mobile App | Εφαρμογή κινητού | iOS/Android apps | Native UI, API calls |
| Command Line | Εργαλεία γραμμής εντολών | curl, wget | Αυτοματισμός, scripts |
| API Client | Προγραμματιστικό interface | Postman, REST clients | Testing, automation |
1.5 Πρωτόκολλα Επικοινωνίας
HTTP - HyperText Transfer Protocol
🌐 Χαρακτηριστικά HTTP
- Stateless: Δεν διατηρεί κατάσταση μεταξύ αιτημάτων
- Text-based: Μηνύματα σε απλό κείμενο
- Request-Response: Μοντέλο ερώτησης-απάντησης
- Πολυμέσα: Υποστηρίζει διάφορους τύπους αρχείων
HTTP Methods (Verbs)
| Method | Περιγραφή | Χρήση | Ασφαλής | Idempotent |
|---|---|---|---|---|
| GET | Ανάκτηση δεδομένων | Φόρτωση σελίδων | Ναι | Ναι |
| POST | Αποστολή δεδομένων | Φόρμες, δημιουργία | Όχι | Όχι |
| PUT | Ενημέρωση πόρου | Πλήρης αντικατάσταση | Όχι | Ναι |
| DELETE | Διαγραφή πόρου | Αφαίρεση δεδομένων | Όχι | Ναι |
| PATCH | Μερική ενημέρωση | Μικρές αλλαγές | Όχι | Όχι |
Αναλυτική Εξήγηση των HTTP Methods
🟢 GET — Παίρνω δεδομένα
- Τι κάνει: Ζητά κάτι από τον server χωρίς να αλλάζει τίποτα.
- Παράδειγμα: Ο browser σου ζητά μια σελίδα:
GET /productsΔηλαδή "δείξε μου τη λίστα με τα προϊόντα".
- ✅ Ασφαλής: Ναι (δεν αλλάζει τίποτα στη βάση)
- ✅ Idempotent: Ναι (αν το ζητήσεις 100 φορές, ίδιο αποτέλεσμα)
🟠 POST — Στέλνω νέα δεδομένα
- Τι κάνει: Στέλνει πληροφορίες για να δημιουργηθεί κάτι καινούριο.
- Παράδειγμα: Συμπληρώνεις μια φόρμα εγγραφής:
POST /usersΔηλαδή "φτιάξε έναν νέο χρήστη με αυτά τα στοιχεία".
- ❌ Ασφαλής: Όχι (αλλάζει τη βάση)
- ❌ Idempotent: Όχι (αν το κάνεις 2 φορές, θα φτιαχτούν 2 χρήστες)
🔵 PUT — Ενημερώνω πλήρως κάτι
- Τι κάνει: Αντικαθιστά πλήρως έναν πόρο (π.χ. ένα αντικείμενο).
- Παράδειγμα:
PUT /users/10Δηλαδή "αντικατάστησε τα στοιχεία του χρήστη #10 με αυτά τα νέα".
- ❌ Ασφαλής: Όχι
- ✅ Idempotent: Ναι (αν το κάνεις 2 φορές, το αποτέλεσμα μένει ίδιο)
🔴 DELETE — Διαγράφω κάτι
- Τι κάνει: Ζητά να διαγραφεί ένας πόρος.
- Παράδειγμα:
DELETE /users/10Δηλαδή "διέγραψε τον χρήστη #10".
- ❌ Ασφαλής: Όχι
- ✅ Idempotent: Ναι (αν προσπαθήσεις να το διαγράψεις ξανά, δεν αλλάζει κάτι)
🟣 PATCH — Ενημερώνω μερικώς κάτι
- Τι κάνει: Αλλάζει μόνο συγκεκριμένα πεδία, όχι όλο το αντικείμενο.
- Παράδειγμα:
PATCH /users/10Δηλαδή "άλλαξε μόνο το email του χρήστη #10".
- ❌ Ασφαλής: Όχι
- ❌ Idempotent: Όχι πάντα (εξαρτάται πώς υλοποιείται)
HTTP Status Codes
201 Created
204 No Content
302 Found
304 Not Modified
401 Unauthorized
404 Not Found
502 Bad Gateway
503 Service Unavailable
Τι είναι τα HTTP Status Codes;
Κάθε φορά που ένα πρόγραμμα (π.χ. browser ή εφαρμογή) μιλάει με έναν server, ο server απαντά με έναν τριψήφιο αριθμό — τον status code — που λέει τι έγινε με το αίτημα.
🟢 2xx — Όλα πήγαν καλά (Success)
| Κωδικός | Τι σημαίνει | Παράδειγμα |
|---|---|---|
| 200 OK | ✅ Όλα καλά, ο server βρήκε και έστειλε τα δεδομένα. | Ζητάς /products → Ο server στέλνει τη λίστα προϊόντων. |
| 201 Created | 🆕 Κάτι καινούριο δημιουργήθηκε με επιτυχία. | Στέλνεις POST /users → Δημιουργείται ο νέος χρήστης. |
| 204 No Content | 👍 Το αίτημα έγινε δεκτό, αλλά δεν υπάρχει κάτι να σταλεί πίσω. | Στέλνεις DELETE /user/10 → Ο χρήστης διαγράφηκε, δεν χρειάζεται απάντηση. |
🟡 3xx — Ανακατεύθυνση (Redirection)
| Κωδικός | Τι σημαίνει | Παράδειγμα |
|---|---|---|
| 301 Moved Permanently | 📦 Ο πόρος μετακινήθηκε μόνιμα σε άλλη διεύθυνση. | Πας στο old-site.com → Σε στέλνει μόνιμα στο new-site.com. |
| 302 Found | 🚦 Ο πόρος είναι προσωρινά αλλού. | Πας στο /login → Σε στέλνει προσωρινά στο /login-page. |
| 304 Not Modified | 🗂️ Ο πόρος δεν άλλαξε από την τελευταία φορά, οπότε χρησιμοποίησε την cached έκδοση. | Ο browser σου δεν ξαναφορτώνει μια εικόνα που δεν άλλαξε. |
🔴 4xx — Σφάλμα από τον client (Client Error)
| Κωδικός | Τι σημαίνει | Παράδειγμα |
|---|---|---|
| 400 Bad Request | 🤯 Το αίτημα ήταν "στραβό" ή λείπουν δεδομένα. | Έστειλες φόρμα χωρίς υποχρεωτικό πεδίο. |
| 401 Unauthorized | 🔐 Δεν έχεις τα σωστά δικαιώματα (π.χ. δεν έστειλες token). | Πας σε σελίδα admin χωρίς να είσαι συνδεδεμένος. |
| 404 Not Found | ❌ Ο πόρος δεν βρέθηκε. | Πας στο /users/999 αλλά αυτός ο χρήστης δεν υπάρχει. |
⚫ 5xx — Σφάλμα από τον server (Server Error)
| Κωδικός | Τι σημαίνει | Παράδειγμα |
|---|---|---|
| 500 Internal Server Error | 💥 Ο server "έσκασε" λόγω κάποιου bug. | Το Laravel σου πέταξε exception στη βάση. |
| 502 Bad Gateway | 🌉 Ο server-μεσάζοντας πήρε χαλασμένη απάντηση από τον πίσω server. | Apache reverse proxy δεν παίρνει σωστή απάντηση από το backend. |
| 503 Service Unavailable | 💤 Ο server είναι προσωρινά εκτός λειτουργίας (συντήρηση ή υπερφόρτωση). | Πολλοί χρήστες μαζί → "Server unavailable, try again later." |
HTTPS - Ασφαλής HTTP
- Κρυπτογράφηση: SSL/TLS encryption
- Πιστοποιητικά: Επιβεβαίωση ταυτότητας server
- Ακεραιότητα: Προστασία από τροποποίηση δεδομένων
- Πορτ: 443 (αντί για 80 του HTTP)
1.6 Αρχιτεκτονική του WWW
Βασικά Συστατικά
🏗️ Αρχιτεκτονικά Layers
- Presentation Layer: HTML, CSS, JavaScript (Frontend)
- Application Layer: Web servers, business logic
- Data Layer: Databases, file systems
- Network Layer: HTTP/HTTPS, TCP/IP
Σύγχρονη Web Αρχιτεκτονική
🎨 Frontend
- HTML/CSS/JavaScript
- React, Vue, Angular
- Mobile responsive
- User experience
⚙️ Backend
- Server-side logic
- APIs και databases
- Authentication
- Business rules
🗄️ Database
- Αποθήκευση δεδομένων
- SQL/NoSQL
- CRUD operations
- Data integrity
☁️ Infrastructure
- Cloud hosting
- CDN networks
- Load balancers
- Monitoring
1.7 Σύγχρονες Εξελίξεις
Νέες Τεχνολογίες και Τάσεις
Progressive Web Apps (PWAs)
📱 Βασικά χαρακτηριστικά PWAs
- Εγκατάσταση σαν app: Ο χρήστης μπορεί να τις "κατεβάσει" από τον browser και να τις έχει στην αρχική οθόνη, χωρίς App Store ή Play Store
- Offline λειτουργία: Χάρη στα service workers, μέρη της εφαρμογής δουλεύουν ακόμα και χωρίς σύνδεση
- Ταχύτητα & απόκριση: Φορτώνουν γρήγορα, ακόμα και σε αδύναμες συνδέσεις
- Push notifications: Μπορούν να στέλνουν ειδοποιήσεις όπως οι native εφαρμογές
- Cross-platform: Μία εφαρμογή λειτουργεί σε Android, iOS (με κάποιους περιορισμούς), desktop
- Ενημέρωση στο παρασκήνιο: Πάντα στην πιο πρόσφατη έκδοση, χωρίς ο χρήστης να χρειάζεται update
Παραδείγματα χρήσης PWAs
- Twitter Lite: Το PWA του Twitter είναι εξαιρετικά ελαφρύ σε σύγκριση με το native app
- Starbucks PWA: Επιτρέπει παραγγελία καφέ offline και συγχρονίζει όταν υπάρχει δίκτυο
- Uber PWA: Δουλεύει γρήγορα ακόμα και σε δίκτυα 2G
📱 Native App
- Πλήρης έλεγχος και πρόσβαση σε hardware
- Hardware access: Κάμερα, Bluetooth, αισθητήρες
- Καλύτερη απόδοση και ταχύτητα
- Μειονέκτημα: Πιο δύσκολη/βαριά ανάπτυξη
🌐 PWA
- Εύκολη ανάπτυξη: HTML, CSS, JS
- Cross-platform με ένα codebase
- Γρήγορη deployment χωρίς app stores
- Μειονέκτημα: Περιορισμένη πρόσβαση σε OS features (ιδίως iOS)
WebAssembly (WASM)
WebAssembly είναι μια δυαδική μορφή εκτέλεσης κώδικα μέσα στον browser, σχεδιασμένη για υψηλή απόδοση.
⚡ Χαρακτηριστικά WebAssembly
- Near-native performance: Τρέχει σχεδόν τόσο γρήγορα όσο οι native εφαρμογές
- Multiple languages: Μπορείς να γράψεις σε C/C++, Rust, Go, ακόμα και Python (μέσω binding) και να τα τρέξεις στο browser
- Gaming & graphics: Υποστηρίζει βαριές εφαρμογές (π.χ. 3D παιχνίδια, CAD, video editors)
- Universal runtime: Τρέχει σε κάθε σύγχρονο browser, χωρίς εγκατάσταση
Παραδείγματα WebAssembly
- Figma: Το online design tool χρησιμοποιεί WASM για ταχύτητα κοντά σε native
- Unity & Unreal Engine: Μπορούν να κάνουν export παιχνίδια σε WASM
Edge Computing
Το Edge Computing φέρνει την επεξεργασία πιο κοντά στον χρήστη, αντί να γίνεται μόνο σε κεντρικά data centers.
🛰️ Χαρακτηριστικά Edge Computing
- Reduced latency: Χαμηλή καθυστέρηση, ιδανικό για real-time apps (gaming, AR/VR, live analytics)
- CDN evolution: Τα παραδοσιακά CDNs δεν κάνουν μόνο caching, αλλά τρέχουν και κώδικα στο edge (π.χ. Cloudflare Workers, AWS Lambda@Edge)
- IoT support: Κρίσιμο για Internet of Things, όπου οι συσκευές χρειάζονται γρήγορη ανταπόκριση χωρίς να περιμένουν τον κεντρικό server
- Scalability: Κατανεμημένη εκτέλεση → λιγότερη πίεση στα κεντρικά data centers
Παραδείγματα Edge Computing
- Cloudflare Workers: Επιτρέπει να τρέχεις JavaScript/TypeScript functions σε εκατοντάδες edge servers παγκοσμίως
- IoT σενάριο: Ένα αυτοκίνητο στέλνει δεδομένα σε edge node κοντά του, που κάνει γρήγορη επεξεργασία (π.χ. για αυτόματο φρενάρισμα), χωρίς να περιμένει data center στην άλλη άκρη του κόσμου
📋 Σύνοψη Ενότητας
Το World Wide Web έχει εξελιχθεί από ένα απλό σύστημα διαμοιρασμού εγγράφων σε μια πολύπλοκη πλατφόρμα που υποστηρίζει εφαρμογές, υπηρεσίες και επικοινωνία παγκοσμίως.
🎯 Βασικά σημεία:
- Ιστορία: Από το CERN το 1989 στο σύγχρονο Web 3.0
- Αρχιτεκτονική: Client-server μοντέλο με HTTP/HTTPS
- Web Servers: Apache, Nginx, IIS για εξυπηρέτηση περιεχομένου
- URLs: Διευθυνσιοδότηση πόρων στο διαδίκτυο
- Εξέλιξη: PWAs, WebAssembly, Edge Computing
Στην επόμενη ενότητα θα μάθουμε HTML και CSS για τη δημιουργία ιστοσελίδων!
🔥 Ασκήσεις Εμπέδωσης
- Αναλύστε το URL: https://shop.example.com:8080/products/electronics?category=phones&brand=apple#specifications
- Εξηγήστε τη διαφορά μεταξύ HTTP και HTTPS
- Περιγράψτε τα βήματα που γίνονται όταν πληκτρολογείτε μια διεύθυνση στον browser
- Συγκρίνετε τα πλεονεκτήματα του Apache με το Nginx
- Τι είναι το Web 3.0 και πώς διαφέρει από το Web 2.0;
- Εξηγήστε τους HTTP status codes: 200, 404, 500
- Ποια είναι τα χαρακτηριστικά ενός stateless πρωτοκόλλου;
- Περιγράψτε μια PWA και τα πλεονεκτήματά της