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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

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

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

Αλεξιάδης Γεώργιος (ΠΕ86) -

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

Κεφάλαιο 11: Εισαγωγή στην HTML. Εφαρμογές Πληροφορικής Κεφ. 11 Καραμαούνας Πολύκαρπος

ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ : ΜΗΧΑΝΙΣΜΟΙ ΣΥΛΛΟΓΗΣ ΣΤΟΙΧΕΙΩΝ ΣΤΟ ΔΙΑΔΥΚΤΙΟ (COOKIES)

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

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

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

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

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

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

Φόρμες. Γενικοί κανόνες. Η ετικέτα <form>

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

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι

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

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

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

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

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

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

Ποιες είναι οι κύριες ετικέτες που χρησιμοποιεί η HTML για την περιγραφή της συνολικής δομής μιας ιστοσελίδας;

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

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

Τεχνολογίες Ανάπτυξης Εφαρμογών στο WEB

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 3: Server Side Scripting II PHP & MySQL

Δυναμικές Ιστοσελίδες Προγραμματισμός στην πλευρά του client

Μεταπτυχιακή Διατριβή

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

Προγραμματισμός διαδικτυακών εφαρμογών με PHP

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Παγκόσμιος Ιστός

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

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

Social Network : Programming on FACEBOOK

Ref.: SLWS 1 5Copyright 2005 The European Computer Driving Licence Foundation Ltd Σελίδα 1 από 7

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

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

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

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

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services

Τεχνικός Εφαρμογών Πληροφορικής

Εισαγωγή στην Ανάπτυξη Εφαρμογών Web με Χρήση της Python, του Apache και του mod_python

<a href=" στο κείμενο</a>.

Διάλεξη 7 η - Networks

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Παγκόσμιος Ιστός

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

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

Δημοσίευση στο Διαδίκτυο

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

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

Πληροφορίες για το μάθημα

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

Άσκηση 6 Επαναληπτική Άσκηση HTML

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

Υπολογιστές και ίκτυα Η/Υ.

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Για το μέρος αυτό της άσκησης θα υλοποιήσετε μια εφαρμογή κελύφους η οποία θα χρησιμοποιείται ως εξής:

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

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

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία

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

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

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

Τι είναι η HTML; Τί είναι οι ετικέτες (tags); Πώς είναι μια ετικέτα (tag);

Εργαλεία Ανάπτυξης Εφαρμογών Internet I

Ανάπτυξη Υπηρεσίας Τηλεκπαίδευσης σε ΙP Δίκτυα. Υλοποίηση Σύγχρονης Τηλεκπαίδευσης

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

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

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

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

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

Σχεδιασμός Web εφαρμογής διαχείρισης συσκευών σε γλώσσα ASP.NET και βάση δεδομένων SQL Server 2000

Δίκτυα Η/Υ, Διαδίκτυο & Παγκόσμιος Ιστός

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

ΤΕΙ Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών. Επώνυμο Όνομα: Α.Μ. : Εξάμηνο : Αίθουσα

Transcript:

ECE_Y210 Εισαγωγή στην Επιστήμη του Ηλεκτρολόγου Μηχανικού Τεχνολογίες Διαδικτύου Νικόλαος Αβούρης hci.ece.upatras.gr/avouris 1

Αντικείμενο της ενότητας Η μελέτη τεχνολογιών ανάπτυξης εφαρμογών στο διαδίκτυο, χρησιμοποιώντας την python ως γλώσσα προγραμματισμού. - web: Σύντομη εισαγωγή στο πρωτόκολλο HTTP και στην HTML, τη γλώσσα συγγραφής υπερκειμένου - Διασύνδεση εφαρμογής python με web server μέσω του πρωτοκόλλου Web Server Gateway Interface WSGI - Ανάπτυξη διαδικτυακής εφαρμογής με Python, παραδείγματα 9

Το Διαδίκτυο o Είναι το παγκόσμιο σύστημα διασυνδεδεμένων δικτύων υπολογιστών που χρησιμοποιούν τα πρωτόκολλα TCP / IP. o Ο παγκόσμιος ιστός (www) είναι η πιο σημαντική υπηρεσία που χρησιμοποιεί το Διαδίκτυο, για αυτό ο όρος διαδίκτυο και παγκόσμιος ιστός συγχέονται. o Η χρήση του αυξήθηκε ραγδαία από τα μέσα της δεκαετίας του 1990 και σήμερα καλύπτει κάθε πτυχή της σύγχρονης ζωής. o Όχι κεντρική οργάνωση. Μόνο ο χώρος διευθύνσεων IP και Domain Name System (DNS), κατευθύνονται από την ICANN. o H τυποποίηση των βασικών πρωτοκόλλων συντονίζεται από την Internet Engineering Task Force (IETF) 2

