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

Σχετικά έγγραφα
Ενότητα 2: HTTP, Clients και Servers (II) (Web, το θεμέλιο του Σημασιολογικού Ιστού)

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

Εργαστήριο Σημασιολογικού Ιστού

Το πρωτόκολλο ΗΤΤΡ (HyperText Transfer Protocol)

Γιώργος Σπηλιώτης IT Consultant

Το πρωτόκολλο HTTP 1

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

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

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

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

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

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

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

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

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

Όχι, γιατί αν κάθε browser ζητά διαφορετικό αντικείμενο κάθε φορά τότε όχι μόνο δεν βελτιώνει αλλα χειροτερεύει τον χρόνο προσπέλασης

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

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

Δίκτυα Υπολογιστών Επίπεδο Εφαρμογής Ιωάννης Κορίνθιος Δρ. Ηλεκτρολόγος Μηχανικός ΕΜΠ

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

Client server Peer-to-peer (Οµότιµα ίκτυα)

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

wget --post-file meme.jpg :9646

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

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

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

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

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

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

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

Εφαρµογές και Περιβάλλοντα Εργασίας AJAX

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

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

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

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

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

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

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

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Ηλεκτρονικό Ταχυδρομείο - SMTP

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

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

Εργαστήριο Σημασιολογικού Ιστού

Δίκτυα Υπολογιστών Ενότητα 2: HTTP HyperText Transfer Protocol

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Κατανεμημένα Συστήματα. Javascript LCR example

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

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

Πλοήγηση σε Συνδεδεμένα Δεδομένα

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

Εργαστήριο Wireshark: HTTP

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

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

Οδηγίες Ακολουθήστε τα παρακάτω βήματα. Βεβαιωθείτε ότι το πρόγραμμά σας δουλεύει σωστά σε κάθε βήμα, πριν προχωρήσετε στο επόμενο.

Εγχειρίδιο χρήσης συστήματος ηλεκτρονικής αλληλογραφίας της Ελληνικής Ομοσπονδίας Μπριτζ

Διαβάστε στο Παράρτημα Α.1 πώς θα γράψετε ένα πρόγραμμα PHP για την παροχή δεδομένων σε μορφή διαφορετική από την HTML.

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

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

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

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

Κεφάλαιο 2 Επίπεδο Εφαρμογής

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

ΑΝΑΠΤΥΞΗ WEB ΕΦΑΡΜΟΓΩΝ ΜΕ JAVA SERVLETS

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

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Υπηρεσία Ηλεκτρονικού Ταχυδρομείου - SMTP

Διδάσκων: Παναγιώτης Ανδρέου

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

Πλοήγηση www / Με τον Internet Explorer

Μηχανή αναζήτησης βασισμένη σε AJAX και Soundex. Πτυχιακή Εργασία

Σκήκα Δπηζηήκεο Τπνινγηζηώλ ΠΣΤΥΗΑΚΖ ΔΡΓΑΗΑ

Εργαστήριο 3. Εγκατάσταση LAMP Stack στο AWS

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network).

Γκέγκα Ευρώπη Κωστοπούλου Ειρήνη

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

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

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

ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15

ΑΠΟ ΤΟΥΣ ΕΞΥΠΗΡΕΤΗΤΕΣ ΙΑ ΙΚΤΥΟΥ ΣΤΙΣ ΚΙΝΗΤΕΣ ΥΠΗΡΕΣΙΕΣ. ρ. Μάριος ικαιάκος

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

Openshift. Βασίλειος Καραβασίλης Μονάδα Αριστείας ΕΛΛΑΚ ΕΤΕΠΗ 16/07/2014

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

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

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

ΟΔΗΓΟΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ ΑΣΦΑΛΕΙΑΣ WEBMAIL ΤΕΙ ΚΑΛΑΜΑΤΑΣ

Επιβλέπων Καθηγητής : Τσιαντής Λεωνίδας Φοιτητής : Μακρής Γεώργιος

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

ΟΔΗΓΟΣ ΧΡΗΣΗΣ WEBMAIL ΤΕΙ ΚΑΛΑΜΑΤΑΣ

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

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

server : Ο υπολογιστής του καθηγητή που θέλουμε να ελέγχει τους υπόλοιπους του εργαστηρίου client : Οι υπολογιστές των μαθητών

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

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

