Διαδικτυακά Πολυμέσα και Γραφικά

Σχετικά έγγραφα
Θέματα Προγραμματισμού Διαδικτύου Εισαγωγή - Πρωτόκολλα

Θέματα Προγραμματισμού Διαδικτύου ~ HTML ~

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες

Τεχνολογίες ιαδικτύου

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

Περί δικτύων. Δρ. Ματθαίος Πατρινόπουλος

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας. Υπηρεσίες Internet. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα θ

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

α) η καταγραφή και η σύλληψη της δικτυακής κίνησης (capture) και β) η ανάλυση της δικτυακής κίνησης.

ΔΙΚΤΥΑ. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Βασικές Έννοιες Web Εφαρμογών

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 1: Εισαγωγή. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Πρωτόκολλα Διαδικτύου

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

Διαδικτυακά Πολυμέσα και Γραφικά. Javascript και Web. Στελιος Σφακιανάκης Φθινόπωρο 2018

Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0. Εφαρμογές Πληροφορικής Κεφ. 9 Καραμαούνας Πολύκαρπος 1

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. Internet -

Τεχνολογίες Διαδικτύου

Διάλεξη 7 η - Networks

Network Address Translation (NAT)

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία ( ) Υπηρεσία FTP (File Transfer Protocol)

Frontend optimizations. Θεοδόσης Σουργκούνης

Εισαγωγή στους Υπολογιστές

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. Internet -

Δίκτυα Θεωρία

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

Περιεχόμενα. Πρόλογος... xiii

Βασίλειος Κοντογιάννης ΠΕ19

ΤΕΧΝΟΛΟΓΙΕΣ ΣΧΕΔΙΑΣΗΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΤΟΠΟΥ (Web Site Design Technologies)

Ιόνιο Πανεπιστήµιο. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα Θ. Υπηρεσίες Internet. ρ. Ε. Μάγκος

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

6.2 Υπηρεσίες Διαδικτύου

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 8: Διαδίκτυο Βασικές Έννοιες

Π ΤΥ Χ ΙΑ Κ Η ΕΡΓΑΣΙΑ

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο

1 η Διάλεξη: Εισαγωγή στο Διαδίκτυο

Εισαγωγή στο Διαδίκτυο και στην Υπηρεσία περιήγησης του Παγκόσμιου Ιστού (WWW) Επικοινωνίες Δεδομένων Μάθημα 1 ο

7-22 Οκτωβρίου Μία γιορτή δημιουργίας με κώδικα. Europe Code Week

Κεφάλαιο 7.3. Πρωτόκολλο TCP

Εισαγωγή στην Πληροφορική

Σχεδίαση και Ανάπτυξη Ιστότοπων

Κεφάλαιο 13 Εφαρμογές Διαδικτύου

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας

Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET. Τεχνολογίες Τηλεκπαίδευσης & Εφαρµογές - Ιούλιος

ιαδικτυακές Εφαρµογές

Εισαγωγή στην πληροφορική

Προγραμματισμός Ιστοσελίδων (Web Design)

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I

Αλεξάνδρειο Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλονίκης (ΑΤΕΙ-Θ) Τμήμα Διατροφής - Διαιτολογίας - Πληροφορική Θεωρία

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Επίπεδο δικτύου IP Forwading κτλ

Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα

World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών

7.2.2 Σχέση OSI και TCP/IP

Εισαγωγή στην Πληροφορική

Πρωτόκολλο FTP. Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού

Γαβαλάς αµιανός

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

α. Το μέγιστο μήκος δεδομένων του ωφέλιμου φορτίου του πλαισίου Ethernet είναι 1500 οκτάδες. ΣΩΣΤΟ

Δίκτυα Θεωρία

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP.

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 7

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

Internet Τοπικό δίκτυο LAN Δίκτυο Ευρείας Περιοχής WAN Διαδίκτυο Πρόγραμμα Πλοήγησης φυλλομετρητής Πάροχοι Υπηρεσιών Internet URL HTML links

