>> Εντάξει.
Έτσι, ας βουτιά σε κάποια τεχνικά χαρακτηριστικά.
Ας ελπίσουμε ότι με κάποια τι του softball ερώτηση.
HTTP, ο στόχος του σήμερα είναι απλά μας δίνει μια ψυχική
μοντέλο για τους τύπους των αιτήσεων
και τα έργα είμαστε πρόκειται για την εφαρμογή.
Την Τετάρτη, θα μεταβεί σε μεγαλύτερο βάθος για τα πράγματα όπως MVC
και ειδικότερα σε Laravel και ORM
με την οποία θα μιλήσετε σε μια βάση δεδομένων.
Αλλά για σήμερα, ας ορίσουμε το στάδιο για αυτές τις συνομιλίες.
HTTP είναι αυτό;
Πρωτόκολλο μεταφοράς Hypertext;
Εντάξει, τι σημαίνει αυτό;
Ναι.
[ΑΚΟΥΓΕΤΑΙ Παρατήρηση]
OK. Κλείσιμο.
Είναι το άλλο.
Δεν HT - αυτό είναι ότι η HTML.
HTTP είναι το ένα που κάνει ό, τι ακριβώς;
>> Είναι ότι η υπηρεσία που όπως μεταδίδει το κείμενο πίσω
και πίσω μεταξύ των servers;
>> Ναι, ακριβώς.
Είναι ο server.
Έτσι, πραγματικά είναι το πρωτόκολλο.
Είναι το σύνολο των συμβάσεων που χρησιμοποιούνται
για τη μετάδοση πληροφοριών πίσω και εμπρός μεταξύ του πελάτη και του διακομιστή.
Και ότι οι πληροφορίες που συνήθως λαμβάνει τη μορφή HTML,
Hypertext Markup Language που είναι οι ανοικτές ετικέτες και στενούς ετικέτες.
Έτσι, αν έχετε κάποια πελάτη εκπροσωπείται εδώ στην αριστερή
και μερικά διακομιστή εκπροσωπούνται εδώ στα δεξιά.
Τα βέλη πηγαινοέρχονται
μεταξύ τους αντιπροσωπεύουν ότι η γλώσσα HTTP.
Και αν εξοικειωμένοι με 50 για παράδειγμα, το περασμένο έτος ή ένα ζευγάρι
χρόνια πριν ίσως Υπενθυμίζω ότι περιγράψαμε
ως πρωτόκολλο, υπό την έννοια ότι όταν για πρώτη φορά συναντήσετε κάποιον,
Θα μπορούσε να επεκταθεί το χέρι μου και πω, γεια και θα μπορούσαμε να πούμε -
>> Γεια σας.
>> Γεια σας. Και τώρα, αυτό το είδος της συναλλαγής μεταξύ του πελάτη
και του διακομιστή είναι πλήρης.
Εντάξει.
Έτσι HTTP είναι μόνο ένα σύνολο των συμβάσεων.
Και μεταξύ των συμβάσεων αυτών είναι να στείλει ορισμένα μηνύματα.
Έτσι, για παράδειγμα, ας ανοίξουμε Chrome.
Και για το μάθημα, μπορείτε να χρησιμοποιήσει σίγουρα πιο οποιοδήποτε πρόγραμμα περιήγησης,
αλλά Chrome τείνει να είναι μάλλον η πιο δημοφιλής αυτές τις μέρες.
Επειδή έχει ένα σύνολο σουίτα εργαλείων χτισμένο in
Ας πάμε μπροστά και Επιθεωρήστε Element.
Επιτρέψτε μου να πάω στην καρτέλα Δίκτυο και επιτρέψτε μου να πάω σε κάτι
όπως http://www.cs164.net και πατήστε Enter
μετά το πρώτο χτύπημα Εγγραφή incase παίρνουμε ανακατεύθυνση.
Και τώρα θα πάμε να δείτε ένα σωρό
γραμμών σε αυτόν τον πίνακα.
Τι κάνει κάθε ένα από αυτές οι γραμμές αντιπροσωπεύουν
όταν επισκέπτεστε μια ιστοσελίδα;
Ναι;
[ΑΚΟΥΓΕΤΑΙ Παρατήρηση]
Ακριβώς. Όλα τα αρχεία Απλά ζήτησε εμφανίζονται
ως ατομική σειρά σε αυτό το μικρό τραπέζι εκεί,
αλλά περιμένετε αρχεία.
Ζήτησα μόνο ένα τέτοιο αρχείο, δεξιά,
προφανώς index.html ή index.php.
Θα μπορούσαν να είναι συνδέσμους, έτσι δεν είναι;
Σίγουρα υπάρχει εικόνα tags μέσα από εκεί,
υπάρχουν ετικέτες σύνδεση για CSS, υπάρχουν ετικέτες script
για JavaScript και σωρό άλλες ετικέτες
που θα μπορούσε πραγματικά να τραβήξει
σε πρόσθετα αρχεία είδος αναδρομικά.
Και αυτό είναι ό, τι βλέπουμε.
Αν μετακινηθείτε προς τα επάνω τώρα η κορυφή αυτών,
παρατηρήσετε ότι βλέπουμε πρώτη αυτό είναι πραγματικά το είδος των περίεργων.
Λέει ιστοσελίδα μας μετακινήθηκε προσωρινά,
ο κωδικός κατάστασης, ώστε να μιλήσει είναι 302.
Υπάρχει ένα άλλο παρόμοιο, 301 το οποίο έχει μετακινηθεί μόνιμα.
Και αν εγκατασταθούν προσωρινά ή μόνιμα τι σημαίνει αυτό;
Τι θα πρέπει να τα μάτια σας να ψάχνει για το σκοπό
να απαντήσει πού θα προχωρήσουμε σε;
Το ρεύμα και το μήκος.
OK. Έτσι, θα μπορούσε ασφαλώς συμπεράνουμε πού καταλήξαμε.
Και προφανώς Κατέληξα στο canvas.harvard.edu / κάτι
το οποίο είναι πολύ πιο δύσκολο να θυμόμαστε.
Αλλά πιο τεχνικά, θέλω να διαγνώσουν ένα πρόβλημα ανακατεύθυνση.
Θέλω να καταλάβετε πού είμαι πηγαίνει από το σημείο Α στο σημείο Β
σε ένα σημείο τελεία, τελεία, dot canvas.harvard.edu
σε αυτό το πιο απόκρυφες διασύνδεση των headers.
Πώς μπορώ να απαντήσω σε μια ερώτηση του η μορφή όπου δεν μπορώ να μεταφέρω;
Τοποθεσία. Εντάξει.
Έτσι, αν μετακινηθείτε προς τα κάτω εδώ με τις κεφαλίδες απόκρισης,
παρατηρήσετε ότι αυτά είναι τα κεφαλίδες και επιτρέψτε μου να το αλλάξετε.
Αυτό είναι το είδος της μια όμορφη έντυπη μορφή από το Chrome.
Ας κάνουμε κλικ προβολή πηγής.
Αυτή είναι η πρώτη κείμενο που ο web server Apache.
Και ξέρω ότι με Ματιές σε αυτή τη γραμμή εδώ.
Και Apache είναι απλώς δωρεάν και το λογισμικό ανοιχτού κώδικα.
Είναι ίσως το πιο δημοφιλές το λογισμικό του web server εκεί έξω.
Αυτό είναι το αποτέλεσμα της χειραψία έρχονται πίσω σε μένα.
Και αν το είδος εξετάσουμε ό, τι ήταν στο εσωτερικό του χεριού
ή το εικονικό κονδύλιο που αντιπροσωπεύει τα πακέτα,
πηγαίνει σε όλη την σύρμα στο εσωτερικό του
του ότι είναι αυτοί αρκετές γραμμές κειμένου.
Και επειδή οι περιηγητές να μιλήσουν HTTP,
είναι προγραμματισμένες εκ των προτέρων από την Google και τη Microsoft
και άλλες εταιρείες να ψάξουν για αυτή τη γραμμή.
Και όταν βλέπουν τη θέση: τι κάνει με το URL
μετά το παχύ έντερο κατά πάσα πιθανότητα;
Πηγαίνει σε αυτό.
Και μπορούμε να δούμε αυτό σε οποιοδήποτε αριθμό τρόπων.
Στην πραγματικότητα, ένα πολύ πρακτικό εργαλείο ιδιαίτερα για Linux
και Mac OS είναι αν ανοίξω ένα παράθυρο τερματικού εδώ
και να κάνω κάμπτεται και να κάνω-I και στη συνέχεια επικολλήστε αυτό το URL εκεί.
Είναι μια καλή συνήθεια να χρησιμοποιούν εισαγωγικά
γιατί αν ποτέ έχουν ερωτηματικά
ή άλλα funky χαρακτήρες, μπορείτε πραγματικά να ταξινομήσετε
της συγχέουν τη γραμμή εντολών.
Αλλά αν σας αναφέρω τη διεύθυνση URL εκεί, τώρα θα δούμε ακριβώς όλα
από τα headers που επέστρεψαν.
Και σε αυτή την περίπτωση, στην πραγματικότητα Έκανα το λάθος.
Έκανα τη διεύθυνση URL καμβά.
Ας κάνουμε http://www.cs164.net.
Enter. Υπάρχουν ακριβώς οι ίδιες κεφαλίδες.
Και αν θέλω να δω επόμενη τι έρχεται πίσω,
Μπορώ να το κάνω ακριβώς αυτό με το χέρι.
Έτσι, μπούκλα είναι ακριβώς το είδος της ταχείας και βρώμικο διαγνωστικό εργαλείο εδώ,
μπούκλα-I και τώρα ότι η διεύθυνση URL και πάλι και αυτά είναι όλα τα κεφαλίδες
ότι τώρα έρχονται πίσω από canvas.harvard.edu.
Ποιες πρόσθετες πληροφορίες είναι αυτοί που μας στέλνουν;
Είναι ένα μικρό αποκοπής.
Επιτρέψτε μου να περάσω αυτό ξανά.
Έτσι, μία από αυτές τις γραμμές είναι ενδιαφέρουσα.
Έτσι, το περιεχόμενο μήκος, αυτό είναι πόσα bytes ήταν μέσα
του εικονικού φακέλου ότι ήρθε πίσω.
Ο τύπος περιεχομένου είναι HTML, το θα μπορούσε να είναι κάτι διαφορετικό
αν είναι ένα PNG ή ένα GIF ή JPEG.
Στην πραγματικότητα, σε γενικές γραμμές, τι είναι αυτό που ονομάζεται συμβολοσειρά;
Υπάρχουν αυτά τα μοναδικά χορδές στον κόσμο
που περιγράφουν μοναδικά διαφορετικούς τύπους δεδομένων.
Αυτή είναι μια λεγόμενη Τύπος MIME, τύπου Μ-Ι-Μ-Ε.
Έτσι, ο κόσμος έχει τυποποιηθεί
αυτό. png νομίζω είναι "image / png".
Ο κόσμος έχει τυποποιηθεί ότι στο αρχείο HTML είναι text / html.
Ο κόσμος έχει τυποποιηθεί ότι ένα mp4, το αρχείο της ταινίας είναι video/mp4.
Έτσι, αυτές είναι οι μοναδικές μάρκες ότι οι browsers χρησιμοποιούν συνήθως
να καθορίσει εάν θα παίξει ως μια ταινία, για να εμφανιστεί
ως εικόνα, να καταστήσει ως HTML ή παρόμοια.
Τι διακομιστής κάνει - Instructure η εταιρεία πίσω από καμβά
προφανώς χρησιμοποιείτε;
Έτσι Apache πάρα πολύ, έτσι ώστε να χρησιμοποιείτε το ίδιο εργαλείο και μπορούμε να δούμε
ότι μέσω αυτής της γραμμής εδώ.
Παρεμπιπτόντως, θα έχουμε πραγματικά κάνει κάτι που είναι έξυπνη
ότι δεν κάνουν όλοι οι δικτυακοί τόποι.
Πολύ συχνά ιστοσελίδες φτύσει,
όχι μόνο ότι είναι τρέχει Apache, αλλά και
ότι τρέχετε Apache version 2.1.3.
Αλλά αυτοί οι τύποι έχουν έξυπνες και άτομα με ειδικές ανάγκες τον αριθμό έκδοσης.
Γιατί είναι τόσο έξυπνος;
Ναι.
>> Ίσως επειδή ορισμένες έκδοση θα μπορούσε να ανακαλυφθεί
και έχουν ιδιαίτερη ευπάθειες
[Δεν ακούγεται] προφανής.
>> Ακριβώς.
Είναι ένα δυναμικό απειλή για την ασφάλεια.
Αν είστε ουσιαστικά εκπέμπει τον κόσμο, hey,
είμαστε εκτελεί αυτήν την έκδοση.
Hey είμαστε εκτελεί αυτήν την έκδοση.
Δεν είναι ότι σκληρά με Google ή μόνο με μπούκλα καν να σπρώξει
γύρω από τυχαίες διευθύνσεις IP
και να βρει ανθρώπους να τρέχουν buggy λογισμικού και στη συνέχεια να τους επιτεθούν
από ό, τι τεκμηριώνεται σημαίνει ότι υπάρχουν.
Τώρα, γιατί είναι ακόμα λέγοντας Apache;
Αναμφισβήτητα, αυτό είναι το είδος της χαριστικά πληροφορίες.
Λοιπόν, Apache καθιστά εύκολο να απενεργοποιήσετε τον αριθμό έκδοσης
αλλά όχι το είδος τους πίσω οι σκηνές μαρκάρισμα με αυτόν τον τρόπο.
Και αυτό είναι το πώς Google και άλλες εταιρείες γνωρίζουν τι web servers
οι άνθρωποι τρέχουν επειδή λένε ακριβώς σε όλο τον κόσμο
κάθε φορά που τους επισκέπτονται.
Έτσι, τα cookies θα επανέλθει πάρα πολύ.
Αλλά ίσως θυμάστε ότι τα cookies είναι το είδος των μεγάλων μοναδικούς αριθμούς
που είναι συνήθως αρέσει ένα γραμματόσημο χέρι στο χρήστη.
Ένα μικρό αρχείο ή κομμάτι της δεδομένα που φυτεύτηκαν στο πρόγραμμα περιήγησης
να θυμόμαστε ποιος είναι ο χρήστης.
Κατάσταση 200 είναι καλό.
X-Canvas-Meta, έτσι τι είναι όλα αυτά;
Λοιπόν, τα πολυλογώ, η κόσμος έχει επίσης τη δυνατότητα στον κόσμο
να καταλήξει σε αυθαίρετες, HTTP κεφαλίδες και αν τους πρόθεμα
με Χ, που μόλις σημαίνει ότι είναι έθιμο.
Και είναι ένας ωραίος τρόπος για ακόμη για διαγνωστικούς σκοπούς
αν είστε ανάπτυξη μια εφαρμογή web-based
και θέλετε να είναι σε θέση
για να δείτε πίσω από τις σκηνές που ξέρετε τι back end σούβλα διακομιστή
από αυτή την απάντηση, ή ό, τι αριθμός έκδοσης που τρέχει
σε αυτόν το διακομιστή.
Ή τι είναι εσωτερικό της Διεύθυνση IP,
κάθε πράγμα που μπορεί να πληγωθεί θέλετε κάποια εσωτερική ματιά
σε κάτι που είναι σε εξέλιξη, μπορείτε να φτύνουν
τις δικές σας αυθαίρετες Κεφαλίδες HTTP με αυτόν τον τρόπο.
Αλλά η ιστορία ξεκίνησε με ανοίγοντας την ιστοσελίδα του μαθήματος.
Και είδαμε όλα αυτά γραμμές στην καρτέλα Δίκτυο.
Η πρώτη ήταν από τα πιο το ενδιαφέρον που μας ανακατεύθυνση
στο επόμενο και στη συνέχεια πήραμε πίσω σε αυτή την απάντηση εδώ.
Λοιπόν, πού είναι canvas.harvard.edu;
Ας ωθήσει λίγο περαιτέρω και το είδος
της ακολουθήστε τα ψίχουλα ψωμιού.
Canvas.harvard.edu είναι προφανώς ανήκει Χάρβαρντ.
Δημιούργησαν αυτό το sub-domain ονομάζεται canvas.harvard.edu.
Πώς θα καταλάβω από πού
στον κόσμο canvas.harvard.edu ζωή;
Ή ίσως πιο συγκεκριμένα τι είναι η διεύθυνση IP του;
Πώς μπορούμε να καταλάβουμε ότι έξω;
Ναι;
[ΑΚΟΥΓΕΤΑΙ Παρατήρηση]
Απολύτως.
Έτσι, αυτό είναι πραγματικά να απαντήσει σε μερικές ερωτήσεις εκεί.
Το πρώτο τέτοιο απλό εργαλείο θα είναι κάτι που ονομάζεται NSLOOKUP
αν αυτό λέγεται άλλα πράγματα.
Nameserver αναζήτησης και Μπορώ να πληκτρολογήσετε κάτι
όπως canvas.harvard.edu.
Enter. Και αυτό πρόκειται να δώσει me back προφανώς ένα σωρό
των απαντήσεων.
Αλλά ας δούμε αν δεν μπορεί νόημα αυτό.
Έτσι, προφανώς,
canvas.harvard.edu είναι ένα κανονικό όνομα
για την αποτρόπαια αυτή ψάχνει το πράγμα,
Χάρβαρντ-vanity.instructure.com.
Έτσι, τι συμβαίνει εδώ;
Ενώ τω μεταξύ, αν συνεχίσετε να διαβάζετε,
Χάρβαρντ-vanity.instructure.com έχει ένα κανονικό όνομα
κάτι ακόμα πιο αινιγματικά,
Χάρβαρντ-170 κάτι -Us-ανατολικά-1.elb.amazon.aws.
Επιπλέον, αυτό το πράγμα επιλύει
σε φαινομενικά τρεις διαφορετικές διευθύνσεις IP.
Λοιπόν, τι στον κόσμο κάνει όλα αυτά σημαίνουν;
Ναι;
[ΑΚΟΥΓΕΤΑΙ Παρατήρηση]
OK. Καλή. Και επιτρέψτε μου να το τσίμπημα ένα πράγμα που είπατε,
δεν είναι πραγματικά μια το περιεχόμενο του δικτύου διανομής.
«Αιτία είναι συνήθως η σημαίνει ότι είναι στατικό περιεχόμενο
και επειδή τα περισσότερα από τα ιστοσελίδα δυναμικά οδηγείται,
Εγώ δεν θα το χαρακτήριζα αυτό ως CDN
αλλά είναι Amazon servers που φιλοξενούνται.
Amazon προσφέρει μια υπηρεσία που ονομάζεται Amazon Elastic Compute Cloud,
EC2 για συντομία.
Και αυτά είναι μόνο web servers συχνά τρέχει Apache
ή άλλα κομμάτια του λογισμικού ότι μπορείτε να νοικιάσετε ουσιαστικά
καταβάλλοντας Amazon λίγα λεπτά ή μερικά δολάρια ανά ώρα
και πραγματικά τρέχετε σας κώδικα στους διακομιστές τους.
Και τα μέσα με τα οποία το κάνετε αυτό είναι να δώσει ένα αινιγματικό
ψάχνει όνομα τομέα όπως αυτό η οποία στα αποτελέσματα στροφή προς ένα
ή περισσότερες διευθύνσεις IP όπως και τα τρία αυτά εδώ.
Και με τη σειρά του, θα να δημιουργήσετε συντομεύσεις
που είναι πολύ πιο φιλική προς τον άνθρωπο
γι 'αυτό τα άλλα εντελώς unmemorable διεύθυνση του Αμαζονίου.
Και στην περίπτωση αυτή η Η εταιρεία αποφάσισε Instructure
να δημιουργηθεί ένα ελαφρώς πιο αξέχαστη διεύθυνση,
Χάρβαρντ-vanity.instructure.com
αλλά αυτό θα ήταν ένα αποτρόπαια είδος του πράγματος για μας
να επισκεφθείτε για την πορεία ιστοσελίδες.
Έτσι Harvard δημιούργησε με τη σειρά άλλο ψευδώνυμο που είναι πιο
απλά canvas.harvard.edu.
Και όλες αυτές οι τεχνικές είναι μόχλευση κάτι που ονομάζεται DNS,
το Domain Name System.
Και εφ 'όσον το σύστημα διαχειριστής έχει πρόσβαση
στο Χάρβαρντ ή του Instructure Διακομιστές DNS,
μπορείτε να δημιουργήσετε αυτά τα ψευδώνυμα.
Και αν εσείς, για τα έργα σας,
αποφασίσετε να αγοράσετε ένα domain όνομα για 5 δολάρια,
10 δολάρια ή οτιδήποτε άλλο.
Και ακόμα και πληρώνουν για ένα web υποδοχής
ή απλά να χρησιμοποιήσετε ένα ελεύθερα διαθέσιμο web υποδοχής και θέλετε
να μην ζουν όντως σε κάτι random.com
αλλά στο δικό σας domain αναφέρουμε ότι αγοράσατε για 5
ή 10 δολάρια αυτές είναι η τα είδη των λεπτομερειών ρύθμισης
ότι θα διερευνήσει προς το τέλος του εξαμήνου.
Αν και όταν έρχεται η ώρα να μεταφέρει κάτι κοινό
έτσι ώστε να μπορεί να ζήσει σε ένα πιο ενδιαφέρουσα URL.
Επιτρέψτε μου να σταματήσουμε για μια στιγμή Γιατί εσείς είστε το είδος
άσκοπα ομαδοποίηση έως εκεί.
Θέλετε να αδέξια ακριβώς το είδος του να έρθει και να καθίσει
στην πλάτη ή στη μέση;
Δεν θα έπρεπε να συντάξει προσοχή σε σας;
Έλα μέσα
Αυτό είναι ίσως περισσότερο άβολα εκεί.
[Παύση]
Εντάξει.
OK. Καλώς ήρθατε.
Εντάξει.
Από πού λοιπόν που τώρα μας αφήνει;
Έτσι, κατά κάποιο τρόπο είμαστε και άλλα θα διασχίσουν τη γέφυρα, εάν
και όταν έρθει η ώρα σε όρους
του DNS πώς θα κάνατε στην πραγματικότητα ρυθμίσετε όλα αυτά.
Μερικοί πώς ή άλλο, αυτό το αίτημα HTTP,
αυτή η αρχική χειραψία φθάνει σε ένα διακομιστή σε ένα
από αυτές τις διευθύνσεις IP.
Σε αυτόν το διακομιστή είναι κάτι ονομάζεται web server.
Δεν αποτελεί έκπληξη.
Αλλά αυτό που πραγματικά είναι τεχνικώς είναι ένα web server;
Μπορείτε είδος λάβει τη φράση για δεδομένος, αλλά τι είναι αυτό;
Τι είναι ένα web server;
Ναι;
[ΑΚΟΥΓΕΤΑΙ Παρατήρηση]
OK. Έτσι, είναι απλά ένας υπολογιστής με τη μνήμη και τις εισροές.
Ξέρετε ότι μπορεί να έμοιαζε
όπως η εικόνα νωρίτερα, ακόμη και αν και αυτό είναι ένα μικρό
ρετρό και περισσότερο από μια desktop ή πύργο του υπολογιστή.
Ναι, είναι απλά ένας υπολογιστής.
Αλλά τεχνικά, ένα web server δεν είναι ένας υπολογιστής ανά πω.
Εμείς, ως το είδος των ανθρώπων έχουν καιρό συγχέονται διακομιστές web
και e-mail servers ως φυσικές συσκευές.
Αλλά ένα web server πραγματικά είναι ένα κομμάτι του λογισμικού.
Είναι ένα κομμάτι του λογισμικού εκτελείται σε ένα φυσικό υπολογιστή.
Και ως εκ τούτου, μπορείτε να έχετε ένα e-mail server και ένα web server
και ένας διακομιστής διάγραμμα και κάθε αριθμό άλλων εξυπηρετητών
ή πιο σωστά υπηρεσίες που εκτελούνται στην κορυφή
από έναν συγκεκριμένο υπολογιστή και όλων αυτών των υπηρεσιών μπορούν να ζήσουν
στην ίδια διεύθυνση IP Ως εκ τούτου.
Έτσι, πώς - αν έχετε έχουν πολλαπλές υπηρεσίες
ή διακομιστές που λειτουργούν με το ίδιο υπολογιστή, πως όταν μηδενικά
και αυτά έρχονται σε σε αυτά μέσω του διαδικτύου,
ο υπολογιστής γνωρίζει αν να ανταποκριθεί ως ένα διακομιστή ηλεκτρονικού ταχυδρομείου
με μια ιστοσελίδα, με ένα chat;
Ναι.
[ΑΚΟΥΓΕΤΑΙ Παρατήρηση]
Καλή. Ακριβώς.
Έτσι, ένα web server ακούει σε αυτό που ονομάζεται λιμάνι.
Και αν έχετε πάρει CS143 Δικτύωση, ίσως γνωρίζετε
ότι οι θύρες αυτές αφορούν με πρωτόκολλα όπως το TCP
το οποίο θα έχετε πιθανότατα τουλάχιστον ακούσει ή UDP.
Και αυτές οι θύρες ή αριθμούς θύρας είναι απλά μοναδικά αναγνωριστικά
που προσδιορίζουν μια υπηρεσία.
Έτσι, 80 είναι το web, 25 είναι το email, 23 είναι Telnet, SSH είναι 22
και υπάρχουν δεκάδες ή εκατοντάδες
από άλλες που αν και υπάρχει Μερικά μόνο πολύ δημοφιλείς.
Και αυτός είναι ένας τρόπος για μια υπολογιστή με μία διεύθυνση IP
για να ταξινομήσετε του multiplex μεταξύ διαφορετικούς τύπους αίτησης
και να ανταποκριθούν αναλόγως.
Λοιπόν, τι σημαίνει αυτό στην πραγματικότητα;
Γι 'αυτό και δεν χρειάζεται ένα πρόγραμμα περιήγησης στο web.
Εμείς δεν χρειάζεται να μπούκλα στην πραγματικότητα μιλάμε για έναν web server.
Εμείς απλά πρέπει να καταλάβετε τι το πρωτόκολλο είναι και πώς λειτουργεί
και αναφέρθηκα πριν από λίγο.
Το Telnet είναι ένα είδος παλιό πρόγραμμα του σχολείου.
Πίσω στην ημέρα μου, χρησιμοποιήσαμε να το χρησιμοποιήσει για να ελέγξετε το ηλεκτρονικό ταχυδρομείο
αλλά ήταν εντελώς ανασφαλής.
Είναι απλά ένα εργαλείο μέσω του οποίου μπορείτε να στείλετε εντολές κειμένου
σε έναν άλλο υπολογιστή.
Και πίσω στην ημέρα,
αυτές οι εντολές κειμένου συχνά περιλαμβάνεται το όνομα χρήστη σας
και τον κωδικό πρόσβασής σας με Δεν το είδος της κρυπτογράφησης.
Αν είστε εξοικειωμένοι με το SSH,
SSH είναι λίγο πολύ Telnet αλλά με κρυπτογράφηση.
Έτσι, αυτό είναι ένα κομμάτι από ένα υπεραπλούστευση.
Αλλά μπορώ να προσποιηθώ ως ανθρώπου με ένα παράθυρο τερματικού
και αυτό το παλιό σχολικό πρόγραμμα Telnet είναι ένα πρόγραμμα περιήγησης στο web.
Μπορώ να πληκτρολογήσετε κάτι όπως telnet www.cs164.net
και, δυστυχώς, αν απλά να πατήσετε το Enter, την προσπάθειά του
αλλά τίποτα δεν φαίνεται να συμβαίνει.
Και αυτό επειδή, από προεπιλογή, ο κόσμος αποφάσισε χρόνια πριν
ότι η προεπιλεγμένη θύρα Telnet είναι 23
όπως έχω έναν σύντομο υπαινιγμό σε στιγμή πριν.
Αλλά δεν θέλω Telnet ανά πω.
Θέλω να χρησιμοποιήσω αυτό το είδος Telnet του προγράμματος κειμένου να προσποιούνται
να είναι ένα web browser στο Chrome και IE και άλλα προγράμματα περιήγησης
από προεπιλογή ήταν δύσκολο κωδικοποιούνται από το Google και η Microsoft
για να μην μιλήσουμε για 23, αλλά σε 80 ή ίσως 443
για SSL βασίζεται ιστοσελίδες.
Και τώρα, παρατηρούμε προσπαθώ και εγώ συνδεθείτε με το web server.
Πάω τώρα, να προχωρήσει και να πει κάτι σαν ένα γεια.
Και προφανώς αυτό έχει μόλις μετακόμισε μόνιμα.
Έχω στείλει κάποια ψεύτικες εντολή
και του να μου στείλει πίσω σε αυτή τη διεύθυνση εδώ.
Οπότε, ας κάνουν πραγματικά αυτό λίγο διαφορετικά.
Ας δούμε πραγματικά λένε, GET/HTTP/1.1.
Λοιπόν, τι κάνω;
Αυτή είναι η εντολή.
Αυτό είναι το είδος μου χειραψία, να το πω έτσι.
Ποια είναι η προς τα εμπρός κάθετο πιθανόν να δηλώνει;
Ο κατάλογος στο σπίτι.
Έτσι, ο κατάλογος home εδώ σημαίνει ακριβώς -
καλά, ας το ονομάσουμε ρίζα της ιστοσελίδας.
Όποια και αν είναι το προεπιλεγμένο αρχείο Είναι, ίσως είναι index.html,
ίσως είναι index.php
και HTTP/1.1 είναι ουσιαστικά η τελευταία έκδοση του HTTP.
Έτσι είμαι που προσποιείται ότι είναι μια browser που είναι αρκετά ρεύμα
έτσι ώστε να ανταποκρίνεται μου, όπως ελπίζω.
Και πάω μπροστά και πατήστε Enter δύο φορές
επειδή ο τρόπος που λειτουργούν τα πράγματα είναι ότι από τη στιγμή βλέπετε μια κενή γραμμή,
κάνει ένα web server στη συνέχεια να απαντήσουν.
Αλλά, δυστυχώς, αυτό είναι ένα κακό αιτήματος.
Το πρόγραμμα περιήγησης απέστειλε αίτημα
ότι αυτός ο διακομιστής Δεν μπορούσα να καταλάβω.
Τώρα, αυτό είναι ένα πολύ πιο δύσκολο να εντοπιστεί.
Αλλά αποδεικνύεται ότι cs164.net χρησιμοποιεί Apache.
Και δεν είναι πολλά που μπορούμε να καταλάβουμε.
Αλλά είναι, επίσης, χρησιμοποιώντας κάτι καλείται εικονική φιλοξενία
στην οποία ίσως να είναι εξοικειωμένοι.
Ίσως αόριστα από ημέρες CS50 σας
ή αν έχετε γράψει εμπορικές ιστοσελίδες πριν,
τι είναι μια εικονική υποδοχής ή vhost;
Ναι.
[ΑΚΟΥΓΕΤΑΙ Παρατήρηση]
OK. Ακριβώς.
Έτσι, υπάρχει πολλαπλά στρώματα πολυπλεξία εδώ να το πω έτσι.
Όταν παίρνετε ένα αίτημα σε κάποιο εξυπηρετητή
σε μια συγκεκριμένη διεύθυνση IP, ελάχιστα χρειάζονται τον αριθμό θύρας
έτσι ώστε ο server ξέρει αυτό είναι ένα μήνυμα ηλεκτρονικού ταχυδρομείου, είναι ένα αίτημα ιστού,
ένα μήνυμα συνομιλίας ή τι όχι.
Αλλά αν τη στιγμή που θα καταλάβω έξω, εντάξει, το λιμάνι της 80.
Είναι προφανές ότι το αίτημα για μια ιστοσελίδα.
Αλλά δεν θα ήταν ωραίο
εάν ένα μόνο διακομιστή θα μπορούσε να στην πραγματικότητα υποστηρίζει πολλαπλές
ιστοσελίδες, και food.com bar.com και bass.com
έτσι ώστε να μην χρειάζεται ένα φυσικό server ή ένα μόνο κομμάτι
λογισμικού για κάθε γαμώτο ιστοσελίδα στον κόσμο.
Έτσι, ο κόσμος ανακάλυψε εικονικό φιλοξενίας που σας επιτρέπει
να θέσει πολλά domain names στην ίδια διεύθυνση IP.
Όμως, τα αλιεύματα είναι η σύνδεση Έκανα χρήση Telnet,
προσδιορίζοντας τη θύρα 80 για να www.cs164.net έκανα καμία αναφορά
του domain name ότι ήμουν ενδιαφέρονται για
στην πέρα ​​από τη γραμμή εντολών.
Και, δυστυχώς, και αυτό είναι λίγο μη προφανής.
Μόλις χτύπησα το Enter,
ουσιαστικά Telnet αυθάδεια είναι η μετατροπή
www.cs164.net για μου σε μια διεύθυνση IP
και στη συνέχεια απλά την αποστολή των πρώτων μου GET αίτηση στον server.
Έτσι, αυτή η αντίληψη ότι ήταν www.cs164.net χαθεί εντελώς,
σωστά.
Telnet δεν είναι ένα πρόγραμμα περιήγησης γιατί θα ενοχλεί την αποστολή
πρόσθετες πληροφορίες στο διακομιστή;
Δεν είναι τόσο έξυπνος.
Γι 'αυτό και η περιήγηση έχει να υπενθυμίσει το διακομιστή
ότι όχι μόνο δεν θέλω για να πάρει την αρχική σελίδα,
Θέλω, επίσης, να καθορίσετε μια σειρά από cs164.net.
Και η κεφαλίδα HTTP, ώστε να μιλούν είναι ακριβώς αυτό, Διοργανωτής:.
Τώρα, όταν πατήσετε το Enter, I πάρει πίσω την ίδια ανακατεύθυνση
ότι είδα στο Chrome και ότι είδε στην μπούκλα, αλλά τολμώ να πω τώρα,
κάνουμε αυτό ακριβώς περίπου τόσο χαμηλό επίπεδο
αυτό είναι τεχνικά εφικτό
χρησιμοποιώντας αυτά τα περισσότερα απόκρυφες εντολές.
Τώρα, γιατί είναι αυτό χρήσιμο;
Έτσι, αυτό δεν είναι η κανονική τρόπος για να επισκεφθείτε μια ιστοσελίδα
αλλά σχεδόν κάθε χρόνο, θα Πρέπει να διαγνώσει κάποιο πρόβλημα
με την εφαρμογή web-based που περιλαμβάνει ένα διακομιστή ή ένα κομμάτι
λογισμικού ή πρόσφατα δημιούργησε εικονική υποδοχής
ή πρόσφατα αγόρασε το όνομα τομέα.
Αυτά είναι ακριβώς τα εργαλεία ότι γνωρίζετε Tim και Rob και εγώ
και άλλοι θα χρησιμοποιούν απλά να προσπαθήσουμε να σχήμα
τι συμβαίνει λάθος, σωστά;
Υπόθεση στο σημείο ανά πάσα στιγμή μπορείτε να πάρετε ένα όνομα τομέα, με κάποιο τρόπο έχουν
να συνδέσει ένα IP αντιμετωπιστούν με αυτό.
Και το κάνετε αυτό συνήθως μέσω web-based interface στο GoDaddy
ή namecheap.com ή οπουδήποτε αλλού έχετε αγοράσει το domain name.
Έτσι, διαφορετικές ιστοσελίδες έχουν διαφορετικά εργαλεία
αλλά είναι ουσιαστικά σε μια Πίνακα του Excel με τις στήλες
για τα ονόματα και τις στήλες υποδοχής
για τις διευθύνσεις IP κάτι τέτοιο.
Αλλά υπάρχει ένα πρόβλημα γιατί κάθε φορά που σας ζητηθεί
να συνδέσει μια διεύθυνση IP με ένα όνομα κεντρικού υπολογιστή, θα σας ζητηθεί
για TTL της το οποίο ανέρχεται για - πήρατε 143.
Το ακούω εδώ.
Ώρα να ζήσουν.
Μια TTL σημαίνει πόσα δευτερόλεπτα Θα πρέπει να θυμόμαστε αυτή η καταχώρηση
για και από θυμόμαστε, Εννοώ cache.
Έτσι, τα πολυλογώ, Επίσης, μέσα στον κόσμο DNS,
υπάρχει όλο αυτό το έννοια της προσωρινής αποθήκευσης.
Και αυτό είναι ένα θέμα που θα διερευνήσει κατά τη διάρκεια, καθώς και
σε επίπεδο λογισμικού με την οποία caching είναι συχνά μια πολύ
καλό πράγμα.
Και τι εννοούμε με τον όρο caching μια ιστοσελίδα, για παράδειγμα,
ή προσωρινή αποθήκευση ενός DNS ρεκόρ, μια διεύθυνση IP;
Τι σημαίνει αυτό για την cache;
Ναι.
[ΑΚΟΥΓΕΤΑΙ Παρατήρηση]
Ναι, ακριβώς απλά κρατώντας γύρω από ένα αντίγραφο, έτσι ώστε
αν δεν αλλάξει ή ειλικρινά, ακόμη και αν δεν αλλάξει,
ας μην παρατηρήσετε τουλάχιστον μερικά δευτερόλεπτα ίσως ακόμη και μερικές
λεπτά ή χειρότερα για μια ώρα ή δύο.
Και σε μια ιστοσελίδα, ίσως έχω ξαναδεί αυτό,
Μερικές φορές, αν είστε χρησιμοποιώντας ένα δικτυακό τόπο,
δεν είναι τόσο η μεγαλύτερη ιστοσελίδες.
Έχετε την τάση να πάρει αυτό σωστή λεπτομέρεια όπως το Facebook
και το Gmail και τα παρόμοια.
Αλλά αν χρησιμοποιείτε άλλο ιστοσελίδα που χρησιμοποιεί πολλά
από τις τεχνολογίες θα χρησιμοποιήσουν στην τάξη,
είναι συχνά μια σχεδιαστική απόφαση για να αποφασίσει εάν ή όχι
για την προσωρινή αποθήκευση κάτι και αν ναι, πόσο καιρό στη μνήμη cache κάτι.
Και αν έχετε ποτέ σε έναν ιστοχώρο
όπου, για παράδειγμα, να χτυπήσει Αποθήκευση και στη συνέχεια να κάνετε ανανέωση της σελίδας
και, στη συνέχεια, ότι κι αν δημοσιεύτηκε δεν είναι εκεί.
Αλλά τότε ίσως ανανέωσε και φαίνεται.
Και στην πραγματικότητα, έχω πραγματικά δει το σύμπτωμα ακόμα
με το Facebook κάποια στιγμή
όπου κι αν φορτώσετε News Feed σας,
μερικές φορές κάτι υπάρχει, μερικές φορές εξαφανίζεται
και πράγματα που δεν κάνει Πραγματικά φαίνεται συνεπής.
Και αυτό είναι συχνά το αποτέλεσμα της προσωρινής αποθήκευσης απλά ζητήματα.
Σε μία αίτηση, είστε χτυπήσει ένα διακομιστή.
Σε ένα άλλο αίτημα, είστε χτυπήσει άλλο διακομιστή
και κρύπτες τους, αντίγραφά τους
των ιστοσελίδων μπορεί να μην να συγχρονιστούν απόλυτα
από μερικά δευτερόλεπτα ή λεπτά
έτσι ώστε να δούμε διαφορετικά κράτη του κόσμου.
Το ίδιο πράγμα συμβαίνει με το DNS.
Εάν αποφασίσει ότι έχετε στην κατοχή σας food.com
και αν έχετε τη φιλοξενία του στο GoDaddy,
μια αρκετά δημοφιλής web εταιρεία που φιλοξενεί, μεταξύ άλλων,
και αν αποφασίσετε, όχι, εγώ δεν κάνω ήθελα πραγματικά την πολιτική τους,
Δεν μου αρέσει πραγματικά τους τις τιμές, τις υπηρεσίες τους.
Θέλω να αλλάξω σε άλλη ιστοσελίδα hosting εταιρεία όλοι μαζί.
Τι κάνεις;
Λοιπόν, θα ήθελα απλά να αλλάξετε το Διεύθυνση IP του food.com στο σημείο
στο διακομιστή κάποιου άλλου που θα πάμε για να ξεκινήσει χρήματα.
Όμως, επειδή το σύνολο DNS σύστημα διακομιστή χρησιμοποιεί κρύπτες,
τι μπορεί να σημαίνει αυτό για τους χρήστες σας
αν ξαφνικά κινείστε την ιστοσελίδα σας από εδώ
σε πάνω από εδώ, διαφορετικά Διεύθυνση IP.
Εντάξει.
Για κάποιο μη μηδενικό αριθμό λεπτά ή δευτερόλεπτα,
Οι χρήστες σας μπορεί να καταλήξουν εδώ, για παράδειγμα, ή εδώ
επειδή το λειτουργικό τους σύστημα, browser τους, τους ISP,
δρομολογητή στο σπίτι τους θα μπορούσε να έχει cached την παλιά διεύθυνση IP
σε ποιο σημείο, του πραγματικά δύσκολο να σχήμα
ακριβώς τι πηγαίνει στραβά.
Τόσο πώς μπορείτε να αρχίσετε να κυνηγήσει κάτω, ακόμη και ζητήματα όπως αυτό;
Με απλά μετά από αυτά τα ψίχουλα ψωμιού
και κατανόηση τελικά, τι είναι HTTP
και τι σημαίνει αυτό για την αποστολή αίτηση και τι εργαλεία
όπως το nslookup πραγματικότητα κάνει για σας.
Και ναι, πώς μπορείτε να εκτελέσετε κάποια από αυτές τις εντολές χαμηλού επιπέδου
και απλά να καταλάβω τι στην πραγματικότητα πηγαίνει στραβά.
Έτσι, ξέρετε ποιος να καλέσετε, ο οποίος να στείλουν από ένα email ή τι
να αλλάξει στο δικό σας server.
Και ως ένα μέρος, Υποθέτω οι περισσότεροι
από εσάς εδώ έχετε χρησιμοποιήσει το CS50 Συσκευή, αν όντως είχε λάβει CS50.
Ακόμα κι αν δεν έχετε πολλές
από εσάς έχουν χρησιμοποιήσει κατά πάσα πιθανότητα Apache είτε με δική σας Macs
ή υπολογιστές ή Linux κουτιά.
Όπως Παρεμπιπτόντως, αν το κάνω ανοίξτε ένα παράθυρο τερματικού εδώ
σχετικά με την τελευταία συσκευή CS50 και γίνομαι root με su Sudu
και στη συνέχεια να πάω σε αυτόν τον κατάλογο
εδώ etc / httpd / conf.d /.
Αυτό είναι μια κοινή τοποθετήστε για web server -
για Apache servers web για να αποθηκεύσετε τα αρχεία ρυθμίσεών τους.
Conf.d ακριβώς σημαίνει διαμόρφωση κατάλογο με ένα σωρό
των αρχείων και αν θα ανοίξει με vi για παράδειγμα,
συσκευής 50, θα είστε πραγματικά δείτε πόσο εικονική φιλοξενία
στο CS50 Appliance έχει εργασίας όλα αυτά τα χρόνο.
Εάν είναι μια στιγμή ανάκληση
ότι μπορείτε να βάλετε περισσότερα οποιαδήποτε ιστοσελίδα στο εσωτερικό
του καταλόγου vhost σας στη συσκευή.
Πώς αυτό πραγματικά εργασία;
Λοιπόν παρατηρήσετε, αυτό είναι ένα κομμάτι απόκρυφες και μπορείτε να ταξινομήσετε
από κατανοήσω το δρόμο σας μέσα αυτό χρησιμοποιώντας την τεκμηρίωση.
Αλλά ουσιαστικά η ίσως το πιο χρήσιμο γραμμή
να κοιτάζω προς τα πάνω - εξετάσουμε είναι αυτό το.
Η γραμμή αυτή εδώ, κατ 'ουσίαν λέει ο web server για να δούμε
John στο Χάρβαρντ vhost κατάλογο
για την κατώτερη έκδοση υπόθεση Ανεξάρτητα από το όνομα του διακομιστή
ή domain name ήταν πράγματι επισκέφθηκε.
Και εμείς δεν θα πρέπει αναγκαστικά να πάει σε με αυτό το βαθμό μαστορέματα.
Αλλά όταν χρησιμοποιείτε Apache, εσείς είστε εκείνοι που
οι οποίοι έχουν τελικά Ο έλεγχος των στοιχείων αυτών.
OK. Έτσι, στο εξής, μπορούμε τώρα λαμβάνει HTTP δεδομένο, έτσι δεν είναι;
Εντάξει.
Γιατί λοιπόν να μην κάνουμε αυτό, ειδικά αν κάποια
από εσάς αισθάνονται κάπως ένα αιχμάλωτο ακροατήριο, γιατί δεν πάμε μπροστά
και να κάνει ένα διάλειμμα δύο λεπτών,
όταν επιστρέψουμε θα βουτήξει ένα κομμάτι σε MVC και θα
σε ένα σημείωμα σε - ένα πρόβλημα που τότε θα λύσουμε την Τετάρτη
με ένα εργαλείο που ονομάζεται Laravel.
Έτσι, ας ρίξουμε μια μερικά λεπτά.