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

Σχετικά έγγραφα
Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Εξυπηρετητής Apache

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

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

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

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

Ρύθμιση apache 2.0 web server σε Debian linux variations

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

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

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

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

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

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

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

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

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

Εξοικείωση με τις εντολές ipconfig και ping

Network Address Translation (NAT)

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

Το διαδίκτυο είναι ένα δίκτυο που αποτελείτε από πολλά μικρότερα δίκτυα υπολογιστών.

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

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

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

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

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

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

Δίκτυα Επικοινωνιών Δίκτυα Υπολογιστών και Στρώμα Εφαρμογής Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας

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

Διαχείριση Δικτύων Εργαστήριο (Διαφάνειες)

To λεξικό του Internet

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

Εργαστηριακή Άσκηση 10 Πλοήγηση στον παγκόσμιο ιστό

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

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

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

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

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

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

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

Δίκτυα Η/Υ στην Επιχείρηση

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

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

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

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

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

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

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

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Στρώμα εφαρμογής. Δίκτυα Υπολογιστών

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

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

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP

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

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

ιαχείριση Πληροφοριών στο ιαδίκτυο

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

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

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

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

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

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

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

Στρατηγική ανάπτυξη δικτυακού κόμβου

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

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

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

μ μ «μ»

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

Α5.1 Εισαγωγή στα Δίκτυα. Α Λυκείου

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

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

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

Απομακρυσμένη Πρόσβαση και Εντολές Ελέγχου και Υποστήριξης

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

ΠΑΓΚΑΛΟΣ ΙΩΑΝΝΗΣ ΣΙΣΜΑΝΗΣ ΝΙΚΟΣ. File Transfer Protocol

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Τεχνολογίες και Εφαρμογές Διαδικτύου

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δίκτυα Υπολογιστών

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 NUTWBCAM

FTP - (File Transfer Protocol ) Πρωτόκολλο Μεταφοράς Αρχείων

Ανδρέας Παπαζώης. Τμ. Διοίκησης Επιχειρήσεων

Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP

Διαμόρφωση και έλεγχος του δικτύου

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

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I)

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

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

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

Στόχοι. Υπολογιστικά συστήματα: Στρώματα. Βασικές έννοιες [7]

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

Διαχείριση Δικτύων Εργαστήριο (Διαφάνειες)

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

Δίκτυα και Internet στο επιχειρηµατικό περιβάλον

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

Εγκατάσταση & Παραµετροποίηση Εξυπηρετητή Πιστοποίησης Χρηστών (Radius Server)

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

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

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

Transcript:

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Υπηρεσία WWW / Πρωτόκολλο HTTP / Ρύθμιση Apache Web Server Δρ. Απόστολος Γκάμας Διδάσκων (407/80) gkamas@uop.gr Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 1 1

Εισαγωγή στην ορολογία της υπηρεσίας WWW Μια ιστοσελίδα (web page) ή έγγραφο (document) αποτελείται από αντικείμενα (objects) Είδη αντικειμένων: αρχεία HTML, εικόνες JPEG, αρχεία audio, μικροεφαρμογές (applets) java Κάθε αντικείμενο διευθυνσιοδοτείται με ένα URL (Uniform Resource Locator) Παράδειγμα URL: http://www.uop.gr/departments/index.html Μία ιστοσελίδα αποτελείται από ένα αρχείο HTML βάσης το οποίο περιλαμβάνει αρκετά αντικείμενα που αναφέρονται με το URL τους. Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 2 2

Γενική επισκόπηση του HTTP HTTP: HyperText Transfer Protocol (Πρωτόκολλο Μεταφοράς Υπερκειμένου) Πρωτόκολλο επιπέδου εφαρμογής του Web Μοντέλο client/server Client: Web browser ζητεί, λαμβάνει, απεικονίζει αντικείμενα Server: Web server στεγάζει αντικείμενα, στέλνει αντικείμενα αποκρινόμενος σε αιτήσεις HTTP 1.0: RFC 1945 HTTP 1.1: RFC 2616 Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 3 3