Μάθημα 6: Αρχιτεκτονική TCP/IP

Ορολογία. Access rights (Δικαιώματα πρόσβασης): Περιγραφή των δικαιωμάτων που παρέχονται για σε φακέλους και αρχεία. Bandwidth (Εύρος ζώνης):

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Δρ Παρασκευή Μεντζέλου Επίκουρος Καθηγήτρια Πληροφορικής Γενικό Τμήμα Θετικών Επιστημών

To λεξικό του Internet

Πρωτόκολλα Διαδικτύου (ΨΣ-326 DS151)

Ενότητα 1: HTTP, Clients και Servers. (Web, το θεμέλιο του Σημασιολογικού Ιστού)

(Blended Executive Learning)

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΙΣΤΟΤΟΠΩΝ

Εισαγωγη στην html. Η δομή μιας ιστοσελίδας (αρχείο html) Η βασική δομή ενός αρχείου html είναι η εξής: <html> <head>

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΗΛΕΚΤΡΟΝΙΚΕΣ ΥΠΗΡΕΣΙΕΣ

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Υπερκείμενο / Υπερμέσα

Εργαστήριο του Μαθήματος: ΕΠΛ 001

ΠΑΙΔΙ INTERNET ΚΑΙ. Όλα όσα πρέπει να γνωρίζουμε για μια δημιουργική και ασφαλή χρήση του διαδικτύου ΜΑΚΗΣ ΠΑΠΑΓΕΩΡΓΙΟΥ

HTML HTML5...CSS

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

Δίκτυα Υπολογιστών I

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Transcript:

Διαδικτυακά Πολυμέσα και Γραφικά Στελιος Σφακιανάκης Φθινόπωρο 2018 Αυτή η εργασία χορηγείται με άδεια Creative Commons Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 1

Περιεχόμενα Εισαγωγή στο Διαδίκτυο Διευθύνσεις Πρωτόκολλα Παγκόσμιο Ιστός - HTTP HTML CSS 2

Διαδίκτυο - Πρωτόκολλα - Υπηρεσίες 3 Διαδικτυοκεντρικός Προγραμματισμός, Στέλιος Σφακιανάκης

Αρχιτεκτονική του Ιστού ως υπηρεσία διαδικτύου Web APIs HTML CSS Javascript Παγκόσμιος Ιστός HTTP DNS TLS UDP TCP IP Υπηρεσίες και πρωτόκολλα Διαδικτύου IP : Internet Protocol TCP: Transmission Control Protocol UDP: User Datagram Protocol TLS: Transport Layer Security DNS: Domain Name Sercvice 4 Διαδικτυοκεντρικός Προγραμματισμός, Στέλιος Σφακιανάκης

Internet Protocol (IP) και οι διευθύνσεις του Καθε υπολογιστής προσβάσιμος στο Ιντερνετ έχει μια διεύθυνση IP (Internet Protocol address) Στην πιο διαδεδομένη έκδοση version 4 του IP, οι διευθύνσεις ειναι 4 bytes (δηλ. 32 bit) που συνήθως τις γραφουμε ως 4 αριθμοί χωρισμένοι με τελεία π.χ. 147.95.40.60 Οι διευθύνσεις (όπως και στην καθημερινότητα μας) επιτρέπουν την εύρεση μιας "τοποθεσίας" και τη "δρομολόγηση" σε αυτήν Το πρωτόκολλο IP ορίζει πώς γινεται η μεταφορά πακέτων δεδομένων στο Διαδίκτυο, μεσω ενδιάμεσων δικτύων και υπολογιστών-κόμβων. Καθε πακέτο IP περιέχει την IP διεύθυνση του "αποστολέα" και την διεύθυνση του προορισμού. 5

