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

Σχετικά έγγραφα
Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP

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

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

Δίκτυα Υπολογιστών Ενότητα 9: Dynamic Host Configuration Protocol- DHCP

Δίκτυα Υπολογιστών Ενότητα 1: Αναλυτής Πρωτοκόλλων Wireshark

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

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

Δίκτυα Ηλεκτρονικών Υπολογιστών

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

Δίκτυα Υπολογιστών Ενότητα 6: Secure Sockets Layer - SSL

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

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

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

Ανάλυση και έλεγχος δικτύου με χρήση του εργαλείου Wireshark

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

ΗΜΥ Εργαστηριακή Άσκηση 2

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

Δίκτυα Υπολογιστών Ενότητα 5: User Datagram Protocol - UDP

(C) 2010 Pearson Education, Inc. All rights reserved.

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

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

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

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

Εργαστήριο «Δίκτυα Υπολογιστών Ι»

PortSip Softphone. Ελληνικά Ι English 1/20

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

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

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

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

Εργαστήριο Ethereal: IP

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

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : / id ot.com /

SOAP API. Table of Contents

Network Address Translation (NAT)

Ειδικά Θέματα Προγραμματισμού

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 9: MPLS

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

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

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

Δίκτυα Υπολογιστών Ενότητα 4: Transmission Control Protocol - TCP

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

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

Πρόσκληση 10: Προηγμένες Τηλεματικές Υπηρεσίες Τ.Ε.Ι. Ηπείρου Δίκτυο Τ.Ε.Ι. Ηπείρου ΙΙ

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

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

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

Εργαστήριο Ethereal: ICMP

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

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

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

How to register an account with the Hellenic Community of Sheffield.

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

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

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Π.Σ. ΦΟΙΤΗΤΟΛΟΓΙΟΥ- ΓΙΑ ΤΟ ΔΙΔΑΣΚΟΝΤΑ (ClassWeb)