Το Διαδίκτυο o Είναι το παγκόσμιο σύστημα διασυνδεδεμένων δικτύων υπολογιστών που χρησιμοποιούν τα πρωτόκολλα TCP / IP. o Ο παγκόσμιος ιστός (www) είναι η πιο σημαντική υπηρεσία που χρησιμοποιεί το Διαδίκτυο, για αυτό ο όρος διαδίκτυο και παγκόσμιος ιστός συγχέονται. o Η χρήση του αυξήθηκε ραγδαία από τα μέσα της δεκαετίας του 1990 και σήμερα καλύπτει κάθε πτυχή της σύγχρονης ζωής. o Όχι κεντρική οργάνωση. Μόνο ο χώρος διευθύνσεων IP και Domain Name System (DNS), κατευθύνονται από την ICANN. o H τυποποίηση των βασικών πρωτοκόλλων συντονίζεται από την Internet Engineering Task Force (IETF) 3

Το Διαδίκτυο o Είναι το παγκόσμιο σύστημα διασυνδεδεμένων δικτύων υπολογιστών που χρησιμοποιούν τα πρωτόκολλα TCP / IP. o Ο παγκόσμιος ιστός (www) είναι η πιο σημαντική υπηρεσία που χρησιμοποιεί το Διαδίκτυο, για αυτό ο όρος διαδίκτυο και παγκόσμιος ιστός συγχέονται. o Η χρήση του αυξήθηκε ραγδαία από τα μέσα της δεκαετίας του 1990 και σήμερα καλύπτει κάθε πτυχή της σύγχρονης ζωής. o Όχι κεντρική οργάνωση. Μόνο ο χώρος διευθύνσεων IP και Domain Name System (DNS), κατευθύνονται από την ICANN. o H τυποποίηση των βασικών πρωτοκόλλων συντονίζεται από την Internet Engineering Task Force (IETF) 4

Το Διαδίκτυο o Είναι το παγκόσμιο σύστημα διασυνδεδεμένων δικτύων υπολογιστών που χρησιμοποιούν τα πρωτόκολλα TCP / IP. o Ο παγκόσμιος ιστός (www) είναι η πιο σημαντική υπηρεσία που χρησιμοποιεί το Διαδίκτυο, για αυτό ο όρος διαδίκτυο και παγκόσμιος ιστός συγχέονται. o Η χρήση του αυξήθηκε ραγδαία από τα μέσα της δεκαετίας του 1990 και σήμερα καλύπτει κάθε πτυχή της σύγχρονης ζωής. o Όχι κεντρική οργάνωση. Μόνο ο χώρος διευθύνσεων IP και Domain Name System (DNS), κατευθύνονται από την ICANN. o H τυποποίηση των βασικών πρωτοκόλλων συντονίζεται από την Internet Engineering Task Force (IETF) 5

Το Διαδίκτυο o Είναι το παγκόσμιο σύστημα διασυνδεδεμένων δικτύων υπολογιστών που χρησιμοποιούν τα πρωτόκολλα TCP / IP. o Ο παγκόσμιος ιστός (www) είναι η πιο σημαντική υπηρεσία που χρησιμοποιεί το Διαδίκτυο, για αυτό ο όρος διαδίκτυο και παγκόσμιος ιστός συγχέονται. o Η χρήση του αυξήθηκε ραγδαία από τα μέσα της δεκαετίας του 1990 και σήμερα καλύπτει κάθε πτυχή της σύγχρονης ζωής. o Όχι κεντρική οργάνωση. Μόνο ο χώρος διευθύνσεων IP και Domain Name System (DNS), κατευθύνονται από την ICANN. o H τυποποίηση των βασικών πρωτοκόλλων συντονίζεται από την Internet Engineering Task Force (IETF) 6

Αρχιτεκτονική του διαδικτύου Ροή δεδομένων στα πρωτόκολλα διαδικτύου https://en.wikiversity.org/wiki/web_science/part1:_foundations_of_the_web 7