Transmission Control Protocol (TCP) Τα πακέτα δεδομένων του IP μπορεί να χαθούν ή να φτάσουν με διαφορετική σειρα στον προορισμό τους. Το TCP προσφέρει αξιοπιστία, χειρισμό λαθών, και αλγορίθμους για την βελτιστοποίηση της μεταφοράς των δεδομένων. Χρησιμοποιεί την έννοια της σύνδεσης δηλ. ορίζει μηνύματα για την αρχικοποίηση του "καναλιού" επικοινωνίας πριν τη μεταδοση των δεδομένων των εφαρμογών, καθώς και μηνύματα για το "κλείσιμο" της σύνδεσης Τα πακέτα του TCP περιέχονται μεσα σε πακέτα του IP και με τη σειρά τους περιέχουν της θύρες (ports) του αποστολέα και του παραλήπτη. Ενώ οι IP διευθύνσεις προσδιορίζουν τον "υπολογιστή" από τον οποίο ξεκινάνε ή καταλήγουν τα πάκετα, οι θύρες προσδιορίζουν τις εφαρμογές (π.χ. web server) που επικοινωνούν. Έτσι π.χ. το λειτουργικό σύστημα του υπολογιστή προορισμού μπορεί να παραδώσει το πακέτο πληροφορίας στο κατάλληλο πρόγραμμα που το περιμένει. 6

UDP και DNS Η αξιόπιστη λειτουργία του TCP όμως εισάγει πολυπλοκότητα και καθυστερήσεις. Σε περιπτώσεις που η γρήγορη παράδοση της πληροφορίας (π.χ. για βίντεο και ήχο) είναι πιο σημαντική από την αξιόπιστη μπορεί να χρησιμοποιηθεί το User Datagram Protocol (UDP) Τα UDP πακέτα που ανταλλάσονται μεταξύ δυο εφαρμογών στο διαδίκτυο μπορεί να φτάσουν με λαθος σειρά και δεν υπάρχουν αναφορές παράδοσης οπότε ο αποστολέας δεν γνωρίζει αν ενα μήνυμα έφτασε στον προορισμό. Όπως για το TCP έτσι και τα πακέτα του UDP μεταδίδονται μεσα σε πακέτα IP και περιέχουν ομοίως αριθμούς θυρών Ενώ η πλειονότητα των εφαρμογών χρησιμοποιεί TCP, υπάρχει μια πολύ κρίσιμη υπηρεσία που το χρησιμοποιεί: το DNS! 7

Domain Name Service (DNS) Η Υπηρεσία Ονομάτων (DNS) του Διαδικτύου επιτρέπει την αντιστοίχιση των αριθμητικών διευθύνσεων IP σε φιλικά για τον χρήστη ονόματα Τα ονόματα είναι δομημένα σε μια ιεραρχική δομή (δένδρο) που επιτρέπει την κατανεμημένη κατασκευή και διαχείρηση τους Η σχέση μεταξύ ονομάτων και διευθύνσεων IP δεν είναι 1 προς 1. Δηλαδή σε ένα όνομα μπορεί να αντιστοιχούν πολλές διευθύνσεις IP και σε μια διεύθυνση πολλά ονόματα. By DNS_Tree.svg: Sylvain Leroux (talk)derivative work: Ggia (talk) - DNS_Tree.svg, CC BY-SA 3.0, https:// commons.wikimedia.org/w/index.php?curid=15525424 Π.χ. Το google.com έχει τις 108.177.127.102, 108.177.127.100, 108.177.127.138, 108.177.127.101, 108.177.127.113, 108.177.127.139,... 8

TLS Το Transport Layer Security (TLS) εξασφαλίζει την ασφάλεια της επικοινωνίας στο Διαδίκτυο Κρυπτογράφηση, που εξασφαλίζει την ιδιωτικότητα (privacy) Ακεραιότητα δεδομένων (δηλ. δεν μπορεί ένας ενδιάμεσος κόμβος να αλλάξει την πληροφορία που ανταλλάσεται) Αυθεντικοποίηση, δηλ. ταυτοποίηση των επικοινωνούντων μερών Χρησιμοποιείται ευρέως για να ασφαλίσει πρωτόκολλα και υπηρεσίες εφαρμογής, π.χ. HTTPS, SMTPS (email),... 9