TEC510 Ανάπτυξη Δικτυακών Τόπων (Ε εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Γιώργος Μηλιώτης

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

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

Δίκτυα Υπολογιστών Ενότητα 8: Internet Protocol - IP

Από τον κατάλογο Web επιλέγουμε το Page, οπότε στο κυρίως μέρος της οθόνης εμφανίζονται οι σελίδες τις οποίες έχουμε δικαίωμα να ενημερώσουμε.

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

ECE Operating Systems and Networking Laboratory

Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP

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

Εγχειρίδιο Χρήστη ECAS

ΚΕΦΑΛΑΙΟ Web Services

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ (ΤΕΙ) ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ. Προσομοιώσεις δικτύων με τον Wireshark ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Siemens CL-110 & CL-110i - Συνδεσμολογία μέσω θύρας ETHERNET

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων

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

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 0.1.

Εργαστήριο Ethereal: TCP

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

Αρχιτεκτονική Υπολογιστών

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

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

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ OPEN ECLASS

Διαδικτυακές Υπηρεσίες

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

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

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

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE

Οδηγίες. Εγκατάσταση Προσωπικού Πιστοποιητικού

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

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

Εργαστηριακή Άσκηση 5 Πρωτόκολλο IP

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 1 17/01/2012

Εθνική Υποδομή ΓΕωχωρικών Πληροφοριών

wget --post-file meme.jpg :9646

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

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

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

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

Φύλλο Κατανόησης 1.7

Transcript:

Δίκτυα Υπολογιστών Ενότητα 2: HTTP HyperText Transfer Protocol Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα του ΤΕΙ Δυτικής Μακεδονίας και της Ανώτατης Εκκλησιαστικής Ακαδημίας Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

HTTP - HyperText Transfer Protocol

Σκοποί ενότητας Θα ερευνηθούν οι διαφορετικές πλευρές του πρωτόκολλου HTTP: H βασική αλληλεπίδραση GET/response. Oι μορφές των μηνυμάτων του πρωτοκόλλου. H ανάκτηση μεγάλων HTML αρχείων. H ανάκτηση HTML αρχείων με ενσωματωμένα αντικείμενα. H ασφάλεια και πιστοποίηση στο HTTP. 5

Περιεχόμενα ενότητας (1/8) Εισαγωγή. Αίτηση - Απόκριση του πρωτοκόλλου HTTP. Μόνιμες και µη μόνιμες συνδέσεις. Μορφή των HTTP μηνυμάτων. HTTP request - Μήνυμα αίτησης. Ονόματα επικεφαλίδων μηνυμάτων αιτήσεων HTTP. 6

Περιεχόμενα ενότητας (2/8) Παράδειγμα μηνύματος αίτησης HTTP. HTTP response - Μήνυμα απόκρισης. Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP. Παράδειγμα HTTP μηνύματος απόκρισης. Η βασική αλληλεπίδραση HTTP μηνυμάτων Αίτησης/Απόκρισης. 7

Περιεχόμενα ενότητας (3/8) Η καταγραφή του μηνύματος GET - Frame 261. Η καταγραφή του μηνύματος GET. Η καταγραφή για το HTTP μήνυμα απόκρισης. Ερωτήσεις. Απαντήσεις. 8

Περιεχόμενα ενότητας (4/8) Αλληλεπίδραση υπό συνθήκη HTTP μηνυμάτων Αίτησης/Απόκρισης. Ερωτήσεις Συνέχεια. Απαντήσεις Συνέχεια. Το πρώτο μήνυμα HTTP αίτησης GET - Frame 151. Το πρώτο HTTP μήνυμα απόκρισης - Frame 153. 9

Περιεχόμενα ενότητας (5/8) Το δεύτερο μήνυμα HTTP αίτησης GET - Frame 316. Απάντηση στο ερώτημα 10. Το δεύτερο HTTP μήνυμα απόκρισης - Frame 318. Απάντηση στο ερώτημα 11. Ανακτώντας μεγάλα έγγραφα. 10

Περιεχόμενα ενότητας (6/8) Συνέχεια ερωτήσεων. Συνέχεια απαντήσεων. Έγγραφα HTML με ενσωματωμένα αντικείμενα. Ανάκτηση εγγράφων με ενσωματωμένα αντικείμενα. Ερωτήσεις 16 και 17. 11

Περιεχόμενα ενότητας (7/8) Απάντηση στο ερώτημα 16. Απάντηση στο ερώτημα 17. Επικύρωση HTTP. Το παράθυρο του Wireshark στην επικύρωση HTTP. Ερωτήσεις 18 και 19. Απάντηση στο ερώτημα 18. 12

Περιεχόμενα ενότητας (8/8) Απάντηση στο ερώτημα 19. Επικύρωση HTTP Συνέχεια. Κρυπτογραφημένη σύνδεση. Το μήνυμα HTTP OK - Frame 175. Παρακολούθηση μηνυμάτων HTTP με το Wireshark. Παρακολούθηση μηνυμάτων HTTP με το Wireshark Ερωτήματα. 13

Εισαγωγή (1/3) Το πρωτόκολλο HTTP (HyperText Transfer Protocol) είναι η κύρια μέθοδος που χρησιμοποιούν τα πρωτόκολλα του Παγκοσμίου Ιστού για να μεταφέρουν δεδομένα ανάμεσα σε έναν διακομιστή (server) και ένα πελάτη (client). 14

Εισαγωγή (2/3) Ειδικότερα, το HTTP υλοποιείται σε 2 προγράμματα: Το πρόγραμμα πελάτη. Το πρόγραμμα εξυπηρετητή. Τα δύο αυτά προγράμματα εκτελούνται σε διαφορετικά τερματικά μηχανήματα και επικοινωνούν μεταξύ τους ανταλλάσσοντας HTTP μηνύματα. 15

Εισαγωγή (3/3) Το HTTP καθορίζει τη δομή αυτών των μηνυμάτων καθώς και τον τρόπο ανταλλαγής τους μεταξύ ενός πελάτη και ενός εξυπηρετητή. 16

Αίτηση - Απόκριση του πρωτοκόλλου HTTP Σχήμα 1. Αίτηση - Απόκριση του πρωτοκόλλου HTTP, εικόνα 1, ανακτήθηκε 19/3/2015. 17

Μόνιμες και µη μόνιμες συνδέσεις (1/4) Το HTTP μπορεί να χρησιμοποιήσει τόσο μόνιμες (persistent) όσο και µη μόνιμες (nonpersistent) συνδέσεις. Στις μόνιμες συνδέσεις μετά από την μεταφορά ενός αντικειμένου μίας ιστοσελίδας η Transmission Control Protocol (TCP) σύνδεση τερματίζεται. Για κάθε άλλο αντικείμενο της ιστοσελίδας πρέπει να εγκατασταθεί µία καινούργια TCP σύνδεση. 18

Μόνιμες και µη μόνιμες συνδέσεις (2/4) Οι σύγχρονοι web browser υποστηρίζουν την παράλληλη μεταφορά (parallel transfer) των διαφόρων αντικειμένων µε αποτέλεσμα τη μείωση του συνολικού χρόνου που χρειάζεται για τη ολόκληρης της εμφάνισης της ιστοσελίδας στον web browser. 19

Μόνιμες και µη μόνιμες συνδέσεις (3/4) Στις μόνιμες συνδέσεις ο εξυπηρετητής TCP δεν τερματίζει τη σύνδεση αμέσως μετά την αποστολή της απόκρισης. Αντίθετα, την τερματίζει αν παραμείνει ανενεργή μετά από συγκεκριμένο χρονικό διάστημα. 20

Μόνιμες και µη μόνιμες συνδέσεις (4/4) Υπάρχουν δύο τύποι μόνιμων συνδέσεων: Με pipelining. Χωρίς pipelining. Στην πρώτη περίπτωση ο πελάτης στέλνει µία καινούργια αίτηση µόνο μετά τη λήψη της προηγούμενης απάντησης. 21

Μορφή των HTTP μηνυμάτων Το HTTP/1.0 χρησιμοποιεί µη μόνιμες συνδέσεις ενώ το HTTP/1.1 χρησιμοποιεί κύρια μόνιμες συνδέσεις µε pipelining. Το HTTP ορίζει δύο τύπους μηνυμάτων: Τις HTTP αιτήσεις (requests) του πελάτη. Τις HTTP αποκρίσεις (responses) του εξυπηρετητή. 22

HTTP request - Μήνυμα αίτησης (1/6) Οι περισσότερες HTTP αιτήσεις αποτελούνται από πέντε (5) γραμμές κειμένου ακολουθούμενες από µία κενή γραμμή. Μπορεί να υπάρξουν HTTP αιτήσεις που να περιέχουν μόνο µία γραμμή κειμένου ή και περισσότερες από 5 γραμμές κειμένου. 23

HTTP request - Μήνυμα αίτησης (2/6) Η πρώτη γραμμή κειμένου ονομάζεται γραμμή αίτησης (request line), ενώ οι επόμενες γραμμές επικεφαλίδας (header lines). 24

HTTP request - Μήνυμα αίτησης (3/6) Σχήμα 2. HTTP request - Μήνυμα αίτησης, (σχήμα 2.2 2), ανακτήθηκε 19/3/2015. 25

HTTP request - Μήνυμα αίτησης (4/6) Η γραμμή αίτησης έχει τρία πεδία. Το πεδίο μεθόδου (method). Οι τιμές του καθώς και η περιγραφή τους απεικονίζονται στο ακόλουθο πίνακα. Πίνακας 1. Γραμμή αίτησης πεδίο μεθόδου, πηγή: διδάσκων (2014). Command Description GET HEAD POST PUT DELETE Request for the resource located at the specified URL Request for the header of the resource located at the specified URL Sends data to the program located at the specified URL Sends data to the specified URL Deletes the resource located at the specified URL 26

HTTP request - Μήνυμα αίτησης (5/6) Η γραμμή αίτησης έχει τρία πεδία (Συνέχεια). Το πεδίο URL. Δεν είναι απαραίτητο. Το πεδίο http έκδοσης (version). Περιγράφεται η έκδοση του HTTP που χρησιμοποιεί ο πελάτης. 27

HTTP request - Μήνυμα αίτησης (6/6) Οι γραμμές επικεφαλίδας είναι μία συλλογή από προαιρετικές γραμμές που δίνουν πρόσθετες πληροφορίες για την αίτηση ή/και τον πελάτη. Κάθε μία από αυτές τις γραμμές αποτελείται από ένα όνομα επικεφαλίδας που περιγράφει τον τύπο, ακολουθούμενο από μία άνω και κάτω τελεία (:) και την τιμή της επικεφαλίδας. 28

Ονόματα επικεφαλίδων μηνυμάτων αιτήσεων HTTP (1/3) Πίνακας 2. Ονόματα επικεφαλίδων μηνυμάτων αιτήσεων HTTP (1), πηγή: ο διδάσκων (2014). Header name Accept Accept-Charset Accept-Encoding Description Type of content accepted by the browser (for example text/html). Character set expected by the browser Data coding accepted by the browser Accept-Language Language expected by the browser (English by default) Authorization Identification of the browser to the server Content-Encoding Type of coding for the body of the request 29

Ονόματα επικεφαλίδων μηνυμάτων αιτήσεων HTTP (2/3) Πίνακας 3. Ονόματα επικεφαλίδων μηνυμάτων αιτήσεων HTTP (2), πηγή: ο διδάσκων (2014).. Header name Description Content-Language Type of language in the body of the request. Content-Length Content-Type Date Forwarded From Length of the body of the request. Type of content of the body of the request (for example text/html). Date data transfer starts. Used by intermediary machines between the browser and server. Allows the client email address to be specified. 30

Ονόματα επικεφαλίδων μηνυμάτων αιτήσεων HTTP (3/3) Πίνακας 4. Ονόματα επικεφαλίδων μηνυμάτων αιτήσεων HTTP (3), πηγή: ο διδάσκων (2014). Header name Description From Link Orig-URL Referer User-Agent Makes it possible to specify that the document must be sent if it has been modified since a certain date. Link between two URLs URL from which the request originated Link URL from which the request has been made String giving information about the client, such as the name and version of the browser and the operating system 31

Παράδειγμα μηνύματος αίτησης HTTP Σχήμα 3. Παράδειγμα μηνύματος αίτησης HTTP, πηγή: ο διδάσκων (2014). 32

HTTP response - Μήνυμα απόκρισης (1/3) Το HTTP μήνυμα απόκρισης αποτελείται από τρία (3) μέρη: Τη γραμμή κατάστασης (status line). Τις γραμμές επικεφαλίδας (header lines). Το τμήµα περιεχομένου (entity body). 33

HTTP response - Μήνυμα απόκρισης (2/3) Σχήμα 4. HTTP response - Μήνυμα απόκρισης, (σχήμα 2.2 3), ανακτήθηκε 20/3/2015. 34

HTTP response - Μήνυμα απόκρισης (3/3) Το τμήμα περιεχομένου περιέχει τα δεδομένα του αιτούμενου αρχείου. Η γραμμή κατάστασης περιέχει τρία πεδία: Το πεδίο HTTP έκδοσης. Το πεδίο κωδικού κατάστασης. Το πεδίο του αντίστοιχου μηνύματος κατάστασης. 35

Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP (1/10) Πίνακας 5. Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP, πηγή: ο διδάσκων (2014). Code Message Description Information These codes are not used in version 1.0 of the 10x message protocol These codes indicate the smooth running of the 20x Success transaction 200 OK The request has been accomplished correctly This follows a POST command and indicates success, the remaining body of the document indicates 201 CREATED the URL where the newly created document must be located. 36

Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP (2/10) Πίνακας 5 (Συνέχεια). Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP, πηγή: ο διδάσκων (2014). Code Message 202 ACCEPTED 203 PARTIAL INFORMATION Description The request has been accepted, the procedure which follows has not been accomplished When this code is received in response to a GET command it indicates that the response is not complete. 37

Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP (3/10) Πίνακας 5 (Συνέχεια). Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP, πηγή: οδ διδάσκων (2014). Code Message 204 NO RESPONSE 205 RESET CONTENT 206 PARTIAL CONTENT Description The server has received the request by there is no information to send back The server tells the browser to delete the content in the fields of a form This is a response to a request consisting of the header range. The server must indicate the header content-range 38

Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP (4/10) Πίνακας 5 (Συνέχεια). Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP, πηγή: ο διδάσκων (2014). Code Message 30x Redirection 301 MOVED 302 FOUND Description These codes indicate that resource is no longer in the location specified The requested data has been transferred to a new address The requested data is at a new URL, but has however maybe been moved since... 39

Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP (5/10) Πίνακας 5 (Συνέχεια). Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP, πηγή: ο διδάσκων (2014). Code Message 303 METHOD 304 NOT MODIFIED Description This means that the client must try a new address, preferably by trying another method to GET If the client has carried out a conditional GET command (by requesting if the document has been modified since the last time) and the document has not been modified it sends back this code. 40

Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP (6/10) Πίνακας 5 (Συνέχεια). Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP, πηγή: ο διδάσκων (2014). Code Message Error due to the 40x client 400 BAD REQUEST 401 UNAUTHORIZED Description These codes indicate that the request is incorrect The syntax of the request is badly formulated or is impossible to satisfy The parameters of the message give specifications of unacceptable forms of authorisation. The client must reformulate its request with the correct authorisation data 41

Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP (7/10) Code Message 402 Πίνακας 5 (Συνέχεια). Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP, πηγή: ο διδάσκων (2014). PAYMENT REQUIRED Description The client must reformulate its request with the correct payment data 403 FORBIDDEN Access to the resource is quite simply denied 404 NOT FOUND Classic! The server has not found anything at the specified address. Left without leaving a forwarding address...:) 42

Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP (8/10) Πίνακας 5 (Συνέχεια). Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP, πηγή: ο διδάσκων (2014). Code Message 50x Error due to the server 500 INTERNAL ERROR Description These codes indicate that there is an internal error in the server The server has encountered an unexpected condition which prevented it from following up the request (just one of those things that happen to servers...) 43

Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP (9/10) Πίνακας 5 (Συνέχεια). Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP, πηγή: ο διδάσκων (2014). Code Message 501 NOT IMPLEMENTED 502 BAD GATEWAY 503 SERVICE UNAVAILABLE Description The server does not support the service requested (it cannot know everything...) The server has received an invalid response from the server which it is trying to access by acting as a gateway or proxy The server cannot respond to you at the present time since it is too busy (all your communication lines are busy, please try again later) 44

Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP (10/10) Πίνακας 5 (Συνέχεια). Κωδικοί κατάστασης και μηνύματα καταστάσεων αποκρίσεων HTTP, πηγή: ο διδάσκων (2014). Code Message 504 GATEWAY TIMEOUT Description The response from the server has taken too long in relation to the time for which the gateway had been prepared to way (the time that was assigned to you has now passed...) 45