Γενική επισκόπηση του HTTP Χρησιμοποιεί TCP: O client ξεκινά μία σύνδεση TCP με τον server, θύρα 80 Ο server αποδέχεται τη σύνδεση TCP από τον client Ανταλλάσσονται μηνύματα HTTP μεταξύ HTTP client (browser) και HTTP server (Web server) Τερματίζει η σύνδεση TCP To HTTP είναι stateless : Ο server δε διατηρεί καμία πληροφορία σχετικά με προηγούμενες αιτήσεις Η επιλογή stateless πρωτοκόλλου στο HTTP έγινε για λόγου μειωμένης πολυπλοκότητας και αυξημένης ταχύτητας. Τα πρωτόκολλα τα οποία διατηρούν καταστάσεις είναι πολύπλοκα γιατί πρέπει να διατηρούν «ιστορικό» για κάθε σύνδεση και σε περίπτωση κατάρρευσής ενός client ή ενός server απαιτείται συγχρονισμός των καταστάσεων. Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 4 4

Συνδέσεις HTTP HTTP με μη παραμένουσες συνδέσεις (non-persistent HTTP) Ένα μόνο αντικείμενο μπορεί να σταλεί μέσω μίας σύνδεσης TCP Η έκδοση HTTP/1.0 χρησιμοποιεί μη παραμένουσες συνδέσεις HTTP HTTP με παραμένουσες συνδέσεις (persistent HTTP) Πολλαπλά αντικείμενα μπορούν να σταλούν μέσω της ίδιας σύνδεσης TCP Η έκδοση HTTP/1.1 χρησιμοποιεί εκ προεπιλογής (default) παραμένουσες συνδέσεις HTTP Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 5 5

Non-persistent HTTP Έστω ότι ένας χρήστης ζητά την ιστοσελίδα με URL www.uop.gr/departments/index.html το οποίο περιέχει κείμενο και αναφορές σε 10 εικόνες jpeg 1. O HTTP client εκκινεί μια σύνδεση HTTP προς τον HTTP server (διεργασία) που τρέχει στον host www.uop.gr στην θύρα 80 2. Ο HTTP server στον host www.uop.gr περιμένει συνδέσεις TCP στη θύρα 80, αποδέχεται την σύνδεση και ενημερώνει τον client 3. Ο HTTP client στέλνει μήνυμα αίτησης (που περιέχει το URL) στο socket της σύνδεσης TCP. Το μήνυμα υποδεικνύει ότι ο client θέλει το αντικείμενο departments/index.html 4. O HTTP server λαμβάνει το μήνυμα αίτησης, δημιουργεί ένα μήνυμα απόκρισης που περιέχει το αιτούμενο αντικείμενο και στέλνει το μήνυμα στο socket του Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 6 6

Non-persistent HTTP 5. Ο HTTP server κλείνει τη σύνδεση TCP 6. O HTTP client λαμβάνει το μήνυμα απόκρισης που περιέχει το αρχείο html. Εξετάζοντας το αρχείο HTML, βρίσκει αναφορές σε 10 αντικείμενα jpeg 7. Τα βήματα 1-4 επαναλαμβάνονται για καθένα από τα 10 αντικείμενα jpeg Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 7 7

Μοντελοποίηση του χρόνου απόκρισης Χρόνος διαδρομής μετά επιστροφής Round Trip Time (RTT): Ο χρόνος που χρειάζεται ένα μικρό πακέτο για να ταξιδέψει από τον client στον server Χρόνος απόκρισης: Ένα RTT για την έναρξη της σύνδεσης TCP Ένα RTT για την αίτηση HTTP και επιστροφή πρώτων bytes της απόκρισης HTTP Χρόνος μετάδοσης αρχείου σύνολο = 2RTT + χρόνος μετάδοσης Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 8 8

Persistent HTTP Μειονεκτήματα non-persistent HTTP: Απαιτεί 2 RTT ανά αντικείμενο Το OS πρέπει να απομείνει σε κάθε σύνδεση TCP πόρους του host (buffers) Οι browsers χρησιμοποιούν συχνά παράλληλες συνδέσεις TCP για τη μεταφορά αντικειμένων Persistent HTTP O server δεν κλείνει τη σύνδεση αφού στείλει απόκριση Επόμενα μηνύματα HTTP μεταξύ του ίδιου ζεύγους client/server στέλνονται μέσω της ίδιας σύνδεσης TCP Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 9 9

Persistent HTTP Persistent χωρίς pipelining O client στέλνει ένα νέο μήνυμα αίτησης αφού ληφθεί το προηγούμενο μήνυμα απόκρισης Ένα RTT ανά αντικείμενο Persistent με pipelining Προεπιλεγμένο στο HTTP/1.1 O client στέλνει μήνυμα αίτησης αμέσως μόλις αντιμετωπίσει ένα αναφερόμενο αντικείμενο Ελάχιστη καθυστέρηση: ένα RTT για όλα τα αντικείμενα Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 10 10

