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

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνολογίες Διαδικτύου - Εργαστήριο 1 ο

Εφαρµογές WebGIS Open Source

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

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Ρύθμιση Εξυπηρετητή Apache σε Ubuntu Linux

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο.

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

XAMPP Apache MySQL PHP javascript xampp

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

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

Θερινό Σχολείο, Ιουλίου slim. Δημοσθένης Νικούδης. Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

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

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

Ασφάλεια, Διαθεσιμότητα και Ταχύτητα για τις Web Εφαρμογές

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

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

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

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

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

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

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

"Ανάπτυξη προηγμένης εφαρμογής απεικόνισης και ενσωμάτωσης Υπηρεσιών Καταλόγου (LDAP) με τη χρήση των τεχνολογιών Web 2.0"

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

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

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

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

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

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

Ρυθμίσεις εγκατάστασης ονόματος χώρου σε πίνακα ελέγχου plesk

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

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

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

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

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Υπηρεσία WWW / Πρωτόκολλο HTTP / Ρύθμιση Apache Web Server

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

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

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

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

Εφαρμογή Βάσης Δεδομένων για την Εθελοντική Αιμοδοσία στο ΑΤΕΙ-Θ

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

Ρύθμιση λογαριασμού αποστολής Εmail. Η Google χρησιμοποιεί πλέον το μηχανισμό xoauth2 για την πιστοποίηση χρηστών gmail.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Paybybank RESTful API GUIDE

Εργαστήριο 8. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο

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

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

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

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

Ενότητα 3: Τα δεδομένα στο Web. (και η σημασιολογία τους semantics )

Java & Java EE 1o Μέρος: Servlets και Java Server Pages. Κακαρόντζας Γεώργιος

HTML Εργαστήριο 5. Δομή εγγράφου

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

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

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

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

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

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

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

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

Για τους πελάτες που πραγματοποιούν συνδέσεις δικτύου σε λειτουργικό σύστημα Windows

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

PayByBank RESTful API GUIDE

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

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

Δυναμικές Ιστοσελίδες στο Πανελλήνιο Σχολικό Δίκτυο

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

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

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης

ΤΕΙ ΚΑΒΑΛΑΣ Σχολή Τεχνολογικών Εφαρμογών Τμήμα Βιομηχανικής Πληροφορικής

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

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ Α2Α

Transcript:

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

HTTP: Η Απόκριση (Response)

HTTP Response: Status Codes Οι πιο σημαντικοί κωδικοί: 200 OK 301 Moved Permanently 302 Found 303 See Other 304 Not Modified 400 Bad Request 403 Forbidden 404 Not Found 415 Unsupported Media Type 500 Internal Server Error 501 Not Implemented 303: Εκτεταμένη χρήση στον Σημασιολογικό Ιστό

Πώς θα δούμε τις επικεφαλίδες της απόκρισης # Λήψη (και) των επικεφαλίδων της απόκρισης curl -s -i 'http://www.example.com/' wget -q -O - --server-response 'http://www.example.com/'

Δοκιμάστε κι εσείς! Δοκιμάστε να δείτε τις επικεφαλίδες απόκρισης: της διεύθυνσης http://www.ionio.gr/central/ της διεύθυνσης http://www.ionio.gr της διεύθυνσης http://dbtune.org/classical/ resource/composer/giustini_lodovico

Ανακατευθύνσεις (Redirects) Οι κωδικοί απόκρισης 3xx δηλώνουν ανακατεύθυνση Ο web client πρέπει να προσπελάσει κάτι άλλο! curl: πώς θα ακολουθήσει την ανακατεύθυνση curl -L 'http://www.example.com/' wget: πώς δεν θα ακολουθήσει την ανακατεύθυνση wget -q -O - 'http://ex.com' --max-redirect 0

Δοκιμάστε κι εσείς! Δοκιμάστε να δείτε τις ανακατευθύνσεις μέσω curl ή wget για: τη διεύθυνση http: //dbpedia.org/resource/lodovico_giustini την ίδια διεύθυνση με εναλλακτικό περιεχόμενο σε μορφή application/rdf+xml σε μορφή text/rdf+n3

Τα εργαλεία της δουλειάς: Web Servers Για τη διάθεση δεδομένων του Σημασιολογικού Ιστού Χρήση ενός τυπικού web server (π.χ. Apache) Εύκολη διάθεση σημασιολογικών δεδομένων Με ορισμένες ρυθμίσεις η/και τη χρήση scripting Συγγραφή ειδικού application server Μεγάλη ελευθερία χειρισμού δεδομένων Συχνά πίσω από έναν συμβατικό web server Τυπικές απαιτήσεις Προσθήκη επικεφαλίδων Ανακατευθύνσεις Διαπραγμάτευση περιεχομένου

CORS! Cross-Origin Resource Sharing Πολλές εφαρμογές του σημασιολογικού ιστού είναι web applications: Εκτελούνται στον web browser Και καταναλώνουν σημασιολογικά δεδομένα από διάφορες πηγές Όμως... Για λόγους ασφάλειας ο browser δεν μπορεί να προσπελάσει δεδομένα παρά μόνο από το ίδιο site που προέρχεται η web εφαρμογή... Αυτό αντιβαίνει την ιδέα διασύνδεσης διαφορετικών πηγών του σημασιολογικού ιστού! Μια μοντέρνα αντιμετώπιση: CORS Κάθε server με σημασιολογικά δεδομένα επιτρέπει τη χρήση τους από τρίτους Μέσω ειδικής επικεφαλίδας απόκρισης: Access-Control-Allow-Origin: *