Παράδειγμα HTTP μηνύματος απόκρισης Σχήμα 5. Παράδειγμα HTTP μηνύματος απόκρισης, πηγή: ο διδάσκων (2014). 46

Η βασική αλληλεπίδραση HTTP μηνυμάτων Αίτησης/Απόκρισης (1/3) Προκειμένου να καταγραφεί η βασική αλληλεπίδραση μηνυμάτων HTTP Request/ Response φορτώνοντας ένα πολύ απλό αρχείο HyperText Markup Language (HTML), μικρό σε μέγεθος χωρίς ενσωματωμένα αντικείμενα, ακολουθούνται τα παρακάτω βήματα: a. Ξεκινάει ο περιηγητής διαδικτύου (π.χ. Internet Explorer, Mozilla Firefox, κλπ.). 47

Η βασική αλληλεπίδραση HTTP μηνυμάτων Αίτησης/Απόκρισης (2/3) b. Ξεκινάει η καταγραφή πακέτων με το Wireshark. Εισάγεται το http (χωρίς τα εισαγωγικά) στο παράθυρο προδιαγραφών του φίλτρου παρουσίασης ώστε στο παράθυρο καταλόγου πακέτων να εμφανιστούν μόνο τα μηνύματα HTTP. 48

Η βασική αλληλεπίδραση HTTP μηνυμάτων Αίτησης/Απόκρισης (3/3) c. Εισάγετε την παρακάτω διεύθυνση URL στον web browser: http://gaia.cs.umass.edu/wiresharklabs/http-wireshark-file1.html. Θα πρέπει να εμφανιστεί ένα πολύ απλό HTML αρχείο μόνο μίας γραμμής. d. Σταματάει τη καταγραφή πακέτων με το Wireshark. 49

Η καταγραφή του μηνύματος GET - Frame 261 Σχήμα 6. Η καταγραφή του μηνύματος GET - Frame 261, πηγή: ο διδάσκων (2014). 50

Η καταγραφή του μηνύματος GET (1/5) Το παραπάνω παράδειγμα δείχνει ότι καταγράφηκαν δύο HTTP μηνύματα: Το μήνυμα αίτησης από τον web browser στο web server gaia.cs.umass.edu και η απάντηση σε αυτό από τον web server στο web browser. 51

Η καταγραφή του μηνύματος GET (2/5) Το παράθυρο περιεχόμενων του πακέτου φαίνονται οι λεπτομέρειες του επιλεγμένου μηνύματος. Σε αυτή την περίπτωση του μηνύματος HTTP GET. 52