HTTP και ο Παγκόσμιος Ιστός 10 Διαδικτυοκεντρικός Προγραμματισμός, Στέλιος Σφακιανάκης

Ο Παγκόσμιος Ιστός Ο Παγκόσμιος Ιστός (World Wide Web) είναι ενα παγκόσμιο σύστημα διασυνδεδεμένων εγράφων υπερκειμένου που είναι διαθέσιμα στο Ιντερνετ Τι είναι το υπερκείμενο? Ειναι το μη γραμμικο κείμενο, δηλαδή αν μπορεί ο αναγνώστης να μεταβεί από κάποιο σημείο του εγγράφου σε κάποιο άλλο (ή σε άλλο έγγραφο) χωρίς να χρειαστεί να προσπελάσει σειριακά ό,τι βρίσκεται ενδιάμεσα Επομένως, το χαρακτηριστικό στοιχείο του υπερκειμένου είναι η ύπαρξη (υπερ)συνδέσμων (hyperlinks) 11

Ο Παγκόσμιος Ιστός: λίγη ιστορία Τη δεκαετία του 1960 ο πρόγονος του Ιντερνετ, το λεγόμενο ARPANET, δημιουργείται από το Υπουργείο Άμυνας των ΗΠΑ To 1974 δημοσιεύεται το TCP (Transmission Control Protocol) από τους Cerf και Kahn και το 1983 το TCP/IP γίνεται ο θεμέλιος λίθος του ARPANET To 1984 υλοποιείται το πρώτο Domain Name System (DNS), η υποδομή ονοματοδοσίας του Internet Το Ηλεκτρονικό Ταχυδρομείο (e-mail) και η ανταλλαγή εγγράφων (File Transfer Protocol - FTP) οι κύριες υπηρεσίες του Το 1989 ο Sir Tim Berners-Lee προτείνει ενα κατανεμημένο σύστημα υπερκειμένου στο CERN (δες επόμενο slide) και πριν τα Χριστούγεννα του 1990 υλοποιεί τον πρώτο εξυπηρετητή (server) και τον πρώτο πλοηγητή (web browser)..μαζί (επανα)εισαγει τον όρο Hypertext (υπερκείμενο) και υλοποιεί το Πρωτόκολλο Υπερκειμένου (HTTP) και την Γλώσσα Σήμανσης Υπερκειμένου (HTML) Η πρώτη τεκμηριωμένη του HTTP ειναι η 0.9 το 1991, το 1996 η έκδοση 1.0 (RFC 1945), ενώ το 1997 η έκδοση 1.1 (RFC 2068) με βελτιώσεις το 1999 (RFC 2616) Ο πρώτος ευρέως διαθέσιμος browser ήταν ο Mosaic (1993) στον οποίο βασίστηκε ο δημοφιλής Netscape Navigator (1994) Ξεκινάει ο (1ος) πόλεμος των πλοηγητών (browser war) με τη διάθεση απο την Microsoft του Internet Explorer (1995). Η Netscape χάνει και δημιουργεί το Mozilla Foundation που το 2004 διαθετει τον (ανοικτου λογισμικού) Mozilla Firefox To 1998 δημιουργείται η Google και σε λίγα χρόνια εξαφανίζει τις άλλες μηχανές αναζήτησης (Lycos, Altavista, Yahoo!) Το 2008 παρουσιάζεται ο Chrome browser από την Google Το HTTP 2 δημοσιεύεται ως RFC 7540 τον Μαίο 2015 12

