>> CONFÉRENCIER: Parlons un autre protocol-- l'Hypertext Transfer
Protocole, ou HTTP.
Donc, nous avons parlé IP et TCP dans les vidéos précédentes.
Et ce sont les protocoles qui dictent la façon dont l'information
se déplace de machine à machine et d'un programme à ou service
au service via Internet, par l'intermédiaire ce réseau de routeurs et de machines.
>> Mais cela est généralement pas l'image entière, non?
Habituellement, lorsque nous envoyons informations, le programme
itself-- lorsque les données sont reçu, disons, par exemple,
dans l'email via le port TCP 25 ou Web demande de page via le port 80,
il ya habituellement un système de règles, il pour traiter ce que je viens de recevoir.
Et HTTP est un exemple d'un tel protocole.
>> HTTP est le seul protocole d'application de la couche
que nous allons parler.
Mais il est un autre jeu des règles qui dictent comment
des informations doivent être transmises et traitées par l'intermédiaire d'Internet.
En particulier, HTTP précise exactement comment
il faut faire une demande de une page web et exactement comment
un serveur, un ordinateur qui héberge les pages web,
délivre cette information sauvegarder aux clients.
>> Donc, ce protocole ne avoir fait quoi que ce soit
à voir avec la façon dont l'information se déplace du point A
au point B. Il est vraiment le système de règles
pour-- il est fondamentalement les règles de l'engagement de travailler avec une page web,
similaire à quand quelqu'un vagues leur main à vous,
vous êtes censé signe en retour.
Voilà une sorte de humain protocole classique.
Protocole HTTP dit juste, si vous souhaitez recevoir un web
la page, assurez-vous que vos regards de format comme this-- sorte de formatage comme
une lettre de l'entreprise, par exemple.
Et la réponse sera similaire venir selon ce protocole.
Il existe d'autres Les protocoles de couche d'application
que nous ne sommes pas aller à parler dans les vidéos.
Mais ceux-ci comprennent des choses comme le protocole de transfert de fichiers,
Protocole Simple Mail Transfer pour l'envoi de courriels, la distribution des données
Service, Remote Desktop Protocole, RDP, qui
est utilisée si vous voulez accéder à distance votre ordinateur depuis un autre ordinateur,
XMPP, qui est fréquemment connu comme Jabber ou le chat,
si cela est le protocole pour l'utilisation de services de chat.
Et il ya beaucoup, beaucoup, beaucoup d'autres.
>> Donc, chaque fois que vous utilisez un service, le service
attend des informations à une demande received--
être dans une received-- format particulier très
et qui est nécessaire pour renvoyer des informations de retour
dans un format très particulier ainsi.
>> Donc, revenons à notre illustration nous vouloir parler à l'Internet.
Donc, nous sommes heureux, et nous voulons pour aller à cats.com, non?
Donc, si nous parlons seulement de cats.com, nous pourrions dire quelque chose comme hey,
puis-je voir votre page d'accueil?
Et cats.com sera probablement répondre, oui, bien sûr.
Et voilà.
Voilà donc une sorte humaine de demander et de réponses.
>> Qu'est-ce que cela ressemble à HTTP?
Eh bien, il en fait un peu traduit assez proprement à quelque chose comme ça.
Nous pourrions dire GET / HTTP / 1.1 de cats.com hôte.
Donc, fondamentalement, ce que je fais ici est demandant la page Web www.cats.com/.
Nous omettons généralement la barre oblique de nos jours, mais ce serait tout simplement
signifie la page d'accueil de cats.com.
>> Oh, et par la manière, je vais être avec la version HTTP
1.1 pour communiquer avec vous.
Voilà en quelque sorte analogue à dire, comme, d'ailleurs,
Je vais prendre la parole en français, ou par la façon dont,
Je vais être parlant en anglais.
Voilà tout simplement le format du protocole.
Il est également de 1,0, ce qui est pas plus couramment utilisé.
Donc, je suis HTTP 1.1 parlant, et Je voudrais www.cats.com/.
S'il vous plaît obtenir ce pour moi.
>> Et puis il ya d'autres informations, too-- le point, point, il dot,
qui sont des informations sur qui vous êtes si cats.com
serait de savoir où l'envoyer.
Mais ce sont les deux sorte de pièces critiques
au tout début d'un HTTP request--
tout comme lorsque vous démarrez un lettre que vous dites, cher, vide.
Ceci est très similaire dans l'esprit à cela.
>> Et si cats.com va dites, oh, bien sûr, ici vous allez.
Ils pourraient réagir comme this-- Je suis aussi de répondre.
Je parle aussi HTTP 1.1.
Votre demande est approuvée, 200 OK.
Qu'est-ce que vous êtes sur le point de recevoir est HTML, puis
dot, dot, dot quelques informations supplémentaires.
Et tout en bas de la demande est en fait le HTML,
le langage de balisage, la contenu de la page d'accueil de cats.com.
>> Donc HTTP / 1.1-- Je reconnais votre demande a été acceptée via HTTP 1.1.
Votre demande a été approuvée.
Je peux vous donner ce que vous voulez, 200 OK.
Vous êtes sur le point de recevoir des messages HTML.
Et puis voici le HTML que vous avez demandé.
>> Mais parfois, nos demandes ne sont pas toujours aller assez conformément au plan.
Puis-je voir votre page cats.html?
Eh bien, si ils disent, nous ne pas avoir une page de cats.html,
qui semble sorte de irréaliste parce qu'ils sont cats.com.
On pourrait penser qu'ils auraient cats.html.
Mais d'accord.
Donc, cela est en quelque sorte le l'interaction humaine classique
nous avons maintenant eu avec cats.com.
Comment cela se traduit?
>> Cela pourrait être quelque chose de familier pour vous.
Notre demande était exactement le même, sauf qu'au lieu d'obtenir slash
Maintenant, nous obtenons cats.html.
Alors maintenant, ce qui en fait toute cette demande dit donnez-moi s'il vous plaît est
www.cats.com/cats.html.
Donc, l'hôte et le milieu une partie de cette ligne supérieure
il indiquer précisément quelle page que je demande.
Mais cats.com dans ce cas ne va pas pour être en mesure de répondre positivement.
Ils ne savent pas que nous parlons.
Et donc cela est quelque chose que vous pourriez avoir vu HTTP before-- 1.1 404 Not Found.
Je ne pouvais pas trouver ce que vous demandiez.
En passant, je vais vous donner Retour du HTML, et le plus souvent que le HTML
est le contenu de certaines pages 404.
Et dans le cas de cats.com, il est probablement
certains chats mignons dans un panier avec 404 visage triste à côté d'eux,
parce que vous allez être triste quand vous ne recevez pas la page
que vous recherchez.
>> Voilà sorte de les bases de ce que une Protocole, les demandes de protocole HTTP
ressembler.
Ils sont vraiment similaire à la façon dont nous ferait une interaction similaire
dans les conventions simplement humains demander quelque chose
et de le faire revenir ou d'écrire un lettre et attend une réponse
lettre dans un format particulier.
Voilà à peu près ce que HTTP est juste canonisant
pour tous les appareils qui souhaitent un accès les pages Web, les transferts de l'hypertexte.
>> Ainsi, une ligne de la forme, cela le Version méthode demande HTTP cible,
est appelée une ligne de requête HTTP.
Il est généralement la première chose qui est transmis dans le cadre d'une requête HTTP
ou si vous demandez HTTP.
Il est un peu comme, comme je le disais, en disant chère, vierge en haut de votre lettre.
Ils savent que vous êtes les écrire une lettre.
Donc, cela est très similaire à dire, je sais
que ils font une demande HTTP et ceci est le format particulier
qu'ils demandent.
>> Version HTTP est probablement toujours va être HTTP / 1/1.
1.0 existe aussi mais est pas plus vraiment utilisé.
Aux fins de la CS50, GET est probablement toujours
ce que vous allez être l'aide lorsque vous êtes réellement
des requêtes HTTP directs.
Mais POST est une autre option que nous sommes ne vais pas parler maintenant.
Et puis demande-cible est quelle page sur le serveur de l'hôte
vous souhaitez obtenir.
Comme je le disais, ce nom d'hôte est une ligne distincte, habituellement
la deuxième ligne de la demande globale.
Et donc, pris ensemble, l'hôte nom et la cible de demande
spécifier un particulier ressource recherchée.
Dans notre exemple 404 il ya une seconde, je demandait encore pour www.cats.com,
cats.com étant l'hôte.
Et dans ma ligne de demande, Je l'ai dit /cats.html.
Ce fut ma demande cible.
Donc dans l'ensemble je posais pour le contenu ou la ressource située
au www.cats.com/cats.html.
>> Et puis, en fonction de si la ressource existe
et si le serveur peut fournir la ressource en vertu de celle du client
demande, vous pourriez obtenir divers codes retour d'état.
Certains de ces codes d'état que vous avez vu parce qu'ils font partie de la réponse.
Certains d'entre eux, 200 OK, sont probablement assez silencieux.
Vous avez probablement jamais vu une page de répondre 200 OK.
Vous venez d'obtenir la page.
Il est pas comme une erreur 404, qui est généralement assez clair.
Vous voyez habituellement qu'il dit 404.
>> Donc, nous allons parler de ce que certains de ces codes d'état pourrait être.
Encore une fois, lorsque le serveur répond à nous, ils sont
va répondre HTTP statut de version.
Habituellement HTTP / 1.1.
Quels sont ces codes d'état va être?
Eh bien, nous pourrions obtenir un succès.
Donc, dans la catégorie de succès, nous pourrait obtenir le code 200 avec le texte OK.
Qu'est-ce que cela signifie?
Eh bien, tout est bon.
Vous avez fait une demande valide.
Voici une réponse valide.
Je suis en mesure de livrer exactement ce que vous vouliez.
>> Parfois, vous pourriez obtenir d'autres choses que vous ne verrez pas tout de suite
mais sont quelque peu échecs.
Ils sont appelés les redirections.
Il ya deux plus communs ici.
301 Permanently-- Déplacé ce que cela signifie essentiellement,
est la page est maintenant à un nouvel emplacement.
Il y vivra pour toujours.
Et la plupart des navigateurs vous rediriger automatiquement.
Donc, vous ne verrez jamais vraiment une 301, soit, sauf si vous êtes
utilisant un vraiment hors-of-date navigateur, éventuellement,
parce que la réponse 301 fait partie de le point, point, point de la réponse 301.
Il vous indique également où la nouvelle page est.
Et si la plupart des navigateurs simplement vous rediriger là,
en supposant que vous voulez y aller.
>> Parfois, vous aurez également 302 trouvés.
Et celui-ci vous fait pourrait encore voir de temps en temps.
Parfois pages se déplacent temporairement.
Donc, ça ne va pas être intégré dans la demande dire le navigateur
à changer de façon permanente tout moment il voit la demande que vous
faire pour le changer en quelque chose d'autre.
Donc vous pouvez voir 302 Trouvé, qui essentiellement
dit cette page vit ailleurs.
Mais il ne va pas il vivra éternellement.
Il finira probablement aller retour à l'endroit où vous pensez qu'il est.
>> Ensuite, vous aurez des choses comme les erreurs client.
Donc, ce sont ceux que vous avez probablement vu, maintenant.
Vous avez probablement pas vu les 200s ou les 300s,
mais vous êtes probablement familier avec les 400s.
Et voilà ce que nous allons parler à propos dans une seconde, 500s ainsi.
>> Vous pouvez voir 401 Unauthorized.
Habituellement, cela signifie que vous êtes essayant d'accéder à une page,
mais vous ne l'avez pas connecté.
Donc, vous essayez et aller à quelques profil ou quelque chose sur Facebook
ou vous essayez et l'accès some-- vous êtes au travail.
Vous essayez d'accéder à quelque chose sur l'Internet de votre travail,
mais vous n'êtes pas connecté.
Vous ne pouvez pas voir la page.
Vous pourriez obtenir un 401 non autorisé, qui nous signifie probablement
sera en mesure de satisfaire cette demande, mais vous devez d'abord vous connecter à le faire.
>> Inversement, vous pourriez obtenir 403 Interdit, ce qui est cela n'a pas vraiment
Peu importe si vous êtes connecté ou non.
Cette demande est pas autorisé.
La ressource existe sur le serveur.
Mais vous n'êtes pas autorisé à y accéder.
Ceci est habituellement fichiers internes qui vivre sur le serveur pour diverses raisons
mais ne sont pas destinés à être accessible depuis le monde extérieur,
et donc ils sont interdits.
Ils y vivent.
Je ne dis pas que je ne peux pas le trouver.
Mais je dis que je ne peux pas vous le donner.
Et il n'a pas d'importance si vous êtes connecté ou non.
Et puis bien sûr, la très commun 404 Not Found.
Le fichier ne existe pas sur le serveur.
Je tiens à satisfaire votre demande, mais je ne peux pas.
>> Vous voyez aussi parfois serveur erreurs, le plus commun qui est généralement
étant de 500 Internal Server Error, qui ne fait rien vous dire
du tout sur ce qui a mal tourné.
Mais il est pas vraiment vous faire une erreur dans votre demande.
Il est en fait le serveur défaillant pour fournir à la demande d'une certaine manière.
Donc, 500 est la réponse générale.
>> Vous verrez aussi quelque chose comme Service Unavailable,
qui je crois est le code 503.
Et la passerelle si Timeout-- vous déjà eu une page seulement
assis là chargement et le chargement et le chargement
et vous ne savez jamais si ça va charge et puis finalement il says-- juste
donne juste place.
Voilà une passerelle Timeout 504.
Le serveur voulait exécuter votre demande,
mais quelque chose a mal tourné sur le serveur de side--
pas sur votre side-- à Parce que ça d'être un problème.
Maintenant, nous pourrions finir l'histoire ici, mais ce que je vais effectivement faire maintenant
est que je vais ouvrir mon navigateur et vous montrer
comment vous pourriez être en mesure de voir certains de ces codes d'état
même si vous ne les voyez pas généralement.
Et nous allons le faire en prenant Un aperçu de certains outils de développement.
>> Tous droits Donc ici, je suis maintenant dans la fenêtre de mon navigateur.
Et je veux apprendre un peu plus sur ces requêtes HTTP.
Comment puis-je know-- certainement nous savons si un Page goes-- quand quelque chose va mal,
nous obtenons un 404.
Nous avons tous vu cela.
Nous ne devons pas pour illustrer cela.
Mais quelles sont les autres?
Et comment pourrions-nous voir ces demandes en action?
>> Donc, première chose que je vais faire est d'ouvrir les outils de développement.
Donc Developer Tools sont construits dans la plupart des navigateurs modernes
et nous permettent de voir les choses que nous ne le faisons pas autrement
see-- quelques informations supplémentaire de tri étant transmis sous notre web
demandes.
Je suis en utilisant Google Chrome ici.
Et pour ouvrir Developer Tools dans Chrome, vous appuyez simplement sur F-12,
et il va ouvrir vers le haut sur le côté.
Une fois que je tape la demande, je vais zoome afin que nous puissions voir ce qui se passe ici.
Mais ce que je vais faire dans mon navigateur BAR est-- et je zoome sur ici--
Je vais faire une demande à www.google.com.
Nous avons probablement tous fait cette demande avant.
Je vais appuyez sur Entrée.
>> Maintenant, ici dans mon développeur Outils, je ont choisi l'onglet Réseau.
Et vous remarquez beaucoup de choses ici.
Regardez these-- 200 OK, OK 200, certains de ces codes d'état à venir.
Je ne sais pas pourquoi je reçois 302 Trouvé.
Je ne savais pas que je verrais que l'un.
Mais remarquez essentiellement cette jolie beaucoup, en termes de mon request-- Google
Je fis un très simple demande de la page de Google.
Et dans le processus de livrer ma demande,
Google a apparemment fait beaucoup d'autres demandes sur mon compte.
>> Mais je me suis fait une requête GET pour Google la page et je vais avoir un lot de 200 OKs.
Je ne vois pas OK sur 200 mon écran, mais je suis en train de
beaucoup de demandes qui ont été faites.
Un de plus que je suis assez sûr est d'aller travailler
est-- pour ceux d'entre vous qui sont vraiment de la vieille école,
vous savez peut-être que Facebook était pas toujours à Facebook.com.
À ses débuts, il était au wwww.thefacebook.com.
Ils pourraient apparemment pas accéder à Facebook.com depuis un certain temps.
>> Et donc ce que je vais attendre ici est d'obtenir des informations.
Et nous verrons si cette casseroles.
Ce que je veux attendre ici est d'obtenir des informations
que Facebook a déplacé de façon permanente de thefacebook.com à Facebook.com.
Je suis donc attendre quelque part près du haut de mes demandes
plus dans mes Developer Tools pour obtenir une notification 301
que Facebook a déplacé de façon permanente.
Encore une fois, je ne vais pas voir 301 sur l'écran de mon navigateur.
Et parce qu'il est un 301, il est un mouvement permanent.
Mon navigateur, étant que il est un navigateur moderne,
va probablement rediriger moi de toute façon Facebook.com.
Mais nous allons voir ce qui se passe.
>> Et maintenant, je vais aller à thefacebook.com.
Et oui, il est tout en haut.
Il alla, mais il était là.
Permettez-moi de défiler vers le haut ici.
Juste ici au sommet.
Je fis une demande à thefacebook.com, et je me fais une réponse
que cette page a été déplacée de façon permanente.
Et puis ici est 307 une redirection interne.
Et c'est ce qui a fait Me déplacé à la beaucoup plus
www.facebook.com familier.
>> Donc, ces codes de réponse font encore arriver, même si nous ne les voyons pas.
Je ne vais pas illustrer 401, 403, 404,
parce que vous avez probablement déjà vu ceux à divers points.
Et 500, je serais juste genre de-- nous avions de la chance
si a obtenu un 500 parce que nous ne savons pas ce serveurs sont actuellement nulle part.
Mais ces codes font existe, et il existe un moyen
pour y accéder, même si nous ne le faisons pas voir de première main sur nos systèmes.
Je suis Doug Lloyd.
Ceci est CS50.