Η καταγραφή του μηνύματος GET (3/5) Αξίζει να σημειωθεί ότι το μήνυμα HTTP μεταφέρεται μέσα σε ένα τμήμα TCP. Το οποίο με τη σειρά του μεταφέρεται σε ένα αυτοδύναμο πακέτο ΙΡ. Ήταν μέσα σε ένα πλαίσιο Ethernet, με το Wireshark να παρουσιάζει πληροφορίες και για τα πακέτα Frame, Ethernet, Internet protocol (IP) και Transmission Control Protocol (TCP). 53

Η καταγραφή του μηνύματος GET (4/5) Επειδή, θέλουμε να ελαχιστοποιήσουμε το ποσό των πληροφοριών που παρουσιάζονται για δεδομένα που δε σχετίζονται με το HTTP. Θα πρέπει τα κουτάκια που φαίνονται στα αριστερά των Frame, Ethernet, IP και TCP να έχουν το σύμβολο (+). Που σημαίνει ότι υπάρχει κρυμμένη πληροφορία που δεν εμφανίζεται. Ενώ αριστερά από το HTTP να υπάρχει το σύμβολο (-). Ώστε να εμφανίζονται όλες οι πληροφορίες σχετικά με το μήνυμα HTTP. 54

Η καταγραφή του μηνύματος GET (5/5) Προτού προχωρήσει η ανάλυση των πληροφοριών των δύο μηνυμάτων θα πρέπει να επιλεγεί και το μήνυμα απόκρισης. Έτσι ώστε να φανούν οι πληροφορίες που υπάρχουν και σε αυτό. Σημείωση. Αγνοήστε οποιαδήποτε μηνύματα HTTP GET και αποκρίσεων για το favicon.ico. 55

Η καταγραφή για το HTTP μήνυμα απόκρισης Σχήμα 7. Η καταγραφή για το HTTP μήνυμα απόκρισης, πηγή: διδάσκων (2014). 56

Ερωτήσεις (1/5) Εξετάζοντας την πληροφορία των μηνυμάτων HTTP GET και HTTP απόκρισης, απαντήστε στις ακόλουθες ερωτήσεις. Εκτυπώσετε πρώτα το μήνυμα GET και το μήνυμα απόκρισης. Σε κάθε απάντησή σας να υποδεικνύετε το σημείο του μηνύματος που περιέχει την πληροφορία που την αιτιολογεί. 57

Ερωτήσεις (2/5) 1. Ποια έκδοση του HTTP τρέχει στον browser σας; Ποια έκδοση του HTTP τρέχει στον server; 2. Ποιες γλώσσες υποδεικνύει ο browser στον server ότι μπορεί να αποδεχθεί; 58

Ερωτήσεις (3/5) 3. Ποια είναι η διεύθυνση IP του υπολογιστή σας; Ποια είναι η διεύθυνση IP του server gaia.cs.umass.edu; 4. Ποιος είναι ο κώδικας κατάστασης (status code) που επιστρέφει ο server στον browser σας; 59

Ερωτήσεις (4/5) 5. Πότε τροποποιήθηκε για τελευταία φορά στον server το αρχείο HTML το οποίο ανακτήσατε; 6. Πόσα bytes περιεχομένου επιστρέφονται στον browser σας; 60

Ερωτήσεις (5/5) 7. Εξετάζοντας τα ανεπεξέργαστα δεδομένα στο παράθυρο περιεχομένων πακέτου, διαπιστώνετε ότι μέσα στα δεδομένα περιλαμβάνονται επικεφαλίδες οι οποίες δεν εμφανίζονται στο παράθυρο καταλόγου πακέτων; Εάν υπάρχουν τέτοιες επικεφαλίδες, κατονομάστε μία. 61

Απαντήσεις (1/8) 1. Τόσο ο web browser (Frame 261, στήλη Info) όσο και ο HTTP server (Frame 264, στήλη Info) τρέχουν την ίδια έκδοση HTTP/1.1. 62

Απαντήσεις (2/8) 2. Στο μήνυμα HTTP GET (Frame 261) η γλώσσα που μπορεί να δεχθεί ο web browser, από τον HTTP server, η οποία είναι τα ελληνικά (πεδίο Accept-Language: el- GR). 63

Απαντήσεις (3/8) 3. Στην εικόνα διαφάνειας όπου παρατηρείται το Frame 261, στην επισημασμένη με κόκκινο χρώμα γραμμή του πρωτοκόλλου Internet Protocol version 4 διακρίνονται: Η διεύθυνση ΙΡ 192.168.2.2 του υπολογιστή από τον οποίο έγινε το πείραμα. Η διεύθυνση ΙΡ του HTTP server gaia.cs.umass.edu η οποία είναι η 128.119.245.12. 64

Απαντήσεις (4/8) 4. Στο Frame 264, διακρίνεται ο κωδικός κατάστασης Status Code: 200 και Response Phrase: OK του HTTP server gaia.cs.umass.edu. Ο οποίος αποκρίνεται στον web browser μας, που σημαίνει ότι ο διακομιστής δέχτηκε το αίτημα. 65

Απαντήσεις (5/8) 5. Στο Frame 264, φαίνεται ότι ο χρόνος τροποποίησης (πεδίο Last-Modified) του εγγράφου που ανακτήθηκε είναι ένα λεπτό πριν από την στιγμή που κατέβηκε (πεδίο Date). Ενδεχομένως να σας έχει προκαλέσει έκπληξη η διαπίστωση ότι το έγγραφο (document) που έχετε μόλις ανακτήσει τροποποιήθηκε για τελευταία φορά μέσα στο τελευταίο λεπτό πριν το φορτώσετε. 66

Απαντήσεις (6/8) 5. Συνέχεια απάντησης: Αυτό οφείλεται στο γεγονός ότι, για το συγκεκριμένο αρχείο, ο HTTP server gaia.cs.umass.edu θέτει το χρόνο τελευταίας τροποποίησης του αρχείου στον τρέχοντα χρόνο μία φορά ανά λεπτό. Έτσι, εάν περιμένετε για ένα λεπτό ανάμεσα σε διαδοχικές προσπελάσεις του αρχείου, το αρχείο θα εμφανίζεται ως προσφάτως τροποποιημένο και επομένως ο web browser σας θα φορτώνει ένα "νέο" αντίγραφο του εγγράφου. 67

Απαντήσεις (7/8) 6. Στο Frame 264, διακρίνεται το μέγεθος των περιεχομένων που επιστρέφονται στον web browser (πεδίο Content-Length), το οποίο είναι 128 bytes. 68

Απαντήσεις (8/8) 7. Στο Frame 264, αν επιλεγούν μία-μία οι επικεφαλίδες από το παράθυρο λεπτομερειών επικεφαλίδας πακέτου διαπιστώνεται ότι το σύνολο των δεδομένων στο παράθυρο των περιεχομένων αντιστοιχίζεται με κάποια από αυτές τις επικεφαλίδες. Το μήκος της επικεφαλίδας Line-based text data: text/html ισούται με την τιμή του πεδίου Content- Length (128 bytes). 69