Information Management: A Proposal This proposal concerns the management of general information about accelerators and experiments at CERN. It discusses the problems of loss of information about complex evolving systems and derives a solution based on a distributed hypertext system. Tim Berners-Lee, CERN March 1989 https://www.w3.org/history/1989/proposal.html 13 Διαδικτυοκεντρικός Προγραμματισμός, Στέλιος Σφακιανάκης

Το πρωτόκολλο HTTP 14 Διαδικτυοκεντρικός Προγραμματισμός, Στέλιος Σφακιανάκης

HTTP Έιναι ένα πρωτόκολλο εφαρμογής "πάνω" από τα TCP/IP Η προτυποποιημένη θύρα επικοινωνίας είναι το 80 και στην περίπτωση που χρησιμοποιείται το TLS (δηλ. για το HTTPS) είναι το 443 Τα μηνύματα που ανταλλάσονται είναι σε κείμενο που κάνει εύκολο το να δούμε τί πληροφορία ανταλλάσεται (π.χ. στο Chrome DevTools) 15

Διακομιστές και Πελάτες HTML, CSS, JS Διακομιστής GET / Πελάτης Το HTTP ακολουθεί μια λογική αίτησης - απάντησης (requestresponse) μεταξύ του πελάτη (π.χ. browser σε ενα PC) και του διακομιστή (server) Το πρόγραμμα Πελάτης ξεκινάει την επικοινωνία στέλνοντας μια αίτηση στον Διακομιστή Ο Διακομιστής απαντάει στέλνοντας την αιτούμενη πληροφορία 16

"Under the hood" Πελάτης (Browser) Διακομιστής (Web Server) Internet 17

URLs Τα Uniform Resource Locators (URLs) είναι διευθύνσεις για σελίδες στον Ιστό (web pages) Ενσωματώνουν πληροφορία για το πρωτόκολλο επικοινωνίας (http/ https), την διεύθυνση/όνομα του διακομιστή, την θύρα επικοινωνίας, το "μονοπάτι" στο συγκεκριμένο αρχείο/έγγραφο, και άλλες πληροφορίας 18

HTTP μηνύματα Όπως συνηθίζεται σε όλα τα πρωτόκολλα τα μηνύματα HTTP περιέχουν: Μια κεφαλίδα (headers), και (προαιρετικά) ένα "σώμα" (body/payload) Τα headers μηνυμάτων που στέλνουν οι πελάτες περιέχουν την "μεθοδο" (π.χ. GET) και τη διύθυνση της σελίδας, ενώ τα μηνύματα που επιστρέφει ο διακομιστής περιέχουν κωδικούς κατάστασης και άλλα μεταδεδομένα 19

20 Διαδικτυοκεντρικός Προγραμματισμός, Στέλιος Σφακιανάκης