Δοκιμάστε κι εσείς! Θα χρειαστείτε δύο διαφορετικούς web servers για να δείτε το CORS σε δράση Βήμα 1 ο : Στο site δοκιμών του εργαστηρίου Δημιουργήστε αρχείο test.txt με δοκιμαστικό κείμενο Αυτό θα αποτελέσει την πληροφορία από τρίτους Δοκιμάστε να το προσπελάσετε μέσω curl ή wget

Web appliction Τοποθετήστε στον υπολογιστή σας (corstest.html) <!doctype html> <html> <head> <meta charset="utf-8"> <title>cors Test</title> <script src="corstest.js"></script> </head> <body> <div id="puthere"> before.. </div> </body> </html>

Web appliction Τοποθετήστε στον υπολογιστή σας (corstest.js) window.onload = function() { var url = "http://server/~you/test.txt"; var request = new XMLHttpRequest(); request.open("get",url); request.onload = function() { if (request.status==200) { displayresponse(request.responsetext); } }; request.send(null); }; function displayresponse(responsetext) { var putdiv = document.getelementbyid("puthere"); putdiv.appendchild(document.createtextnode(responsetext)); }

Προσωρινός web server (στον υπολογιστή σας) Τοποθετήστε στον υπολογιστή σας (simpleserver.py) import sys import BaseHTTPServer from SimpleHTTPServer import SimpleHTTPRequestHandler HandlerClass = SimpleHTTPRequestHandler ServerClass = BaseHTTPServer.HTTPServer Protocol = "HTTP/1.0" if sys.argv[1:]: port = int(sys.argv[1]) else: port = 8000 server_address = ('127.0.0.1', port) HandlerClass.protocol_version = Protocol httpd = ServerClass(server_address, HandlerClass) sa = httpd.socket.getsockname() print "Serving HTTP on", sa[0], "port", sa[1], "..." httpd.serve_forever()

Δοκιμάστε κι εσείς! Βήμα 2 ο : Τρέξτε τον προσωρινό server: python simpleserver.py Φορτώστε το http://localhost:8000/corstest.html στον browser (αφού αλλάξετε το URL στο corstest.js!) Βλέπετε το κείμενό σας από το αρχείο test.txt;

Δοκιμάστε κι εσείς! Βήμα 3 ο : Στο site δοκιμών, στον φάκελο που περιλαμβάνει το text.txt: Στο αρχείο.htaccess προσθέστε: Header set Access-Control-Allow-Origin "*" Αυτό οδηγεί τον web server (Apache) να προσθέσει την επικεφαλίδα στην απόκριση (ελέγξτε το μέσω curl ή wget!) Φορτώστε το http://localhost:8000/corstest.html ξανά στον browser Η προσθήκη της επικεφαλίδας επιτρέπει τη χρήση πληροφορίας τρίτων!

Apache και.htaccess Μπορούμε να βάλουμε αρχείο.htaccess σε κάθε φάκελο του public_html Με τη βοήθεια του.htaccess μπορούμε να αλλάξουμε το URL της αίτησης σε διαφορετικό URL να ζητήσουμε ανακατεύθυνση σε διαφορετικό URL Θα πρέπει να το επιτρέπουν οι ρυθμίσεις του Apache

.htaccess και Αλλαγή URL Μετατροπή π.χ. της διεύθυνσης http://www.example.com/~user/resource/test στη διεύθυνση http://www.example.com/other/script.php?q=test RewriteEngine On RewriteBase /~user/resource RewriteRule ^(.*) /other/script.php?q=$1

.htaccess και Ανακατεύθυνση Ειδοποίηση του client για ανακατεύθυνση (303 See Other) από π.χ. τη διεύθυνση http://www.example.com/~user/resource/test στη διεύθυνση http://www.example.com/~user/data/test1.txt RewriteEngine On RewriteBase /~user/resource RewriteRule ^(.*) /~user/data/$1.txt [R=303]

Δοκιμάστε κι εσείς! Στον server δοκιμών υπάρχει (από το παλιό εργαστήριο των Τεχνολογιών Διαδικτύου) web service στη διεύθυνση /~hayman11/jsonsender.php?q=courseinfo&code=κωδ που δίνει πληροφορίες σχετικούς με μαθήματα ΚΩΔ = ΗΥ100, ΗΥ010, ΘΕ100, ΜΘ100 και ΜΘ110 (ελληνικοί χαρακτήρες) Δοκιμάστε πρώτα με αλλαγή URL και μετά με ανακατεύθυνση να στέλνετε στη διεύθυνση αυτή τα URL της μορφής: /~you/courses/κωδ Ελέγξτε μέσω wget ή curl. Ποια η διαφορά;

Ανακατεύθυνση και Διαπραγμάτευση Περιεχομένου Μόνο αν ισχύει η συνθήκη RewriteCond! RewriteEngine On RewriteBase /~user/resource RewriteCond %{HTTP_ACCEPT} text/plain RewriteRule ^(.*) /~user/data/$1.txt [R=303]