Αλληλεπίδραση υπό συνθήκη HTTP μηνυμάτων Αίτησης/Απόκρισης (1/5) Οι περισσότεροι web browsers προχωρούν σε επαναποθήκευση (caching) αντικειμένων όταν ανακτούν ένα HTML αντικείμενο, και για αυτό εκτελούν μία HTTP αίτηση GET υπό συνθήκη. 70

Αλληλεπίδραση υπό συνθήκη HTTP μηνυμάτων Αίτησης/Απόκρισης (2/5) Στο παρακάτω πείραμα είναι σημαντικό η λανθάνουσα μνήμη του web browser να είναι κενή. Για τον Internet Explorer η διαδρομή είναι: Tools Internet Options Delete File. 71

Αλληλεπίδραση υπό συνθήκη HTTP μηνυμάτων Αίτησης/Απόκρισης (3/5) Τα βήματα που ακολουθούνται είναι τα εξής: Ξεκινάει ο web browser εφόσον η λανθάνουσα μνήμη του είναι κενή. Ξεκινάει η καταγραφή πακέτων με το Wireshark. Εισάγετε την παρακάτω διεύθυνση URL: http://gaia.cs.umass.edu/wireshark-labs/httpwireshark-file2.html. 72

Αλληλεπίδραση υπό συνθήκη HTTP μηνυμάτων Αίτησης/Απόκρισης (4/5) Ο web browser θα πρέπει να εμφανίσει ένα απλό αρχείο HTML πέντε (5) γραμμών: Εισάγεται γρήγορα η ίδια διεύθυνση ή γίνεται ανανέωση της σελίδας. Σταματάει η σύλληψη πακέτων και εισάγεται το http στο παράθυρο που εισάγονται τα φίλτρα, έτσι ώστε να εμφανιστούν μόνο τα HTTP μηνύματα. 73

Αλληλεπίδραση υπό συνθήκη HTTP μηνυμάτων Αίτησης/Απόκρισης (5/5) Ιδιαίτερη σημασία για το συγκεκριμένο πείραμα έχουν τα τέσσερα μηνύματα HTTP αίτησης/απόκρισης (GET/Response), όπου το ένα ζευγάρι αφορά την πρώτη επίσκεψη στην παραπάνω ιστοσελίδα, ενώ το δεύτερο τη δεύτερη επίσκεψη μετά την ανανέωση της ιστοσελίδας. 74

Ερωτήσεις - Συνέχεια (1/3) Απαντήστε στις παρακάτω ερωτήσεις: 8. Ελέγξτε τα περιεχόμενα της πρώτης αίτησης HTTP GET από τον browser σας στον server. Υπάρχει η γραμμή "If-modified-since" στην αίτηση HTTP GET; 9. Ελέγξτε τα περιεχόμενα της απόκρισης του HTTP server. Επέστρεψε ο HTTP server τα περιεχόμενα του αρχείου; Που βασίζεται το συμπέρασμά σας; 75

Ερωτήσεις - Συνέχεια (2/3) 10.Ελέγξτε τώρα τα περιεχόμενα της δεύτερης αίτησης HTTP GET από τον browser σας στον HTTP server. Υπάρχει η γραμμή "If-modified-since" στην αίτηση HTTP GET; Εάν υπάρχει η γραμμή αυτή, τι είδους πληροφορία ακολουθεί την επικεφαλίδα "Ifmodified-since"; 76

Ερωτήσεις - Συνέχεια (3/3) 11.Τι κώδικα και φράση κατάστασης HTTP επιστρέφει ο HTTP server ως απόκριση στην δεύτερη αίτηση HTTP GET; Επέστρεψε ο HTTP server τα περιεχόμενα του αρχείου; 77

Απαντήσεις - Συνέχεια (1/2) 8. Στο πρώτο μήνυμα HTTP αίτησης GET (Frame 151) παρατηρείτε ότι δεν υπάρχει γραμμή IF-MODIFIED-SINCE. Το οποίο είναι αναμενόμενο μιας και πρόκειται για την πρώτη επίσκεψη στην ιστοσελίδα. Αυτή την γραμμή θα περίμενε κάποιος να την δει σε ένα HTTP μήνυμα αίτησης GET προς μία σελίδα που έχει ήδη επισκεφτεί. 78

Απαντήσεις - Συνέχεια (2/2) 9. Στο πρώτο HTTP μήνυμα απόκρισης (Frame 153) το ενδιαφέρον εστιάζεται στα δεδομένα που στάλθηκαν από τον διακομιστή. Εκτείνοντας το πεδίο Line-based text data εμφανίζονται όλα τα περιεχόμενα του αρχείου της ιστοσελίδας. Συνεπώς μπορεί να ειπωθεί ότι ο διακομιστής gaia.cs.umass.edu απέστειλε όλα τα δεδομένα που έπρεπε να στείλει σε αυτό το μήνυμα. 79

Το πρώτο μήνυμα HTTP αίτησης GET - Frame 151 Σχήμα 8. Το πρώτο μήνυμα HTTP αίτησης GET - Frame 151, πηγή: ο διδάσκων (2014). 80

Το πρώτο HTTP μήνυμα απόκρισης - Frame 153 Σχήμα 9. Το πρώτο HTTP μήνυμα απόκρισης - Frame 153, πηγή: ο διδάσκων (2014). 81

Το δεύτερο μήνυμα HTTP αίτησης GET - Frame 316 Σχήμα 10. Το δεύτερο μήνυμα HTTP αίτησης GET - Frame 316, πηγή: ο διδάσκων (2014). 82

Απάντηση στο ερώτημα 10 10.Στο δεύτερο μήνυμα HTTP GET (Frame 316) το ενδιαφέρον εστιάζεται στην γραμμή IF- MODIFIED-SINCE. Η οποία ήταν αναμενόμενο να υπάρχει στο συγκεκριμένο μήνυμα. Και αυτό γιατί σε αυτή την γραμμή υπάρχει η πληροφορία για το χρόνο κατά τον οποίο έγινε η πρώτη HTTP αίτηση και όπως φαίνεται ο χρόνος αυτός είναι Sat, 17 Sep 2011 10:42:01 GMT. 83

Το δεύτερο HTTP μήνυμα απόκρισης - Frame 318 Σχήμα 11. Το δεύτερο HTTP μήνυμα απόκρισης - Frame 318, πηγή: ο διδάσκων (2014). 84

Απάντηση στο ερώτημα 11 11.Στο δεύτερο HTTP μήνυμα απόκρισης (Frame 318) το ενδιαφέρον εστιάζεται στον κωδικό κατάστασης και τη φράση HTTP/1.1 304 Not Modified. Η οποία υποδεικνύει ότι ο διακομιστής gaia.cs.umass.edu δεν επέστρεψε τα περιεχόμενα του αρχείου. Ο web browser τα φόρτωσε από την λανθάνουσα μνήμη. 85