Request GET / HTTP/1.1 Host: www.teicrete.gr Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Macintosh... DNT: 1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate, br Accept-Language: el,en-us;q=0.9,en;q=0.8 Response HTTP/1.1 200 OK Connection: Keep-Alive Transfer-Encoding: chunked Expires: Sun, 19 Nov 1978 05:00:00 GMT Date: Thu, 18 Oct 2018 07:00:20 GMT Content-Type: text/html; charset=utf-8 Etag: "1539844751-0" Server: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.26 OpenSSL/1.0.1f X-Powered-By: PHP/5.5.9-1ubuntu4.26 X-Drupal-Cache: HIT Content-Language: el X-Frame-Options: SAMEORIGIN X-Generator: Drupal 7 (https://www.drupal.org) Cache-Control: public, max-age=600 Last-Modified: Thu, 18 Oct 2018 06:39:11 GMT Vary: Cookie,Accept-Encoding Content-Encoding: gzip 21

(Βασικές) Μέθοδοι HTTP GET: ανάκτηση σελίδας από διακομιστή HEAD: επιστροφή μονο της κεφαλίδας (header) του μηνύματος δηλ μόνο μεταδεδομένα (π.χ. μέγεθος αρχείου) χωρίς το περιεχόμενο της σελίδας/αρχείου POST: υποβολή φόρμας ή άλλων δεδομένων στον διακομιστή για δημιουργία νέας "σελίδας" PUT: υποβολή δεδομένων για την ενημέρωση σελίδας DELETE: αίτηση για κατάργηση (διαγραφή) της σελίδας στον διακομιστή 22

HTTP κώδικες κατάστασης Τα HTTP Status codes είναι αριθμοί 3 ψηφίων, από τα οποία το πρώτο προσδιορίζει την γενικη κατηγορία της απάντησης (response): 1xx : πληροφοριακά μηνύματα 2xx : Επιτυχία!! 3xx : ανακατεύθυνση σε άλλο URL 4xx: Αποτυχία, οφείλεται στον πελάτη 400: Bad request 401: Unauthorized (π.χ. λαθος κωδικός) 403: Forbidden 404: Not Found 5xx : Αποτυχία, οφείλεται στον διακομιστή 500: Internal Server Error (π.χ. ο διακομιστής δεν μπορεί να επικοινωνήσει με τη βάση δεδομένων) 23

Προγραμματισμός στον Ιστό 24 Διαδικτυοκεντρικός Προγραμματισμός, Στέλιος Σφακιανάκης

Προγραμματισμός στον Ιστό HTML : Περιεχόμενο CSS : Παρουσίαση Javascript : "συμπεριφορά" (Behaviour) 25

Η γενική εικόνα User actions Browser actions Server actions Enters URL (or clicks link) Generates a request and sends it to the server Page building </> Processes HTML, CSS, and JavaScript, and builds resulting page Performs actions or gets a resource; sends response to client Interacts with page elements Closes web app Monitors event queue, processing any events one at a time Event handling App lifecycle ends Figure 2.1 The side web applica user specifying a clicking a link) a user leaves the w posed of two step event handling. 26

HTML Η γλώσσα HTML (Hypertext Markup Language) ειναι η βασική γλώσσα για την κατασκευή ιστοσελίδων Υπάρχει από (περίπου) το 1990 Η τελευταία έκδοση της ειναι η HTML5, την οποία θα χρησιμοποιήσουμε σε αυτό το μάθημα 27

Η HTML σχεδιάζεται από το World Wide Web Consortium (W3C) Οι τεχνικές προδιαγραφές ειναι διαθέσιμες στο http://www.w3.org/tr/html5/ Το Mozilla Developer Network (MDN) είναι ενας θησαυρός πληροφορίας: https://developer.mozilla.org/en-us/docs/learn/html 28

Ιστορία και εκδόσεις HTML4 (1997) XHMTL 1.0 /1.1: συμβατή με XML (2000) W3C ξεκίνησε να δουλευει το XHTML 2.0 Ενοχλημένοι από την κατεύθυνση που οδηγούσε το W3C, οι Apple, Mozilla, και Opera δημιούργησαν το Web Hypertext Application Technology Working Group (WHATWG) και πρότειναν το HTML5 (2007) Το W3C εγκατέλειψε το XHTML 2.0 και υιοθέτησε το HTML5! 29

Ποια έκδοση?? Το DOCTYPE στην αρχή ενός εγγραφου HTML προσδιορίζει την έκδοση που χρησιμοποιεί το έγγραφο, π.χ. HTML 4.01 : XHTML 1.1 : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd"> HTML5 : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <!DOCTYPE html> 30