Μήνυμα αίτησης HTTP Δύο είδη μηνυμάτων HTTP: αίτηση (request) και απόκριση (response) Μήνυμα αίτησης HTTP: ASCII (αναγνώσιμη μορφή) Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 11 11

Μήνυμα αίτησης HTTP: Γενική μορφή Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 12 12

Συμπλήρωση φόρμας και μεταφορά περιεχομένου στον server (uploading form input) Μέθοδος POST: Η ιστοσελίδα συχνά περιλαμβάνει φόρμα προς συμπλήρωση Το περιεχόμενο των πεδίων της φόρμας «φορτώνεται» στον server με το entity body Μέθοδος URL: Χρησιμοποιεί μέθοδο GET Το περιεχόμενο των πεδίων της φόρμας προσαρτάται στο πεδίο URL της request line Παράδειγμα: www.uop.gr/peoplesearch?person=gkamas Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 13 13

Είδη μεθόδων HTTP/1.0 GET POST HEAD: ζήτα από τον server να μην περιλάβει το ζητούμενο αντικείμενο στην απόκριση HTTP/1.1 GET, POST, HEAD PUT: φορτώνει αρχείο που περιέχεται στο entity body στο path που καθορίζεται στο πεδίο URL DELETE: διαγράφει το αρχείο που καθορίζεται στο πεδίο URL Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 14 14

Μήνυμα απόκρισης HTTP Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 15 15

Κώδικες κατάστασης απόκρισης HTTP Στην πρώτη γραμμή (status line) του μηνύματος απόκρισης από τον server στον client Μερικά παραδείγματα κωδικών: 200 ΟΚ: επιτυχής αίτηση, το αντικείμενο που έχει ζητηθεί έπεται στο ίδιο μήνυμα 301 Moved Permanently: το αντικείμενο που έχει ζητηθεί μεταφέρθηκε, νέο URL καθορίζεται παρακάτω στο ίδιο μήνυμα (επικεφαλίδα Location:) 400 Bad Request: το μήνυμα αίτησης δεν ήταν κατανοητό από server 404 Not Found: Το ζητούμενο έγγραφο δε βρέθηκε σε αυτό τον server 505 HTTP Version Not Supported Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 16 16

Εξουσιοδότηση (authorization) Εξουσιοδότηση: ελέγχει πρόσβαση στο περιεχόμενο του server Χρησιμοποιεί γραμμές επικεφαλίδας & κώδικες κατάστασης Διαπιστευτήρια εξουσιοδότησης: συνήθως όνομα, password Stateless: ο client πρέπει να παρουσιάζει εξουσιοδότηση σε κάθε μήνυμα αίτησης Authorization: γραμμή επικεφαλίδας σε κάθε μήνυμα αίτησης Εάν λείπει η γραμμή επικεφαλίδας Authorization: O server αρνείται πρόσβαση, στέλνει γραμμή επικεφαλίδας WWW-authenticate: στο μήνυμα response Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 17 17

Cookies: διατήρηση «κατάστασης (state)» Πολλά μεγάλα Web sites χρησιμοποιούν cookies Τέσσερα στοιχεία: Γραμμή επικεφαλίδας Set-cookie: στο μήνυμα απόκρισης HTTP Γραμμή επικεφαλίδας Cookie: στο μήνυμα αίτησης HTTP Διατηρείται αρχείο με cookies στον host του χρήστη το οποίο διαχειρίζεται ο browser Διατηρείται βάση δεδομένων στο Web Site Παράδειγμα: Ένας χρήστης χρησιμοποιεί πάντα το ίδιο PC για να συνδεθεί στο Διαδίκτυο Επισκέπτεται ένα συγκεκριμένο e-commerce site για πρώτη φορά Όταν η αρχική αίτηση HTTP φθάσει στο site, το site δημιουργεί ένα μοναδικό ID και επίσης μια καταχώρηση στη βάση δεδομένων για το ID αυτό Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 18 18

Cookies: διατήρηση «κατάστασης (state)» Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 19 19

Cookies συνέχεια Τα cookies μπορούν να χρησιμοποιηθούν για: Εξουσιοδότηση Shopping carts Συστάσεις Cookies και απόρρητο: Τα cookies επιτρέπουν στα sites να συλλέγουν πληροφορίες για τους χρήστες Ενδέχεται ο χρήστης να παρέχει όνομα και e-mail στα sites. Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 20 20