Ανακτώντας μεγάλα έγγραφα (1/7) Τα έγγραφα που ανακτήθηκαν μέχρι τώρα ήταν απλά και σύντομα αρχεία HTML. Το επόμενο στάδιο είναι η ανάκτηση μεγάλων αρχείων, ακολουθώντας τα παρακάτω βήματα: Ξεκινάει ο web browser, εφόσον η λανθάνουσα μνήμη είναι κενή. Ξεκινάει το Wireshark τη σύλληψη πακέτων. 86

Ανακτώντας μεγάλα έγγραφα (2/7) Το επόμενο στάδιο είναι η ανάκτηση μεγάλων αρχείων, ακολουθώντας τα παρακάτω βήματα (Συνέχεια): Εισάγετε την παρακάτω διεύθυνση: http://gaia.cs.umass.edu/wireshark-labs/httpwireshark-file3.html. Ο web browser θα πρέπει να εμφανίσει ένα εκτενές κείμενο με τίτλο «US Bill of Rights». 87

Ανακτώντας μεγάλα έγγραφα (3/7) Το επόμενο στάδιο είναι η ανάκτηση μεγάλων αρχείων, ακολουθώντας τα παρακάτω βήματα (Συνέχεια): Σταματάει η σύλληψη πακέτων με το Wireshark και εισάγεται το http στο παράθυρο που εισάγονται τα φίλτρα, προκειμένου να εμφανιστούν μόνο τα HTTP μηνύματα. 88

Ανακτώντας μεγάλα έγγραφα (4/7) Στο παράθυρο με τη λίστα των πακέτων εμφανίζεται το HTTP μήνυμα αίτησης GET. Το οποίο ακολουθείται από μία σειρά πολλαπλών πακέτων ως απόκριση στο HTTP αίτημα GET. 89

Ανακτώντας μεγάλα έγγραφα (5/7) Ο λόγος που υπάρχουν πολλαπλά πακέτα ως απόκριση προς το αίτημα, είναι ότι το αρχείο HTML είναι σχετικά μεγάλο (4500 bytes) για να χωρέσει σε ένα TCP segment και να μεταφερθεί με ένα πακέτο TCP (που έχει maximum segment size 1460 bytes) και έτσι κατακερματίζεται σε μικρότερα κομμάτια (segments). 90

Ανακτώντας μεγάλα έγγραφα (6/7) Η διαδικασία αυτή γίνεται από το πρωτόκολλο TCP που είναι υπεύθυνο για τη μεταφορά των πακέτων. Ενώ το Wireshark δείχνει ότι έγινε ο κατακερματισμός ενός πακέτου και η μεταφορά αυτού σε κομμάτια TCP με την προσθήκη της φράσης Continuation στα TCP πακέτα. Να τονιστεί ότι η φράση αυτή υπάρχει στα TCP πακέτα και όχι στα HTTP! 91

Ανακτώντας μεγάλα έγγραφα (7/7) Σχήμα 12. Ανακτώντας μεγάλα έγγραφα, πηγή: ο διδάσκων (2014). 92

Συνέχεια ερωτήσεων (1/2) Απαντήστε στις παρακάτω ερωτήσεις: 12. Πόσα μηνύματα αιτήσεων HTTP GET στάλθηκαν από τον browser σας; 13. Πόσα TCP segments που περιείχαν δεδομένα χρειάσθηκαν για τη μεταφορά της μίας απόκρισης HTTP; 14. Τι κώδικας και φράση κατάστασης σχετίζονται με την απόκριση στην αίτηση HTTP GET; 93

Συνέχεια ερωτήσεων (2/2) 15.Υπάρχουν γραμμές κατάστασης HTTP στα μεταδιδόμενα δεδομένα που να σχετίζονται με τον τεμαχισμό του σώματος οντότητας από το TCP; 94

Συνέχεια απαντήσεων (1/5) 12.Στην προηγούμενη εικόνα απεικονίζονται τα μηνύματα HTTP που στάλθηκαν κατά την ανάκτηση του εγγράφου. Όπως φαίνεται, για την ανάκτηση ενός μεγάλου εγγράφου στέλνεται ένα μόνο HTTP μήνυμα αίτησης GET (Frame 58) και λαμβάνεται ένα μόνο HTTP μήνυμα απόκρισης (Frame 65). 95

Συνέχεια απαντήσεων (2/5) 13.Μέσα στο HTTP μήνυμα απόκρισης (Frame 65) γίνεται ορατός ο κατακερματισμός μέσω του πρωτοκόλλου TCP [4 Reassembled TCP segments (4803 bytes)]. 96

Συνέχεια απαντήσεων (3/5) 13.Συνέχεια απάντησης: Δηλαδή, το TCP χωρίζει το αρχείο σε τέσσερα TCP segments (Frame 60 Payload: 1452 bytes, Frame 61 Payload: 1452 bytes, Frame 64 Payload: 1452 bytes, Frame 65 Payload: 447 bytes). Ώστε να μεταφερθεί το αρχείο συνολικού μεγέθους 4803 bytes (που περιλαμβάνει 303 bytes της επικεφαλίδας του πρωτοκόλλου Hypertext Transfer Protocol και 4500 bytes του Line-based text data: text/html). 97

Συνέχεια απαντήσεων (4/5) 14.Στο Frame 65, διακρίνεται ο κωδικός κατάστασης Status Code: 200 και Response Phrase: OK του HTTP server gaia.cs.umass.edu. Ο οποίος αποκρίνεται στον web browser μας, που σημαίνει ότι ο διακομιστής δέχτηκε το αίτημα και μας αποστέλλει το αντίγραφο του αρχείου που θέλουμε να ανακτήσουμε. 98

Συνέχεια απαντήσεων (5/5) 15.Στις γραμμές κατάστασης HTTP στα μεταδιδόμενα δεδομένα δεν υπάρχει κάτι που να υποδεικνύει την όλη διαδικασία του κατακερματισμού μέσω του πρωτοκόλλου TCP. Κι αυτό γιατί η διαδικασία που σχετίζεται με τον τεμαχισμό του σώματος οντότητας από το πρωτόκολλο TCP ολοκληρώνεται σε χαμηλότερο στρώμα (μεταφοράς) από το στρώμα (εφαρμογής) του πρωτοκόλλου HTTP. 99

Έγγραφα HTML με ενσωματωμένα αντικείμενα (1/4) Στη συνέχεια του πειράματος ο web browser κατεβάζει ένα αρχείο που περιέχει ενσωματωμένα αντικείμενα. Στο παράδειγμα που ακολουθεί ένα αρχείο περιλαμβάνει και άλλα αντικείμενα και πιο συγκεκριμένα εικόνες που είναι αποθηκευμένες σε έναν άλλο web server. 100

Έγγραφα HTML με ενσωματωμένα αντικείμενα (2/4) Για να καταγραφούν τα μηνύματα της παραπάνω διαδικασίας πραγματοποιούνται τα παρακάτω βήματα: 1. Ξεκινάει ο web browser, εφόσον η λανθάνουσα μνήμη είναι κενή. 2. Ξεκινάει το Wireshark τη καταγραφή πακέτων. 101