Χρηση της HTML Ο βασικός τρόπος χρήσης της HTML είναι ο εξής: Ο πλοηγητής Ιστου (web browser) στέλνει μια άιτηση στον εξυπηρετητή (server) αιτώντας μια σελίδα π.χ. index.html Carrier 12:00 PM Page Title http://www.domain.com Google GET index.html O εξυπηρετητής στέλνει τα περιεχόμενα της σελίδας πίσω στον πλοηγητη Ο πλοηγητής απεικονίζει τη σελίδα dwight said Web Page Title http://domain.com A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of 16:9 sentences fly into your mouth. 0:00 / 4:59 Car chases are interesting, but spelling is more importanter Please take a moment to ask yourself this question before reading this web log: Am I a stupid person that can t spell? If yes, then answer this question: Will I be offended if somebody, namely Dwight K. Schrute. Google Friends D. Schrute schrute@acme.com 555-555-555 J. Halpert halpert@acme.com 555-555-555 P. Beesly beesly@acme.com 555-555-555 M. Scott scott@acme.com 555-555-555 R. howard howard@acme.com 555-555-555 View All index.html Διακομιστής Η σελίδα μπορεί να περιέχει υπερσυνδέσμους (HTTP URLs) σε άλλες σελίδες και επιλέγοντας ο χρήστης μπορεί να ζητήσει την ανάκτηση νέας σελίδας I pity you fool. jibbajabba said Πελάτες 31

Τα έγγραφα HTML (HTML documents) είναι αρχεία κειμένου που περιέχουν στοιχεία (elements) και κείμενο Τα στοιχεία της HTML είναι εντολές που καθορίζουν τη δομή, το περιεχόμενο, τον τρόπο παρουσίασης κλπ της σελίδας Γενικά η HTML εχει μια ιεραρχική δομή (παρόμοια με την XML), όπου τα στοιχεία μπορούν να περιέχουν κάποια άλλα στοιχεία κλπ 32

Hyper Text Markup Language Markup Language ("γλώσσα σήμανσης") σημαίνει ότι το περιεχόμενο "υποσημειώνεται" προσθέτωντας "νόημα" ή παραπομπές σε άλλες πηγές. Η σήμανση γίνεται με χρήση ετικετών (tags) που είναι κείμενο ανάμεσα στα σύμβολα < ("μικρότερο από") και > ("μεγαλύτερο από"). Ό,τι κείμενο εμφανίζεται μεσα στα σύμβολα θεωρείται μέρος της γλώσσας και όχι του περιεχομένου. Τα tags επομένως είναι εντολές της γλώσσας που αλλάζουν τη σημασία του κειμένου, προσθέτουν νόημα, λειτουργικότητα, κλπ. 33

Παράδειγματα tags που προσθέτουν νόημα: <h1> : επικεφαλίδα 1ου επιπέδου <p> : νέα παράγραφος <ul><li> : μη αριθμημένη λίστα Μορφοποίηση, π.χ. <em>note:</em> Πρόσθετη πληροφορία π.χ. εικόνα <img> ή υπερσύνδεσμος <a> 34

Βασικοί κανόνες Τα tags μπορεί να φωλιασμένα πχ. πλάγιο κείμενο μέσα σε παράγραφο: <p>this is very <it>important</it>!</p> Γενικά κάθε tag πρέπει να κλείνει με ένα αντίστοιχο το! Το tag που "ανοίγει" (π.χ. <p>), το tag που "κλείνει" (</p>) και ό,τι βρίσκεται ανάμεσα τους το λέμε στοιχείο (element). Ένα (opening) tag μπορεί να περιέχει "ιδιότητες" π.χ. <img src="photo.jpg"><img> Εάν ενα στοιχείο δεν έχει περιεχόμενο τότε το closing tag μπορεί να παραλειφθεί και το στοιχείο να γραφεί ως εξής: <img src="photo.jpg"/> Ένα έγγραφο HTML είναι μια ιεραρχική συλλογή από στοιχεία που ξεκινάει με "ρίζα" το <html> Το <html> έχει συνήθως 2 "παιδιά" : το <head> που περιέχει μεταδεδομένα και το <body>που περιέχει το κυρίως κείμενο. 35

Παράδειγμα <!DOCTYPE html> <html> <head> <title>my first web page</title> </head> <body> <h1>hello World!</h1> <p> This is my <em>first</em> web page </p> </body> </html> 36