>> Tous droite.
Donc, nous allons plonger dans une certaine détails techniques.
Espérons que ce que certains d'une question facile.
HTTP, l'objectif d'aujourd'hui est ne donne-nous simplement un mental
modèle pour les types des demandes
et projets que nous sommes aller à la mise en œuvre.
Le mercredi, nous passons plus en profondeur à des choses comme MVC
et en particulier à Laravel et ORM
avec laquelle nous allons parler à une base de données.
Mais pour aujourd'hui, nous allons définir le organiser pour ces conversations.
HTTP, c'est quoi?
Protocole de transfert hypertexte?
OK, qu'est-ce que cela signifie?
Ouais.
[Inaudible Remarque]
OK. Fermer.
C'est l'autre.
Pas HT - c'est que le HTML.
HTTP est celui qui fait quoi exactement?
>> Est-ce que le service qui comme transmet le texte arrière
et-vient entre les serveurs?
>> Ouais exactement.
C'est le serveur.
Donc, vraiment, c'est le protocole.
C'est l'ensemble des conventions qui sont utilisés
pour transmettre des informations de retour et -vient entre le client et le serveur.
Et que les informations habituellement prend la forme de HTML,
Hypertext Markup Language qui sont les balises d'ouverture et de fermeture de balises.
Donc, si vous avez une certaine client représenté ici sur la gauche
et un serveur représenté ici sur la droite.
Les flèches des allers-retours
entre les représenter cette langue HTTP.
Et si familier avec 50 pour exemple de l'année dernière ou un couple
il ya des années que vous aimerez Rappelons que nous l'avons décrit
comme un protocole dans le sens que lorsque je rencontre d'abord quelqu'un,
Je pourrais prolonger ma main et dites bonjour et vous pourriez dire -
>> Bonjour.
>> Bonjour. Et maintenant, ce genre de transaction entre le client
et le serveur est terminée.
Très bien.
Donc HTTP est juste un ensemble de conventions.
Et parmi ces conventions est d'envoyer certains messages.
Ainsi, par exemple, ouvrons Chrome.
Et pour le cours, vous pouvez certainement utiliser plus de n'importe quel navigateur,
mais Chrome a tendance à être probablement le plus populaire de nos jours.
Parce qu'il a dans son ensemble suite d'outils construit po
Allons de l'avant et Inspecter l'élément.
Permettez-moi de passer à l'onglet Réseau et permettez-moi de passer à quelque chose
comme http://www.cs164.net et appuyez sur Entrée
après la première frappe de la fiche encas nous sommes redirigé.
Et maintenant, nous allons de voir tout un tas
de lignes de ce tableau.
Qu'est-ce que chacun des ces lignes représentent
lorsque vous visitez une page web?
Ouais?
[Inaudible Remarque]
Exactement. Tous les fichiers Je viens demandées sont montré
comme une ligne individuelle dans cette petite table là-bas,
mais attendre fichiers.
Je ne demandé un tel fichier, à droite,
probablement index.html ou index.php.
Ils pourraient être des liens, non?
Certes, il ya l'image les balises à l'intérieur de là,
il ya des balises de liaison pour CSS, il ya des balises de script
pour JavaScript et un le groupe entier d'autres mots-clés
qui peut effectivement tirer
dans des fichiers supplémentaires sorte de manière récursive.
Et c'est ce que nous voyons.
Si nous faisons défiler jusqu'à maintenant le haut de ceux-ci,
remarquons que nous voyons d'abord un c'est en fait assez curieux.
Il dit notre site déplacé temporairement,
le code d'état pour parler est 302.
Il ya un autre semblable, 301 qui a déplacé de façon permanente.
Et si vous vous déplacez temporairement ou permanence ce que ça veut dire?
Que dois-vos yeux être à la recherche à l'ordre
pour répondre à où est-on passé à?
Le courant et la durée.
OK. Ainsi pourrait certainement déduire où nous nous sommes retrouvés.
Et apparemment, je me suis retrouvé à canvas.harvard.edu / quelque chose
qui est beaucoup plus difficile à retenir.
Mais plus techniquement, je veux pour diagnostiquer un problème de redirection.
Je veux comprendre où je suis aller du point A au point B
à un point point, point, point canvas.harvard.edu
dans ce plus mystérieux une interface d'en-têtes.
Comment puis-je répondre à une question de la forme à l'endroit où ai-je déplacer?
Lieu. Très bien.
Donc, si je fais défiler ici les têtes de réponse,
remarquent que ce sont les têtes et permettez-moi de le changer.
C'est en quelque sorte une jolie version imprimée de Chrome.
Cliquons voir la source.
Ceci est le texte brut qui le serveur web Apache.
Et je sais que par en regardant cette ligne ici.
Et Apache est juste libre et des logiciels open-source.
C'est probablement le plus populaire logiciel de serveur web là-bas.
C'est le résultat de l' poignée de main me revient.
Et si je sorte de regarde ce qui était à l'intérieur de la main
ou l'enveloppe virtuelle qui représente les paquets,
aller à travers le fil à l'intérieur
de ceux-ci qui est plusieurs lignes de texte.
Et parce que les navigateurs se parlent HTTP,
ils sont préprogrammés Google et Microsoft
et d'autres entreprises à la recherche de cette ligne.
Et quand il voit emplacement: que fait-il avec l'URL
après la virgule vraisemblablement?
Il va lui.
Et nous pouvons le voir dans n'importe quel nombre de façons.
En fait, un très pratique outil particulièrement sur Linux
et Mac OS est si j'ouvre une fenêtre de terminal ici
et je fais friser et je le fais-je et puis collez cette URL là.
C'est une bonne habitude d'utiliser des guillemets
car si vous avoir des points d'interrogation
ou d'autres caractères funky, vous pouvez réellement sorte
de confondre la ligne de commande.
Mais si vous citez l'URL il, maintenant nous allons voir exactement tout
des en-têtes qui sont revenues.
Et dans ce cas, en fait J'ai fait le mauvais.
J'ai fait la Toile URL.
Faisons http://www.cs164.net.
Entrée. Il ya exactement ces mêmes têtes.
Et si je veux voir prochaine ce qui revient,
Je peux le faire manuellement.
Donc boucle est juste un peu rapide et outil de diagnostic sale ici,
curl-I et maintenant que l'URL de nouveau et ceux-ci sont tous les en-têtes
qui viennent maintenant de retour de canvas.harvard.edu.
Quelles informations supplémentaires ce qu'ils nous envoient?
C'est un peu coupé.
Passons sur ce.
Ainsi, une de ces lignes est intéressant.
Longueur si content, c'est combien d'octets étaient à l'intérieur
de l'enveloppe virtuelle qui sont revenus.
Type de contenu c'est HTML, il peut-être quelque chose de différent
si c'est un fichier PNG ou GIF ou JPEG.
En fait, de façon générale, ce qui est appelé cette chaîne?
Il ya ces uniques chaînes dans le monde
qui décrivent de manière unique différents types de données.
Il s'agit d'un soi-disant type MIME, de type M-I-M-E.
Ainsi, le monde a normalisé
que. png je pense est "image / png".
Le monde a normalisé que dans le fichier HTML est text / html.
Le monde a normalisé qui un mp4, le fichier de film est video/mp4.
Ce sont donc les jetons uniques que les navigateurs utilisent habituellement
pour déterminer s'il faut jouer comme un film, pour l'afficher
sous forme d'image, pour rendre comme HTML ou similaire.
Quel serveur fait - instructure la société derrière la toile
apparemment utiliser?
Alors Apache trop, ils sont donc à l'aide le même outil et nous pouvons voir
que par cette ligne ici.
En passant, ils ont fait fait quelque chose qui est intelligent
que tous les sites font.
Très souvent des sites cracher,
non seulement qu'ils sont serveur Apache, mais aussi
qu'ils sont en cours d'exécution Apache version 2.1.3.
Mais ces gars-là ont eu l'intelligence et désactivé le numéro de version.
Pourquoi est-ce intelligent?
Ouais.
>> Peut-être parce certain version peut être découvert
et ont notamment vulnérabilités
[Inaudible] évident.
>> Exactement.
C'est un potentiel menace pour la sécurité.
Si vous êtes essentiellement la diffusion dans le monde, hé,
nous manquons cette version.
Hey, nous allons manquer cette version.
Il n'est pas difficile avec Google ou détendez-même à pousser
adresses IP aléatoires autour
et trouver des gens courir poussette logiciel, puis les attaquer
par quoi que documenté signifie qu'il ya.
Maintenant, pourquoi est-il encore disant Apache?
Sans doute, c'est un peu de renseignements gratuits.
Eh bien, Apache, il est facile de désactiver le numéro de version
mais pas leur genre de derrière les scènes marque de cette manière.
Et c'est ainsi que Google et d'autres entreprises savent quels serveurs Web
les gens courent parce qu'ils sont juste dire au monde entier
chaque fois que vous les visitez.
Donc cookies revenir trop.
Mais vous souvenez peut-être que les cookies sont en quelque sorte des grands nombres uniques
qui sont généralement certainement un tampon à main de l'utilisateur.
C'est un petit fichier ou un morceau de données plantés dans le navigateur
de se rappeler qui est l'utilisateur.
Statut 200 est bonne.
X-Canvas-Meta, si ce qui est tout cela?
Eh bien, bref, la monde a également permis au monde
à venir avec arbitraire, HTTP têtes et si vous les préfixer
avec X, qui vient d' signifie qu'ils sont personnalisés.
Et c'est une belle façon même à des fins diagnostiques
si vous développez une application Web
et vous voulez être en mesure
de voir derrière les scènes que vous savoir ce que sauvegarder serveur broche de fin
cette réponse ou ce le numéro de version est en cours d'exécution
sur ce serveur.
Ou ce qui est de son interne adresse IP,
toute chose où vous pourriez vouloir quelque aperçu interne
à quelque chose qui est passe, vous pouvez cracher
votre propre arbitraire en-têtes HTTP de cette façon.
Mais l'histoire a commencé avec ouvrir le site Web de cours.
Et nous avons vu tous ces lignes dans l'onglet Réseau.
Le premier était de plus intérêt que nous redirigé
à l'autre, puis nous avons eu revenir à cette réponse ici.
Alors, où est canvas.harvard.edu?
Poussons un peu plus loin et de tri
de suivre ces miettes de pain.
Canvas.harvard.edu est apparemment appartenant à Harvard.
Ils ont créé ce sous-domaine appelé canvas.harvard.edu.
Comment pourrais-je savoir où
dans le monde de canvas.harvard.edu vie?
Ou peut-être plus précisément ce qui est son adresse IP?
Comment pouvons-nous comprendre cela?
Ouais?
[Inaudible Remarque]
Absolument.
Donc, c'est effectivement répondre à quelques questions là.
Le premier outil simple serait être quelque chose qui s'appelle NSlookup
si il est appelé d'autres choses.
Serveur de noms de téléphone et Je peux taper dans quelque chose
comme canvas.harvard.edu.
Entrée. Et cela va donner -moi apparemment tout un tas
de réponses.
Mais permet de voir si ne peut pas donner un sens à cela.
Donc, apparemment,
canvas.harvard.edu est un nom canonique
pour cette atroce regardant la chose,
harvard-vanity.instructure.com.
Donc, ce qui se passe ici?
Alors que pendant ce temps, si nous continuons la lecture,
harvard-vanity.instructure.com a un nom canonique
de quelque chose d'encore plus énigmatique,
harvard-170 quelque chose -Nous-est-1.elb.amazon.aws.
De plus, cette chose résout
à apparemment trois des adresses IP différentes.
Alors qu'est-ce dans le monde signifie tout cela signifie?
Ouais?
[Inaudible Remarque]
OK. Bon. Et permettez-moi de bidouiller une chose que vous avez dit,
ce n'est pas vraiment une Content Delivery Network.
Parce que c'est généralement que signifie qu'il est contenu statique
et parce que la plupart de l' site dynamique entraînée,
Je ne dirais pas cela comme un CDN
mais il est Amazon serveurs hébergés.
Amazon propose un service appelé Amazon Elastic Compute Cloud,
EC2 pour faire court.
Et ce ne sont là web serveurs exécutant souvent Apache
ou autres logiciels que vous pouvez louer pour l'essentiel
en payant quelques centimes Amazon ou quelques dollars par heure
et en fait, vous exécutez votre Code sur leurs serveurs.
Et les moyens par lesquels ils faire est qu'ils donnent un cryptique
consultant nom de domaine comme ceci qui entraîne à son tour une
ou plusieurs adresses IP comme ces trois ici.
Et à son tour, vous peut créer des alias
qui sont beaucoup plus humain amical
pour que sinon complètement adresse Amazon immémorial.
Et dans ce cas, la entreprise instructure décidé
à créer une légère adresse plus mémorable,
harvard-vanity.instructure.com
mais ce serait une sorte atroce de chose pour nous
à visiter des sites Web de cours.
Donc Harvard à son tour créé un autre alias qui est plus
simplement canvas.harvard.edu.
Et l'ensemble de ces techniques sont s'appuyant sur quelque chose appelé DNS,
le Domain Name System.
Et tant que le système administrateur a accès
à Harvard ou de instructure serveurs DNS,
vous pouvez créer ces alias.
Et si vous les gars, pour vos projets,
décider d'acheter un nom de domaine nommer pour 5 dollars,
10 dollars ou autre.
Et même payer pour un hébergeur
ou tout simplement utiliser un libre accès hébergeur et vous voulez
à vivre en fait pas quelque chose random.com
mais à votre propre nom de domaine nommer que vous avez acheté pour 5
ou 10 dollars ces sont les sortes de détails de configuration
que nous allons explorer vers la fin du semestre.
Si et quand vient le temps expédier quelque chose publiquement
il peut vivre à un URL plus intéressant.
Permettez-moi de m'arrêter un instant Parce que vous les gars sont de tri
de inutilement s'amasser là.
Voulez-vous maladroitement juste un peu de venir et s'asseoir
à l'arrière ou au milieu?
Devrais-je pas tirer attention à vous?
Come on in
C'est probablement plus il mal à l'aise.
[Pause]
Très bien.
OK. Bienvenue.
Très bien.
Alors, où est-ce que maintenant nous quitter?
Donc, en quelque sorte, nous sommes l'autre et nous traverserons ce pont si
et quand vient le temps en termes
de DNS comment vous serait en fait configurer tout cela.
Certains comment ou autre, cette requête HTTP,
cette poignée de main initiale atteint un serveur à un
de ces adresses IP.
Sur ce serveur est quelque chose appelé un serveur web.
Pas de surprise.
Mais ce qui est vraiment technique est un serveur web?
Vous sorte de prendre la phrase pour acquis, mais c'est quoi?
Qu'est-ce qu'un serveur web?
Ouais?
[Inaudible Remarque]
OK. Donc, c'est juste un ordinateur avec de la mémoire et des entrées.
Vous savez, il aurait regardé
comme cette image tôt même si celui-ci est un peu
rétro et plus d'un ordinateur de bureau ou tour.
Ouais, c'est juste un ordinateur.
Mais sur le plan technique, d'un serveur Web n'est pas un ordinateur par exemple.
Nous comme une sorte d'humains ont serveurs web longue confondu
et les serveurs de messagerie dispositifs que physiques.
Mais un serveur web vraiment est un morceau de logiciel.
C'est un morceau de logiciel fonctionnant sur un ordinateur physique.
Et par conséquent, vous pouvez avoir un le serveur de courrier électronique et un serveur Web
et un serveur de carte ainsi que toute certain nombre d'autres serveurs
ou plus exactement services fonctionnant au-dessus
d'un ordinateur particulier et l'ensemble de ces services peut vivre
à la même adresse IP par conséquent.
Alors, comment - si vous avez ne posséder plusieurs services
ou les serveurs fonctionnant sur le même ordinateur, comment, quand zéros
et ceux sont à venir dans à eux par l'intermédiaire de l'Internet,
l'ordinateur sait si de répondre comme un serveur de messagerie
avec une page web, avec un tchat?
Ouais.
[Inaudible Remarque]
Bon. Exactement.
Ainsi, un serveur web écoute sur ce qu'on appelle un port.
Et si vous avez pris CS143 Réseau, vous savez peut-être
rapportent que ces ports à des protocoles comme TCP
dont vous avez probablement à moins entendu parler ou UDP.
Et ces ports ou les numéros de port sont des identificateurs uniques juste
qui identifient un service.
Donc 80 est web, 25 est email, 23 est Telnet, SSH 22 est
et il ya des dizaines ou des centaines
des autres même si il ya quelques certains sont très populaires.
Et c'est une façon pour un ordinateur avec une adresse IP
pour trier des multiplex entre différents types de demande
et réagir en conséquence.
Alors qu'est-ce que cela signifie réellement?
Donc nous n'avons pas besoin d'un navigateur Web.
Nous n'avons pas besoin de boucle réellement parler à un serveur web.
Nous avons juste besoin de comprendre ce que le protocole est et comment il fonctionne
et j'ai fait allusion à ce il ya un moment.
Telnet est une sorte de ancien programme scolaire.
Dans mon temps, nous avons utilisé de l'utiliser pour vérifier le courrier électronique
mais il était complètement insécurité.
C'est juste un outil par lequel vous pouvez envoyer des commandes textuelles
à un autre ordinateur.
Et retour dans la journée,
ces commandes textuelles souvent inclus votre nom d'utilisateur
et votre mot de passe aucune sorte de chiffrement.
Si vous êtes familier avec SSH,
SSH est à peu près Telnet mais avec chiffrement.
Donc, c'est un peu une simplification.
Mais je ne peux prétendre en tant que humain avec une fenêtre de terminal
et ce vieux programme scolaire Telnet pour être un navigateur Web.
Je peux taper dans quelque chose comme telnet www.cs164.net
et, malheureusement, si je en appuyant sur entrée, il essaie
mais rien ne semble se produire.
Et c'est parce que par défaut, le monde a décidé il ya quelques années
que le port par défaut de Telnet est 23
comme je l'ai brièvement fait allusion à il ya un moment.
Mais je ne veux pas Telnet par exemple.
Je veux utiliser Telnet ce genre de programme textuelle de prétendre
être un navigateur Web en chrome et IE et d'autres navigateurs
par défaut ont été difficile codée par Google et Microsoft
parler non pas de 23, mais à 80 ou peut-être 443
pour les sites web basées sur SSL.
Et maintenant, remarque j'essaie et je se connecter au serveur web.
Je vais maintenant, aller de l'avant et dire quelque chose comme bonjour.
Et apparemment, cela a juste déplacé de façon permanente.
J'envoie une certaine maîtrise faux
et sa me renvoyer à cette adresse ici.
Donc, nous allons faire en fait cela un peu différemment.
Voyons fait voir dire, GET/HTTP/1.1.
Donc ce que je fais?
Il s'agit de la commande.
C'est en quelque sorte mon poignée de main, pour ainsi dire.
Quelle est la avant slash probablement indiquer?
Le répertoire de la maison.
Ainsi, le répertoire d'accueil ici il signifie simplement -
ainsi appelons-le racine de ce site.
Quel que soit le fichier par défaut est, c'est peut-être index.html,
c'est peut-être index.php
et est essentiellement HTTP/1.1 la dernière version du protocole HTTP.
Donc, je fais semblant d'être un navigateur qui est assez courant
de sorte qu'il réponde il me j'espère.
Et je vais de l'avant et appuyez sur Entrée deux fois
parce que la façon dont les choses fonctionnent est qu'une fois que vous voyez une ligne vide,
ne un serveur web alors répondre.
Mais malheureusement, c'est une mauvaise demande.
Le navigateur a envoyé une demande
que ce serveur ne pouvait pas comprendre.
Maintenant celui-ci est beaucoup plus difficile à diagnostiquer.
Mais il s'avère que cs164.net utilise Apache.
Et pas beaucoup que nous pouvons comprendre.
Mais c'est aussi en utilisant quelque chose appelée hébergement virtuel
dans lequel vous connaissez peut-être.
Peut-être que vaguement de vos jours de CS50
ou si vous avez écrit sites commerciaux avant,
qu'est-ce qu'un serveur virtuel ou serveur virtuel?
Ouais.
[Inaudible Remarque]
OK. Exactement.
Donc, il ya plusieurs couches de multiplexage ici pour ainsi dire.
Lorsque vous recevez une demande à un serveur
à une adresse IP particulière, vous minimalement besoin que le numéro de port
de sorte que le serveur sait que c'est un e-mail, est-ce une requête Web,
un message de chat ou de ce pas.
Mais si une fois que vous avez compris dehors, OK, son port 80.
C'est évidemment la demande pour une page web.
Mais ne serait-il pas agréable
si un seul serveur pourrait effectivement en charge plusieurs
sites Web, et food.com bar.com et bass.com
de sorte qu'ils n'ont pas besoin d'un physique serveur ou une seule pièce
de logiciels pour chaque damner site dans le monde.
Ainsi, le monde virtuel inventé hébergement qui vous permet
de mettre plusieurs noms de domaine sur la même adresse IP.
Mais le hic, c'est la connexion Je viens de faire l'aide de Telnet,
spécifiant le port 80 pour www.cs164.net je n'ai pas parlé
du nom de domaine que je me suis intéressé
dans au-delà de la ligne de commande.
Et malheureusement, ce C'est un peu non évidente.
Dès que j'ai frappé Entrée,
essentiellement Telnet présomption est la conversion
www.cs164.net pour moi à une adresse IP
et puis juste d'envoyer ma première GET requête au serveur.
Donc, cette notion qu'il était www.cs164.net complètement perdu,
droite.
Telnet n'est pas un navigateur pourquoi serait-il la peine d'envoyer
plus d'informations sur le serveur?
Ce n'est pas aussi intelligent.
Donc, je dois le parcours pour rappeler le serveur
que non seulement ce que je veux pour obtenir la page d'accueil,
Je tiens également à préciser une foule de cs164.net.
Et l'en-tête HTTP de manière à parler est exactement cela, Host:.
Maintenant, lorsque je tape Entrez, je récupérer le même redirection
que j'ai vu dans Chrome et que je vu en boucle, mais j'ose dire maintenant,
nous faisons cela juste sur un faible niveau
qu'il est techniquement possible
à l'aide de ces plus commandes ésotériques.
Maintenant, pourquoi est-ce utile?
Donc, ce n'est pas la normale façon de visiter un site Web
mais n'importe quel moment, vous devoir diagnostiquer un problème
avec l'application web qui implique un serveur ou un morceau
de logiciel ou nouvellement hôte virtuel créé
ou nouvellement acheté nom de domaine.
Ce sont exactement les outils que vous savez Tim et Rob et moi
et d'autres utiliseraient juste pour essayer de la figure
ce qui ne va pas, non?
Affaire au point quand vous obtenez un nom de domaine, vous avez en quelque sorte
d'associer une adresse IP traiter avec elle.
Et vous le faites habituellement par interface Web à GoDaddy
ou namecheap.com ou ailleurs vous avez acheté le nom de domaine.
Ainsi différents sites avoir différents outils
mais c'est essentiellement à une Tableau Excel avec des colonnes
pour les noms d'hôte et des colonnes
pour les adresses IP quelque chose comme ça.
Mais il ya un problème parce que quand vous êtes invité
pour associer une adresse IP avec un nom d'hôte, vous êtes invité
pour son TTL qui se dresse pour - vous avez pris 143.
Je l'entends ici.
Time To Live.
Un moyen de TTL combien de secondes cette entrée doit se rappeler
pour et par souvenir, Je veux dire en cache.
Alors, longue histoire courte, également dans le monde du DNS,
il ya toute cette notion de mise en cache.
Et c'est un sujet nous allons explorer dans le cadre ainsi
à un niveau de logiciel par lequel la mise en cache est souvent un très
bonne chose.
Et qu'entendons-nous par la mise en cache d'une page Web par exemple
ou la mise en cache DNS enregistrement, une adresse IP?
Qu'est-ce que cela signifie pour le cache?
Ouais.
[Inaudible Remarque]
Oui, exactement juste garder autour d'une copie de sorte que
si elle ne change pas ou franchement, même si le fait de modifier,
permet de ne pas remarquer pendant au moins quelques secondes peut-être même un peu
minutes ou pire pendant une heure ou deux.
Et dans un site Web, vous pourriez ont vu cela auparavant,
parfois, si vous êtes l'aide d'un site Web,
pas tant le plus grand sites.
Vous avez tendance à obtenir ce détail à droite comme Facebook
et Gmail, etc.
Mais si vous utilisez un autre site qui utilise beaucoup
des technologies nous allons utiliser dans la classe,
c'est souvent une décision de conception à décider si oui ou non
pour mettre en cache quelque chose et si oui, combien de temps pour mettre en cache quelque chose.
Et si vous avez jamais été à un site Web
où, par exemple, vous touchez Enregistrer puis vous rechargez la page
et alors que vous posté n'est pas là.
Mais alors vous peut-être vous recharger à nouveau et il apparaît.
Et en fait, je n'ai fait vu le symptôme même
avec Facebook temps en temps
où si vous rechargez votre Nouvelles RSS,
parfois quelque chose est là, parfois il disparaît
et les choses ne font pas sembler très cohérente.
Et c'est souvent le résultat de tout mettre en cache les problèmes.
D'une demande, vous êtes frapper un serveur.
Sur une autre demande, vous êtes frapper un autre serveur
et de leurs caches, leurs copies
de pages Web pourrait ne pas être parfaitement synchronisée
de quelques secondes ou minutes
si vous voyez autre états du monde.
Même chose avec le DNS.
Si vous décidez que Vous êtes propriétaire food.com
et si vous avez été héberge à GoDaddy,
une web assez populaire société d'hébergement entre autres
et vous décidez, non, je ne fais pas vraiment leur politique,
Je n'aime pas vraiment leur prix, leurs services.
Je veux passer à un autre web société d'hébergement tous ensemble.
Que faites-vous?
Eh bien, vous souhaitez simplement changer les adresse IP de food.com au point
au serveur de quelqu'un d'autre qui vous allez commencer à l'argent.
Mais parce que l'ensemble du DNS système de serveur utilise des caches,
ce que cela veut dire pour vos utilisateurs
si tout à coup vous vous déplacez votre site à partir d'ici
à plus ici, différente adresse IP.
Très bien.
Depuis un certain nombre non nul de minutes ou de secondes,
vos utilisateurs peuvent finir par aller ici par exemple ou ici
à cause de leur système d'exploitation, leur navigateur, leur FAI,
leur routeur de la maison pourrait avoir cache l'ancienne adresse IP
à quel point, son vraiment difficile de chiffre
exactement ce qui va mal.
Alors, comment voulez-vous commencer à chasser vers le bas même des questions comme ça?
En suivant simplement ces chapelure
et la compréhension finalement ce qui est HTTP
et qu'est-ce que cela signifie pour envoyer une demande et ce faire des outils
comme NSlookup fait faire pour vous.
Et comment pouvez-vous exécuter certains de ces commandes de bas niveau
et juste comprendre ce en fait, qui ne va pas.
Donc, vous savez qui appeler, qui pour envoyer un e-mail ou ce
à changer sur votre propre serveur.
Et en passant, Je devine que la plupart
d'entre vous ont utilisé le CS50 Appareil, si vous avez pris CS50.
Même si vous n'avez pas beaucoup
vous avez probablement utilisé Apache que ce soit sur vos propres Macs
ou PC ou des ordinateurs sous Linux.
Soit dit en passant, si je fais ouvrir une fenêtre de terminal ici
sur le dernier appareil de CS50 et je deviens root avec su sudu
et puis je vais en ce répertoire
ici etc / httpd / conf.d /.
Il s'agit d'une commune place pour serveur web -
pour les serveurs Web Apache pour stocker leurs fichiers de configuration.
Conf.d signifie simplement configuration répertoire avec tout un tas
de fichiers et si je vais ouvrir avec vi par exemple,
appareil 50, vous aurez fait voir comment hébergement virtuel
dans le CS50 appareil a été travailler tous ces temps.
Si elle a été un rappel de tout
que vous pouvez mettre plus un site Web à l'intérieur
du répertoire de votre serveur virtuel dans l'appareil.
Comment cela fonctionne?
Eh bien remarqué, c'est un peu arcane et vous pouvez trier
de Grok votre chemin à travers ce en utilisant la documentation.
Mais essentiellement l' probablement la gamme la plus utile
à regarder - regarder ce.
Cette ligne ici essentiellement indique au serveur Web pour regarder
dans John Harvard répertoire vhost
pour la version minuscule de quelque nom de serveur
ou le nom de domaine a été effectivement visité.
Et nous n'allons pas nécessairement dans avec ce degré de bricolage.
Mais lorsque vous utilisez Apache, vous êtes les
qui ont finalement Contrôle sur ces détails.
OK. Ainsi, désormais, nous pouvons maintenant prendre HTTP pour acquis, non?
Très bien.
Alors, pourquoi ne pas nous faire ce, surtout si certains
de vous sentir un peu captif public, pourquoi ne pas aller de l'avant
et prendre une pause de deux minutes,
quand nous reviendrons, nous allons plonger un peu en MVC et nous allons
sur une note sur - d'un problème qui nous allons ensuite résoudre le mercredi
avec un outil appelé Laravel.
Donc, nous allons jeter un quelques minutes.