Έγγραφα HTML με ενσωματωμένα αντικείμενα (3/4) 3. Εισάγετε την παρακάτω διεύθυνση URL: http://gaia.cs.umass.edu/wireshark-labs/httpwireshark-file4.html. Ο web browser θα πρέπει να εμφανίσει ένα σύντομο αρχείο HTML με δύο εικόνες. Αυτές οι δύο εικόνες δεν υπάρχουν μέσα στο HTML αρχείο, αλλά ο web browser πηγαίνει στις αντίστοιχες τοποθεσίες διαδικτύου που βρίσκονται οι εικόνες μέσα από τα Uniform Resource Locators (URLs) των εικόνων που βρίσκονται στο HTML αρχείο που κατέβηκε. 102

Έγγραφα HTML με ενσωματωμένα αντικείμενα (4/4) 4. Σταματάει η σύλληψη πακέτων με το Wireshark και εισάγεται το http στο παράθυρο που εισάγονται τα φίλτρα,, προκειμένου να εμφανιστούν μόνο τα HTTP μηνύματα. 103

Ανάκτηση εγγράφων με ενσωματωμένα αντικείμενα Σχήμα 13. Ανάκτηση εγγράφων με ενσωματωμένα αντικείμενα, πηγή: ο διδάσκων (2014). 104

Ερωτήσεις 16 και 17 Απαντήστε στις παρακάτω ερωτήσεις: 16. Πόσα μηνύματα αιτήσεων HTTP GET στάλθηκαν από τον browser σας; Σε ποιες διευθύνσεις IP στάλθηκαν αυτές οι αιτήσεις GET; 17. Μπορείτε να διακρίνετε εάν ο browser σας φόρτωσε τις δύο εικόνες σειριακά ή αν οι εικόνες φορτώθηκαν παράλληλα από τους δύο ιστοτόπους; 105

Απάντηση στο ερώτημα 16 (1/2) 16.Στάλθηκαν συνολικά τρία μηνύματα HTTP αίτησης GET προς τρεις διαφορετικές διευθύνσεις. Τόσο προς τη διεύθυνση IP 128.119.245.12 του gaia.cs.umass.edu (Frame 53) όσο και προς τις δύο διευθύνσεις IP 165.193.123.218 του www.awbc.com (Frame 70) και 134.241.6.82 του manic.cs.umass.edu (Frame 80). Που περιέχουν τα ενσωματωμένα αντικείμενα. 106

Απάντηση στο ερώτημα 16 (2/2) 16.Συνέχεια απάντησης: Δηλαδή τις εικόνες pearson-logo-footer.gif και cover.jpg αντίστοιχα, δείχνοντας τον τρόπο με τον οποίο λειτουργεί το πρωτόκολλο HTTP σε αυτές τις περιπτώσεις. 107

Απάντηση στο ερώτημα 17 17.Για να κατεβάσει ο web browser τις δύο εικόνες χρησιμοποίησε δύο διαφορετικές συνδέσεις TCP που σημαίνει ότι οι δύο εικόνες φορτώθηκαν παράλληλα από τους δύο ιστοτόπους. Φαίνεται από τις διαφορετικές θύρες TCP που χρησιμοποίησε στα μηνύματα HTTP GET για την ανάκτηση τους. 108

Επικύρωση HTTP (1/3) Τέλος, πραγματοποιείται ένα πείραμα με σκοπό την μελέτη συμπεριφοράς του HTTP κατά την διαδικασία της επικύρωσης. Για τις ανάγκες του πειράματος γίνεται μετάβαση προς έναν ιστότοπο προστατευμένο με κωδικό εισόδου και εξετάζονται τα μηνύματα HTTP που ανταλλάσσονται σε αυτή την περίπτωση. 109

Επικύρωση HTTP (2/3) Πραγματοποιούνται τα ακόλουθα βήματα: 1. Ξεκινάει ο web browser, εφόσον η λανθάνουσα μνήμη είναι κενή. 2. Ξεκινάει το Wireshark τη καταγραφή πακέτων. 3. Εισάγεται η παρακάτω διεύθυνση URL: http://gaia.cs.umass.edu/wiresharklabs/protected_pages/http-wireshark-file5.html. 110

Επικύρωση HTTP (3/3) 4. Εισάγετε ως όνομα χρήστη (username): wireshark-students και κωδικό πρόσβασης (password): network. 5. Σταματάει η σύλληψη πακέτων με το Wireshark και εισάγεται το http στο παράθυρο που εισάγονται τα φίλτρα, προκειμένου να εμφανιστούν μόνο τα HTTP μηνύματα. 111

Το παράθυρο του Wireshark στην επικύρωση HTTP Σχήμα 14. Το παράθυρο του Wireshark στην επικύρωση HTTP, πηγή: ο διδάσκων (2014). 112

Ερωτήσεις 18 και 19 Απαντήστε στις παρακάτω ερωτήσεις: 18. Ποια η απόκριση του server (κωδικός κατάστασης και φράση) στο αρχικό μήνυμα HTTP GET από τον browser σας; 19. Όταν ο browser σας στέλνει το μήνυμα HTTP GET για δεύτερη φορά, ποιο νέο πεδίο περιλαμβάνεται στο μήνυμα HTTP GET; 113

Απάντηση στο ερώτημα 18 18.Όπως φαίνεται στην εικόνα με το Frame 614: Η απάντηση του διακομιστή στο μήνυμα HTTP αίτησης GET είναι Status code: 401, Phrase: Authorization Required. Σημαίνει ότι για την επίσκεψη στην συγκεκριμένη ιστοσελίδα απαιτείται εξουσιοδότηση. 114

Απάντηση στο ερώτημα 19 19.Στο δεύτερο μήνυμα HTTP αίτησης GET μήνυμα που στέλνει ο web browser και το οποίο φαίνεται εκτεταμένο στην εικόνα με τοframe 820: Φαίνεται ένα καινούριο πεδίο, το πεδίο Authorization, όπου βρίσκονται το όνομα χρήστη και ο κωδικός που ζητήθηκαν (πεδίο Credentials: wireshark-students : network). 115

Επικύρωση HTTP - Συνέχεια (1/5) Το όνομα χρήστη (wireshark-students) και ο κωδικός πρόσβασης (network) τα οποία εισάγατε είναι κωδικοποιημένα στη σειρά χαρακτήρων: (d2lyzxnoyxjrlxn0dwrlbnrzom5ldhdvcms=) Που ακολουθεί την επικεφαλίδα "Authorization: Basic" στο μήνυμα HTTP GET του client. 116

Επικύρωση HTTP - Συνέχεια (2/5) Αν και φαίνονται κρυπτογραφημένα, στην πραγματικότητα είναι απλά κωδικοποιημένα στη διαμόρφωση γνωστή ως Base64. Για εξακρίβωση: Πηγαίνετε στο http://www.securitystats.com/tools/base64.php. Εισάγετε την κωδικοποιημένη σε Base64 ακολουθία χαρακτήρων d2lyzxnoyxjrlxn0dwrlbnrz. Πατήστε αποκωδικοποίηση (decode). 117