ΣΥΣΤΗΜΑΤΑ SCADA. Μέρος 5. Δικτύωση για Απομακρυσμένο Έλεγχο και Μεταφορά Δεδομένων

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

Java & Java EE 3o Μέρος: Διασφάλιση ασφάλειας σε εφαρμογές Java Enterprise Edition. Κακαρόντζας Γεώργιος

Transcript:

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

Τα επίπεδα του Σημασιολογικού Ιστού Θα το βρούμε με πολλές μικρές παραλλαγές Θα ασχοληθούμε σε επόμενα εργαστήρια Ποια είναι όμως η βάση, στην οποία πατάει το semantic web layer cake ; To Web στον όρο Semantic Web

Το θεμέλιο: Web Τα μέρη που συγκροτούν το Web Το πρωτόκολλο HTTP για την ανταλλαγή δεδομένων Web clients και Web Servers Επιπλέον: HTML για ιστοσελίδες (εδώ όμως δεν μας ενδιαφέρει!) Κλασσική μορφή client-server Ο client στέλνει μια αίτηση (request) προς τον server......και ο server απαντά στον client με μία απόκριση (response)

Uniform Resource Locator (URL) Θα συναντήσουμε αργότερα το URL, αναβαθμισμένο σε URI: Uniform Resource Identifier Βασική έννοια στον Σημασιολογικό Ιστό

HTTP: Η Αίτηση (Request)

Τα συστατικά της Αίτησης HTTP Uniform Resource Locator (URL): επιλέγει αντικείμενο πόρο (resource), οντότητα (entity)... Μέθοδος: προσδιορίζει επιθυμητή λειτουργία πάνω στο αντικείμενο Επικεφαλίδες: εκφράζουν πρόσθετη πληροφορία για εμάς και την πρόθεσή μας Περιεχόμενο: δεδομένα που στέλνουμε μαζί με αίτηση, για ορισμένες μεθόδους μόνο

Παράδειγμα αίτησης GET /~mistral/tp/semweb/ HTTP/1.1 Host: di.ionio.gr User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) G Accept: text/html,application/xhtml+xml,application/xml;q=0.9, Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Connection: keep-alive If-Modified-Since: Sun, 03 Feb 2013 18:31:41 GMT If-None-Match: "b4c029-10b5-4d4d6300b9d40"

Μια αίτηση με περιεχόμενο POST /central/gr/directory/19gr/1 HTTP/1.1 Host: www.ionio.gr User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) G Accept: text/html,application/xhtml+xml,application/xml;q=0.9, Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://www.ionio.gr/central/gr/directory Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 14 selection=19gr Πρόκειται για ένα ζευγάρι τιμών (key:value) key="selection", value="19gr" Προσέξτε τη μέθοδο (POST)

Οι διάφορες μέθοδοι HTTP Οι μέθοδοι που υποστηρίζονται από όλους! GET: ανακτούμε την πληροφορία που σχετίζεται με το αντικείμενο που περιγράφει το URL Μία αίτηση GET σε ένα URL πρέπει να έχει το ίδιο αποτέλεσμα με πολλές αιτήσεις στο ίδιο URL δεν πρέπει να προκαλεί αλλαγές στον server (idempotent) Μπορούμε να στείλουμε δεδομένα προς τον server με την GET μέσω του URL: https://www.google.com/search?q=http+rfc+2616&ie= Μία από τις δύο μεθόδους που χρησιμοποιούνται σε φόρμες HTML HEAD: όπως και η GET αλλά εδώ ανακτούμε μόνο τις επικεφαλίδες της απόκρισης

Οι διάφορες μέθοδοι HTTP (2) Οι μέθοδοι που υποστηρίζονται από όλους (συνέχεια) POST: ζητάμε η πληροφορία που συνοδεύει την αίτηση να προστεθεί στον server, ο χειρισμός θα γίνει όπως προδιορίζει το URL Πρακτικά χρησιμοποιείται για την αποστολή νέων δεδομένων για επεξεργασία ή την ενημέρωση μιας βάσης Η δεύτερη μέθοδος που χρησιμοποιούν οι φόρμες HTML