Web caches (proxy server) Στόχος: να ικανοποιηθεί το request του χρήστη χωρίς να χρησιμοποιηθεί ο αρχικός server Ο χρήστης ρυθμίζει τον browser ώστε να έχει Web πρόσβαση μέσω cache Ο browser στέλνει όλα τα HTTP requests στην cache Εάν το αντικείμενο υπάρχει cache: Η cache επιστρέφει το αντικείμενο Διαφορετικά η cache ζητά το αντικείμενο από τον αρχικό server, και το επιστρέφει στον client client client Proxy server origin server origin server Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 21 21

Περισσότερα για το Web caching Η Cache λειτουργεί τόσο ως client όσο και ως server Συνήθως η cache εγκαθίστανται από ISP (πανεπιστήμια, εταιρία, τοπικοί ISP) Γιατί χρησιμοποιούμε Web cache? Μειώνεται ο χρόνος απόκρισης στα client request. Μειώνεται η κίνηση στο access link.του οργανισμού Η χρήση cache επιτρέπει την αποτελεσματικότερη διανομή περιεχομένου στο Διαδίκτυο Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 22 22

Παράδειγμα Caching 23 Υποθέσεις Μέσω μέγεθος αντικειμένου = 100,000 bits Μέσος ρυθμός request από browsers οργανισμού στους αρχικούς servers = 15 req/sec Καθυστέρηση από τον δρομολογητή του οργανισμού στους αρχικούς server και αντίστροφα = 2 sec Συμπεράσματα Χρήση LAN = 15% Χρήση access link = 100% Συνολική καθυστέρηση: total delay = Internet delay + access delay + LAN delay = 2 sec + milliseconds + milliseconds institutional network public Internet 1.5 Mbps access link 10 Mbps LAN origin servers institutional cache Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 23

Παράδειγμα Caching 24 Πιθανή λύση Αύξηση bandwidth στο access link στα 10 Mbps Συμπεράσματα Χρήση LAN = 15% Χρήση access link = 15% Συνολική καθυστέρηση Total delay = Internet delay + access delay + LAN delay = 2 sec + msecs + msecs Αναβάθμιση η οποία κοστίζει institutional network public Internet 1.5 Mbps access link 10 Mbps LAN origin servers institutional cache Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 24

Παράδειγμα Caching 25 Εγκατάσταση cache Υποθέτουμε hit rate is.4 Συμπεράσματα 40% των requests θα ικανοποιούνται αμέσως 60% των requests θα ικανοποιούνται μέσα από τους αρχικούς server Η χρήση του access link μειώθηκε στο 60%, με αποτέλεσμα μικρότερες καθυστερήσεις (say 10 msec) institutional Συνολική μέση καθυστέρηση: total avg network delay = Internet delay + access delay + LAN delay =.6*(2.01) secs + milliseconds < 1.4 secs public Internet 1.5 Mbps access link 10 Mbps LAN origin servers institutional cache Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 25

Conditional GET: caching στην πλευρά του client Στόχος: να μη σταλεί το αντικείμενο εάν ο client έχει ενημερωμένη έκδοση στην cache Client: καθορίζει ημερομηνία αντιγράφου στην cache στην αίτηση HTTP με τη γραμμή επικεφαλίδας If-modified-since: <ημερομηνία> Server: απόκριση δεν περιέχει αντικείμενο εάν το αντίγραφο στην cache είναι ενημερωμένο: HTTP/1.0 304 Not Modified Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 26 26

Τι είναι ένας Web server Ένα πρόγραμμα (daemon, httpd) το οποίο: Ανταποκρίνεται σε TCP connection και παρέχει υπηρεσίες σε ένα client Εκτελείτε ανεξάρτητα Οι Web servers: Δεν ελέγχουν τον HTML κώδικα Δεν ελέγχουν τα links Web site = host + Web server + information (file system) Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 27 27

Web server Λογισμικό 28 Συνήθως διατίθεται ελεύθερα Διατίθεται για τις περισσότερες πλατφόρμες: UNIX, Ms Windows, Macintosh, VMS, VM, Λίστα από διαθέσιμους Web Servers: http://www.yahoo.com/computers_and_internet/software/inte rnet/world_wide_web/servers/ Survey από Web Server http://www.netcraft.com/survey/ Δημοφιλής Web Server: CERN, NCSA (πρώτος web server) Apache, MS IIS, Netscape servers,... Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 28