Ποσοστό του πληθυσμού online http://www.websitemagazine.com/images/blog/adayoftheinternet_info.png 8

HTTP(hyper-text transfer protocol) Πρωτόκολλο ανταλλαγής μηνυμάτων μεταξύ πελάτη (browser) και εξυπηρετητή (web server) για την εφαρμογή παγκόσμιου ιστού. Το πρωτόκολλο ορίστηκε το 1989 από τον Tim Berners-Lee Σήμερα στην έκδοση HTTP/2 Τα μηνύματα είναι δομημένα κείμενα Μηνύματα αιτήματα: GET ή POST Μηνύματα αποκρίσεις 10

GET To πιο συνηθισμένο αίτημα HTTP GET URI[?key1=value1&key2=value2] πρωτόκολλο GET /index.php?name=nikos HTTP/1.1[CRLF] Host: www.upatras.gr:80[crlf] Accept: image/gif, image/jpeg[crlf] User-Agent: Mozilla/4.0[CRLF] Connection: Keep-Alive[CRLF] [CRLF] 11

POST Χρησιμοποιείται για την αποστολή δεδομένων ή κωδικοποιημένων αρχείων προς τον Web Server. - Συχνά χρησιμοποιούμενη για επεξεργασία στοιχείων από φόρμες. POST /receiver.php HTTP/1.1[CRLF] Host: www.upatras.gr:80[crlf] Content-Type: application/x-www-form-urlencoded; charset=utf-8[crlf] Content-Length: 50[CRLF] [CRLF] ModuleCode=243607&FileID=2207&rndval=1286476333676[ CRLF] 12

Απόκριση συστήματος Έκδοση sp Κωδικός Κατάστασης sp Φράση cr lf Κεφαλίδα sp Τιμή cr lf... Γραμμές Κεφαλίδων cr Κεφαλίδα lf sp Τιμή cr lf Κείμενο Μηνύματος HTTP/1.x 200 OK Date: Sat, 08 Sep 2017 17:12:39 GMT Server: Apache Last-Modified: Sat, 08 Sep 2007 17:12:16 GMT Accept-Ranges: bytes Cache-Control: max-age=0 Expires: Sat, 08 Sep 2017 17:12:39 GMT Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 32 Content-Type: text/plain; charset=windows-1253 Connection: keep-alive Hello world! 13

Απόκριση συστήματος: κωδικός κατάστασης cr Έκδοση sp Κωδικός Κατάστασης sp Φράση cr lf Κεφαλίδα lf sp Τιμή cr lf... Γραμμές Κεφαλίδων Ακέραιος αριθμός τριών δεκαδικών ψηφίων Κεφαλίδα sp Τιμή cr lf Το πρώτο ψηφίο καθορίζει την κατηγορία της απάντησης: 1xx: μήνυμα πληροφορίας HTTP/1.x 200 OK Date: Sat, 08 Sep 2017 17:12:39 GMT Server: Apache Last-Modified: Sat, 08 Sep 2007 17:12:16 GMT Κείμενο Μηνύματος Accept-Ranges: bytes 2xx: κατάσταση επιτυχούς επεξεργασίας Cache-Control: max-age=0 Expires: Sat, 08 Sep 2017 17:12:39 GMT Vary: Accept-Encoding 3xx: προώθηση του Client σε διαφορετικό URL Content-Encoding: gzip Content-Length: 32 4xx: σφάλμα προερχόμενο από τον Client Content-Type: text/plain; charset=windows-1253 Connection: keep-alive 5xx: σφάλμα προερχόμενο Hello world! από τον Server 14

Τεχνολογίες Διαδικτύου μέρος #2 Hyper Text Markup Language (HTML) 15

Δομή ιστοσελίδας 16

Βασικές ετικέτες html <h1> </h1>, <h2>,... <h6> Επικεφαλίδα <p> </p> Παράγραφος <ul> </ul> Μη διατεταγμένη λίστα <ol> </ol> Διατεταγμένη λίστα (1.,2.,3. ) <div> </div> Oρισμός μπλοκ κειμένου, με αλλαγή γραμμής στο τέλος <span> </span> ορισμός μικρής περιοχής κειμένου <hr> οριζόντια γραμμή (horizontal ruler) <br> break, αλλαγή γραμμής 17