Επικύρωση HTTP - Συνέχεια (3/5) Ορίστε! Έχετε μεταφράσει κώδικα Base64 σε κώδικα ASCII και επομένως θα πρέπει να δείτε και το όνομα χρήστη (username) σας! Για να δείτε τον κωδικό πρόσβασης, εισάγετε το υπόλοιπο της σειράς χαρακτήρων Om5ldHdvcms= και πατήστε decode. 118

Επικύρωση HTTP - Συνέχεια (4/5) Αφού οποιοσδήποτε μπορεί να φορτώσει ένα εργαλείο όπως το Wireshark και να συλλαμβάνει τα πακέτα (όχι μόνο τα δικά του) που διέρχονται από τον προσαρμογέα δικτύου (network adaptor) του. Και αφού οποιοσδήποτε μπορεί να μεταφράσει από Base64 σε ASCII. Είναι προφανές ότι απλοί κωδικοί πρόσβασης σε ιστοτόπους δεν είναι ασφαλείς εκτός εάν ληφθούν πρόσθετα μέτρα. 119

Επικύρωση HTTP - Συνέχεια (5/5) Υπάρχουν τρόποι να κάνουμε ασφαλέστερη την πρόσβαση στον Παγκόσμιο Ιστό. Ωστόσο, είναι προφανές ότι απαιτούνται πιο προηγμένες μέθοδοι από τη βασική εξουσιοδότηση του HTTP. 120

Κρυπτογραφημένη σύνδεση (1/4) Πηγαίνοντας ένα βήμα παραπέρα στην εξερεύνηση των διαφορετικών πλευρών του πρωτόκολλου HTTP, πραγματοποιείται ένα ακόμα πείραμα, που σκοπό έχει να καταγράψει τη συμπεριφορά του πρωτοκόλλου κατά την ανάκτηση μίας ιστοσελίδας, κατά τη διάρκεια μίας κρυπτογραφημένης σύνδεσης. 121

Κρυπτογραφημένη σύνδεση (2/4) Για την πραγματοποίηση του πειράματος γίνεται μετάβαση στην ιστοσελίδα κοινωνικής δικτύωσης www.facebook.com. Και καταγράφονται τα πακέτα που ανταλλάσσονται, με τη βοήθεια του Wireshark. Ακολουθείται η ίδια διαδικασία με τα προηγούμενα πειράματα. 122

Κρυπτογραφημένη σύνδεση (3/4) Η προσοχή σε αυτό το πείραμα εστιάζεται στο HTTP μήνυμα απάντησης, όπου στο πεδίο Content-Encoding υπάρχει η τιμή gzip, η οποία αναφέρεται στον τρόπο κωδικοποίησης. 123

Κρυπτογραφημένη σύνδεση (4/4) Το δεύτερο σημείο που είναι άξιο προσοχής είναι το περιεχόμενο του πεδίου Contentencoded entity body (gzip). Το οποίο έχει ως τιμή 900 bytes 1664 bytes. Που σημαίνει ότι όχι μόνο είναι κωδικοποιημένα τα περιεχόμενα του μηνύματος, αλλά έχουν συμπιεστεί, και ενώ το πραγματικό τους μέγεθος ήταν 1664 bytes, το συμπιεσμένο μέγεθός τους είναι 900 bytes. 124

Το μήνυμα HTTP OK - Frame 175 Σχήμα 15. Το μήνυμα HTTP OK - Frame 175, πηγή: ο διδάσκων (2014). 125

Παρακολούθηση μηνυμάτων HTTP με το Wireshark (1/6) Ανοίξτε πρώτα τον web browser και μετά ξεκινήσετε το Wireshark. Οι διάφορες επιλογές που αφορούν τη λειτουργίας της καταγραφής ρυθμίζονται ακολουθώντας από το μενού επιλογών τη διαδρομή Capture Options ). 126

Παρακολούθηση μηνυμάτων HTTP με το Wireshark (2/6) Στο παράθυρο που εμφανίζεται βεβαιωθείτε ότι στο πεδίο Interface αναφέρεται το όνομα της κάρτας δικτύου του υπολογιστή σας και επιπλέον ότι η επιλογή Enable network name resolution είναι ενεργοποιημένη. 127

Παρακολούθηση μηνυμάτων HTTP με το Wireshark (3/6) Πατώντας το κουμπί Start αρχίζει η καταγραφή. Τα πακέτα που συλλαμβάνονται εμφανίζονται σε πραγματικό χρόνο υπό τη μορφή κυλιόμενης λίστας στο παράθυρο με τη λίστα καταγεγραμμένων πακέτων. 128

Παρακολούθηση μηνυμάτων HTTP με το Wireshark (4/6) Μπορείτε να σταματήσετε την καταγραφή ακολουθώντας από το μενού επιλογών τη διαδρομή Capture Stop ). 129

Παρακολούθηση μηνυμάτων HTTP με το Wireshark (5/6) Επισκεφτείτε με τον web browser την ακόλουθη ιστοσελίδα: http://kastoria.teikoz.gr/inf και κάνετε κλικ στο σύνδεσμο Πρόγραμμα Μαθημάτων που βρίσκεται στην αριστερή πλευρά της ιστοσελίδας. 130

Παρακολούθηση μηνυμάτων HTTP με το Wireshark (6/6) Επιλέξτε το ωρολόγιο πρόγραμμα του τρέχοντος εξαμήνου και αφού το κατεβάσετε (αποθηκεύσετε) στον υπολογιστή σας σταματήστε την καταγραφή. 131

Παρακολούθηση μηνυμάτων HTTP με το Wireshark - Ερωτήματα (1/3) Με βάση τα στοιχεία της καταγραφής απαντήστε στα ακόλουθα ερωτήματα: 1. Ποια είναι η διεύθυνση IP του υπολογιστή σας; 2. Ποια είναι η διεύθυνση MAC του υπολογιστή σας σε δεκαεξαδική μορφή; 3. Ποιος είναι ο κατασκευαστής της κάρτας δικτύου; 4. Πόσα πακέτα συλλέξατε; 132

Παρακολούθηση μηνυμάτων HTTP με το Wireshark - Ερωτήματα (2/3) 5. Ποια έκδοση του πρωτοκόλλου HTTP χρησιμοποιεί ο browser σας; 6. Πότε άλλαξε τελευταία φορά το αρχείο που κατεβάσατε; 7. Ποιος είναι ο κωδικός μηνύματος που επέστρεψε ο εξυπηρετητής; 133

Παρακολούθηση μηνυμάτων HTTP με το Wireshark - Ερωτήματα (3/3) 8. Πόσα bytes περιεχομένου (του αρχείου με το ωρολόγιο πρόγραμμα του Τμήματος) στάλθηκαν στον υπολογιστή σας από τον εξυπηρετητή HTTP; 134

Βιβλιογραφία 1. Δικτύωση Υπολογιστών», James Kurose_Keth W. Ross, Εκδόσεις Γκιούρδας Μ. 2. Andrew Tanenbaum, «Δίκτυα Υπολογιστών», 5η Έκδοση. 3. http://abhishekstech.blogspot.gr, προσπελάστηκε 19/3/2015. 4. http://jpkc.ncwu.edu.cn/jsjwl/net/kurose/app s/http.htm, προσπελάστηκε 19/3/2015. 135

Τέλος Ενότητας