Apache Βρίσκεται υπό συνεχόμενη ανάπτυξη Διατίθεται ελεύθερα: Σε πηγαίο κώδικα Σε δυαδικό για πολλές πλατφόρμες Υποστηρίζει HTPP 1.1. από την έκδοση 1.2. Αποτελείται από πολλά modules τα οποία επιλέγουμε κατά το installation/complie Χρήσιμες διευθύνσεις Apache home: http://www.apache.org/ http://www.apacheweek.com/ support via Usenet group(s) Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 29 29

Που τοποθετούμε τους Web Servers? Προσεκτική επιλογή host Συνήθως δίνεται ένα DNS alias στο επιλεγμένο host (www. mydomain.mycountry) ServerRoot, DocumentRoot και Log files directories θα πρέπει να τοποθετούνται προσεκτικά με βάση τους κανόνες του daemon και τις απαιτήσεις σε χωρητικότητα δίσκου Θα υπάρχουν User Home Pages? Καθορισμός CGI rules! Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 30 30

Δομή directory στον Apache Μπορεί να καθοριστεί/αλλαχθεί κατά την εγκατάσταση Μερικά σημαντικά directories: cgi-bin/ - CGI scripts directory conf/ - configuration αρχεία για τον httpd server htdocs/ - Ο κύριος κατάλλογος για τα αντικείμενα logs/ - Ο κατάλογος με τα log files Άλλοι κατάλλογοι (bin/, man/ ) Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 31 31

Configuration αρχεία του Apache Βρίσκονται στο conf/ directory: access.conf - access configuration httpd.conf - server configuration mime.types - MIME type srm.conf - resource configuration *.*-dist - distribution templates Από την έκδοση v.1.3.6. προτείνεται η χρήση μόνο του κυρίως configuration file httpd.conf Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 32 32

Configuration εντολές (directives) στον Apache Γενικοί κανόνες: Case insensitive (δεν ισχύει για ονόματα αρχείων και καταλλόγων σε linux/unix) Οι γραμμές σχολίων ξεκινάν με # Μία directive ανά γραμμή Κάθε configuration αρχείο αποτελείται από: directive data [data2... datan] Επιπλέον κενός χώρος ο οποίο αγνοείται Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 33 33

Configuration αρχείο: httpd.conf ServerType standalone Port 80 User nobody Group nogroup ServerAdmin your_e-mail_address ServerRoot /home/httpd/ ErrorLog /home/httpd/logs/error_log TransferLog /home/httpd/logs/access_log PidFile /home/httpd/logs/httpd.pid Επιπλέον directives: Keep Alive, Spare Servers, Proxy, Cache, Virtual Servers,... Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 34 34

Configuration αρχείο: httpd.conf (srm.conf) DocumentRoot /home/httpd/htdocs/ UserDir public_html DirectoryIndex index.html AccessFileName.htaccess DefaultType text/plain ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/ Επιπλέον directives: Icons, Language, Handlers,... Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 35 35

Configuration αρχείο: httpd.conf (access.conf) Ορίζει: Τι είδους υπηρεσίες επιτρέπονται Κάτω από ποίες συνθήκες <Directory dir_name> directives </Directory> <DirectoryMatch regex> directives </DirectoryMatch> < Files file1 file2 > directives </Files> <FilesMatch regex> directives </FilesMatch> Πρέπει να δοθεί ιδιαίτερη προσοχή γιατί μπορεί να υπάρχουν προβλήματα: Λειτουργικά Ασφάλειας Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 36 36

Configuration αρχείο: mime.types Παρέχει τα MIME types τα οποία γνωρίζει ο server: format: type/subtype file_extension example: text/html html htm image/gif gif Αρχεία με άλλη επέκταση θα δοθούν με το DefaultType Προσθέτουμε εγγραφές ανάλογα με τις ανάγκες μας Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 37 37

Έναρξη και τερματισμός του Apache Απλή εκτέλεση του προγράμματος (apachectl start) Δυνατότητα έναρξης στο startup Επιλογές του apachectl : START, STOP, CONFIGTEST Για να σταματήσει ο server kill εντολή (UNIX) (pid βρίσκεται στο αρχείο httpd.pid) apachectl stop Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 38 38