Διαμόρφωση πινάκων 18

Εισαγωγή εικόνας-ήχου-βίντεο <img src="url" width="x" height="y" alt="abc" title="defg" /> <audio src= "url" autoplay loop > controls <video src="walking_video.mp4" > </video> 19

Παράδειγμα εισαγωγή εικόνας - ήχου 20

Υπερσύνδεσμοι <a> (άγκυρα) Ετικέτα που επιτρέπει τη διασύνδεση μέσω υπερσυνδέσμου (href) <a href= http://www.ece.upatras.gr > Visit us </a> 21

<style> Η τεχνολογία CSS 22

Φόρμες 23

Φόρμες 24

Javascript (JS): η γλώσσα προγραμματισμού στον browser Δεν θα ασχοληθούμε σε αυτή την ενότητα, βλέπε μάθημα 5ου έτους. 25

Τεχνολογίες Διαδικτύου μέρος #3 Προγραμματισμός στον server με Python 26

Αρχιτεκτονική wsgi (Web Server Gateway Interface) client server browser GET / HTTP/1.0 HTTP/1.0 200 OK Web server process WSGI request WSGI response Environment variables WSGI script (Python) data base HTML CSS JS 27

Παράδειγμα wsgi Η συνάρτηση αυτή παίρνει 2 ορίσματα Το environ που περιέχει πληροφορίες από το περιβάλλον του web server και την start_response που είναι η συνάρτηση που θα κληθεί για να λάβει ο server την κεφαλίδα της απάντησης Η start_response παίρνει 2 ορίσματα: HTTP response code και λίστα από header names/values. Δημιουργεί web server με socket localhost, 8080, που καλεί την app όταν δέχεται αιτήματα Η συνάρτηση επιστρέφει το περιεχόμενο του μηνύματος HTTP (εδώ κώδικας HTML), ως ακολουθία από byte strings. 28

Παράδειγμα wsgi /η παράμετρος environ Η environ είναι ένα λεξικό με τις παραμέτρους του περιβάλλοντος του web server, μπορούμε να τον τυπώσουμε στην html

Άσκηση 1 Γράψτε ένα πρόγραμμα που διαβάζει ένα λεξικό με ονόματα και ηλικίες και τυπώνει σε πίνακα τα ονόματα και τις αντίστοιχες ηλικίες τους Άσκηση 2 Γράψτε ένα πρόγραμμα που τυπώνει τους 50 μικρότερους πρώτους αριθμούς. Οι πρώτοι αρχίζουν από 2,3,5... 30

Τεχνολογίες Διαδικτύου μέρος #4 Διαδικτυακές εφαρμογές Python 31

Παράδειγμα wsgi /πολλαπλές σελίδες Έστω ότι θέλουμε ο server να εξυπηρετήσει 2 σελίδες: την /index.html και την /one.html για να γίνει αυτό αρκεί να εξετάσουμε την τιμή της παραμέτρου PATH_INFO στο λεξικό environ και ανάλογα να επιστρέψουμε την κατάλληλη σελίδα 32

Παράδειγμα wsgi /φόρμες Το περιεχόμενο της φόρμας (ζευγάρια μεταβλητής/ τιμής) γίνονται μέρος του URL, και μεταφέρονται στην κεφαλίδα του HTTP χωρισμένα με &. /?first=nikos&last=nikolaou <form method=get> <ul> <li>όνομα: <input name='first'></li> <li>επίθετο: <input name='last'></li> </ul> <input type='submit' value='υποβολή'> </form> method=post Το περιεχόμενο της φόρμας (ζευγάρια μεταβλητής/ τιμής) μεταφέρονται στο σώμα του μηνύματος HTTP χωρισμένα με & 33

Παράδειγμα wsgi /φόρμες GET Έστω ότι θέλουμε ο server να εξυπηρετήσει μία φόρμα, τα στοιχεία της οποίας υποβάλλονται στον εξυπηρετητή με τη μέθοδο GET Τα στοιχεία μεταφέρονται στον server μέσω του URL με τη μορφή query string: Πχ. http://localhost:8080/?first=nikos&last=nikolaou Ευρίσκονται στην παράμετρο environ[ query_string ] 34

Παράδειγμα wsgi /φόρμες GET Αντικαθιστά το %s στο αρχείο index.html με το περιεχόμενο του στοιχείου του λεξικού environ 35