Οι διάφορες μέθοδοι HTTP (3) Μέθοδοι που δεν χρησιμοποιούνται για τη διακίνηση (τυπικών) ιστοσελίδων PUT: ζητάμε η πληροφορία που συνοδεύει την αίτηση να αποθηκευτεί στον server ως η νέα τιμή του αντικειμένου που προδιορίζει το URL Idempotent! DELETE: ζητάμε ο server να διαγράψει το αντικείμενο που προδιορίζει το URL Τα GET, POST, PUT και DELETE χρησιμοποιούνται στα διάφορα δημοφιλή web APIs (ανεξάρτητα από τον Σημασιολογικό Ιστό) Υπάρχουν και κάποιες άλλες μέθοδοι ακόμα

Οι επικεφαλίδες της Αίτησης, πρακτικά Οι περισσότερες επικεφαλίδες της αίτησης τίθενται αυτόματα από την εφαρμογή client που χρησιμοποιούμε από τον web browser (σε κανονική χρήση και μέσω Javascript) από τη βιβλιοθήκη web client που χρησιμοποιεί η εφαρμογή μας (σε οποιαδήποτε γλώσσα) Αξίζει όμως να προσέξουμε τις εξής επικεφαλίδες: Accept: με αυτή μπορούμε να ζητήσουμε εναλλακτικές μορφές περιεχομένου (content negotiation) User-Agent: κάποιες φορές θα χρειαστεί να υποκριθούμε ότι είμαστε browser (ενώ είμαστε κάτι διαφορετικό): υπάρχουν servers, οι οποίοι έχουν αλλεργία σε αιτήσεις από clients που δεν είναι browsers!

Τα εργαλεία της δουλειάς: Web Clients Χρειαζόμαστε Web Clients για Να προσπελάσουμε δεδομένα στον Σημασιολογικό Ιστό Debugging, όταν γράφουμε έναν (application) server Είδη Web Clients Command-line tools: curl, wget (κυρίως για debugging και εξερεύνηση πηγών) Βιβλιοθήκες: Για την εφαρμογή μας (θα δουλέψουμε κυρίως σε Python) Browsers: Με τα κατάλληλα plugins (κατά την ανάπτυξη web applications)

curl και wget # Απλή προσπέλαση wget -q -O - http://www.example.com/page curl http://www.example.com/page # Αποστολή στοιχείων με τη μέθοδο POST: wget -q -O - --post-data "a=1&b=3" http://www.example.com/page curl --data "a=1&b=3" http://www.example.com/page curl --data-urlencode 'a=&' --data b=3 http://www.example.com/ # Διαπραγμάτευση επιστρεφόμενου τύπου δεδομένων: wget -q -O - --header="accept: text/plain" http://www.example. curl -H "Accept: text/plain" http://localhost:50007/page # Εναλλακτικές μέθοδοι curl -X DELETE http://www.example.com/page/1

Δοκιμάστε κι εσείς! Δοκιμάστε να προσπελάσετε μέσω curl ή wget: τις σελίδες των δύο προηγούμενων παραδειγμάτων αίτησης τη διεύθυνση http://dbtune.org/classical/ resource/composer/giustini_lodovico δοκιμάστε με το wget ξανά το προηγούμενο, ζητώντας εναλλακτικό περιεχόμενο σε μορφή application/rdf+xml σε μορφή text/rdf+n3 (για να κάνετε το ίδιο με το curl, προσθέστε το όρισμα -L εκτός από τα άλλα ορίσματα)

Python urllib import urllib # Απλή προσπέλαση page = urllib.urlopen("http://www.example.com/page") text = page.read() page.close() print text # Αποστολή παραμέτρων μέσω GET # params sent to server params = { 'a':23,'b':'testαβγδ','c':'+&=' } # create appropriate params string paramstr = urllib.urlencode(params) page = urllib.urlopen("http://www.ex.com/page?"+paramstr) text = page.read() page.close() print text

Python urllib (συνέχεια) # Αποστολή παραμέτρων μέσω POST import urllib # params sent to server params = { 'a':23,'b':'testαβγδ','c':'+&=' } # create appropriate params string paramstr = urllib.urlencode(params) page = urllib.urlopen("http://www.ex.com/page",paramstr) text = page.read() page.close() print text

Python urllib2 # Διαπραγμάτευση επιστρεφόμενου τύπου δεδομένων import urllib2 req = urllib2.request("http://www.ex.com/page") req.add_header('accept','text/plain') page = urllib2.urlopen(req) text = page.read() page.close() print text

Δοκιμάστε κι εσείς! Δοκιμάστε να προσπελάσετε μέσω python τα παραδείγματα που δοκιμάσατε μέσω curl και wget!