Access control Σε δύο επίπεδα: Ανά-server (Global Access Configuration file) - χρησιμοποιώντας directives στο httpd.conf (access.conf) Ανά-directory (Per-directory Access Configuration file) - χρησιμοποιώντας.htaccess αρχεία (μπορεί να αλλάξει το όνομα αυτό με την AccessFileName directive στο httpd.conf (srm.conf) Δύο τρόποι: με user/password με host/domain Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 39 39

Πιστοποίηση με User/password 40 Πρέπει να δημιουργηθεί ένα αρχείο με το όνομα.htaccess στον κατάλογο τον οποίο θέλουμε να προστατεύσουμε AuthUserFile /home/httpd/admin/.htpasswd AuthGroupFile /dev/null AuthName ByPassword AuthType Basic <Limit GET> require user username </Limit> Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 40

User/password authentication Χρησιμοποιώντας την εντολή htpasswd μπορεί να δημιουργηθεί το αρχείο με τα password: htpasswd -c /home/httpd/bin/.htpasswd username Δώστε το password το οποίο θέλετε Μπορεί να προστεθεί password στο.htpasswd αρχείο με προγραμματισμό στην πλευρά του εξυπηρετητή Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 41 41

User/password authentication Ο server ζητά από τον browser για user/password για να επιτρέψει πρόσβαση Το password μεταφέρεται πάνω από το δίκτυα μη κρυπτογραφημένο Η μέθοδος αυτή δεν παρέχει υψηλή ασφάλεια όσο αφορά την προστασία του password Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 42 42

Host/domain authentication 43 Χρησιμοποιούμε πάλι.htaccess αρχείο με διαφορετική σύνταξη <Limit GET> order deny,allow deny from all allow from hostname/domain </Limit> Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 43

Έλεγχος πρόσβασης Υπάρχει δυνατότητα συνδυασμού των μεθόδων πιστοποίησης (και με user/password και με host) Για αυξημένη ασφάλεια θα πρέπει να γίνει χρήση του SSL (Secure Socket Layer) module στο Apache Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 44 44

Common Gateway Interface (CGI) 45 Οι WWW server έχουν την δυνατότητα να επικοινωνούν με άλλα προγράμματα (CGI scripts) Τα CGI μπορούν να γραφούν σε οποιαδήποτε γλώσσα προγραμματισμού (shell script, PERL, C, ) Χρησιμοποιούνται για προγραμματισμό στην πλευρά του εξυπηρετητή Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 45

CGI Ο server πρέπει να ρυθμιστεί ώστε να επιτρέπει την εκτέλεση των CGI: ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/ Όλα τα αρχεία στο /cgi-bin/ θεωρούνται εκτελέσιμα ανεξάρτητα από το ονομά τους Θα πρέπει να λαμβάνονται μέτρα ασφαλείας (πχ έλεγχος των scripts των χρηστών) Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 46 46

Virtual servers Ένας server μπορεί να «ακούει» σε πολλά hosts names οπότε έχουμε virtual servers (ίδια port, διαφορετικά hostnames) Αυτό ορίζεται στο server configuration (httpd.conf) <VirtualHost hostname> </VirtualHost> Κάθε virtual server μπορεί να έχει τελείως διαφορετικό περιεχόμενο, configuration, log και error files Εναλλακτικά μπορούμε να τρέξουμε ένα ξεχωριστό server σε διαφορετικό port Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 47 47

Καταγραφή logs του Apache Χρησιμοποιούνται από content providers: usability testing Εντοπισμός προβλημάτων απόδοσης Tuning του server software / μέτρηση απόδοσης (benchmarking) Χρησιμοποιούνται από network providers Αξιολόγηση proxies Εντοπισμός προβλημάτων απόδοσης Χρησιμοποιούνται από protocol developers Μέτρηση απόδοσης πρωτοκόλλων (DNS, TCP, HTTP) Αξιολόγηση αλλαγών σε μηχανισμους Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 48 48

Server logs 49 Ο servers καταγράφει πληροφορίες για client host, ημερομηνία, client request, status, Αριθμός από bytes τα οποία στάλθηκαν... Τα log αρχεία έχουν καθορισμένη δομή Είναι δυνατόν να δημιουργηθούν αναφορές από τα log αρχεία Υπάρχει μεγάλος αριθμός από log analyzers (wwwstat, analog, ) Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 49

Μερικά αποτελέσματα Από διάφορες μελέτες προκύπτει ότι: Ο μέσος όρος του αντικειμένου είναι μικρός (e.g. 8-10 KB) 10% των αντικειμένων καταναλώνουν το 90% της κίνησης Κατά μέσω όρο 3-5 αντικείμενα ανά Web σελίδα (μαζί με το HTML αρχείο) Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 50 50