Παράδειγμα wsgi /φόρμες POST Στην περίπτωση αυτή ελέγχουμε αν το μήνυμα περιέχει περιεχόμενο, δηλαδή η CONTENT_LENGTH έχει τιμή διάφορη του 0. Τότε διαβάζουμε από την environ[ wsgi.input ] το περιεχόμενό της. http://pwp.stevecassidy.net/wsgi/more-wsgi.html 36

Παράδειγμα επεξεργασίας στοιχείων Φόρμας με χρήση του cgi To module cgi είναι ένα παλιότερο πρωτόκολλο που χρησιμεύει για σύνδεση προγραμμάτων python με web server. Η βιβλιοθήκη cgi περιέχει το αντικείμενο FieldStorage το οποίο όταν κληθεί ως εξής: FieldStorage(fp=environ['wsgi.input'], environ=environ, keep_blank_values=1) Μας παρέχει με κλήση της μεθόδου getvalue() πρόσβαση στα στοιχεία της φόρμας, είτε η φόρμα έχει κληθεί με POST είτε με GET http://pwp.stevecassidy.net/wsgi/more-wsgi.html 37

Παράδειγμα επεξεργασίας στοιχείων Φόρμας με χρήση του cgi

Web frameworks Λογισμικά που έχουν σκοπό την υποστήριξη ανάπτυξης εφαρμογών web, βασισμένων σε τυπικές εργασίες που απαιτούνται. Περιλαμβάνουν βιβλιοθήκες για σύνδεση με βάσεις δεδομένων (συχνά με τη μορφή ORM object-relational mapping), βιβλιοθήκες για templating (διαμόρφωση περιεχομένου ιστοσελίδων), διαχείριση session, URL mapping, ενώ φροντίζουν για θέματα ασφάλειας, cashing κλπ. PHP: CakePHP, Yii2, Lavarel, Synfony Python: Django, TurboGears, Flask, CherryPy 39

ένα web μframework για την Python Δημιουργήθηκε από τον Αυστριακό Armin Ronacher (2010). Εξαιρετικά απλό, κατάλληλο για εισαγωγή στα frameworks. Χρησιμοποιεί την template engine Jinja2, τη βιβλιοθήκη Werkzeug για υλοποίηση της WSGI, και την ORM (Object-Relational Mapping) βιβλιοθήκη SQLAlchemy για σύνδεση στη βάση δεδομένων. 40

Μεγάλες ιστοσελίδες όπως το pinterest instagram, mozilla κλπ έχουν βασιστεί στο django. Πλούσια βιβλιογραφία Το πιο δημοφιλές python web framework Πρώτη έκδοση το 2005. Χρησιμοποιεί την WSGI για σύνδεση με Apache ή NGINX Σύνδεση με βάσεις δεδομένων : PostgreSQL, MySQL, SQLite, Oracle. Fork django-nonrel για μή SQL βάσεις δεδομένων 41

Άσκηση 3 Να κατασκευαστεί φόρμα που όταν υποβάλλεται να παρουσιάζει τα δεδομένα υπό μορφή πίνακα. 42

Άσκηση 4. Να σχεδιάσετε μια σελίδα, στην οποία ο χρήστης δίνει μια τιμή θερμοκρασίας, και επιλέγει κλίμακα (Κελσίου, Φαρενάιτ ή Κέλβιν). Η θερμοκρασία υπολογίζεται και εμφανίζεται η τιμή της στις άλλες 2 κλίμακες. Επιλογή κλίμακας είτε με radiobutton είτε listbox 43

Θέματα ατομικών εργασιών 1. Να κάνετε συγκριτική μελέτη των 5 κυριότερων web framework της python. 2. Να περιγράψετε την τεχνολογία ORM και να δώσετε παραδείγματα εφαρμογής της σε python web frameworks. 3. Να αναφέρετε τα κυριότερα πλεονεκτήματα της Python έναντι άλλων γλωσσών προγραμματισμού στην πλευρά του εξυπηρετητή διαδικτυακών εφαρμογών. 4. Να περιγράψετε την τεχνολογία templating και να δώσετε παραδείγματα εφαρμογής της σε python web frameworks. 5. Να περιγράψετε την βασική αρχιτεκτονική του flask μέσω ενός παραδείγματος χρήσης του framework. 44