COLUMNA: Imos falar sobre outro protocol-- de Transferencia de Hipertexto Protocolo ou HTTP. Entón, nós xa falamos sobre IP e TCP en vídeos anteriores. E estes son os protocolos que ditan como información movementos de máquina para máquina e de programa para programa ou servizo ao servizo a través de internet, vía esta rede de terminais e máquinas. Pero isto non é xeralmente a imaxe, non? Normalmente cando enviamos información, o programa itself-- cando datos recibido, digamos, por exemplo, no correo electrónico a través de porto TCP 25 ou un solicitude de páxina web a través de porto 80, hai xeralmente un sistema de regras alí para procesar o que eu acabo de recibir. E HTTP é un exemplo de só un tal protocolo. O HTTP é o único protocolo de capa de aplicación que imos falar. Pero é outro conxunto das normas que ditan como a información debe ser transmitida e procesada a través de internet. En particular, o HTTP especifica exactamente como débese facer unha solicitude unha páxina web e exactamente como un servidor, unha máquina que aloxa páxinas web, entrega esta información volver aos clientes. Polo tanto, este protocolo non fai realmente ten nada que ver coa forma en que a información móvese o punto A ó punto B. É realmente o sistema de regras for-- é basicamente as regras do compromiso para traballar cunha páxina web, semellante a cando alguén ondas da súa man en ti, debería acenar de volta. Isto é unha especie de humano protocolo convencional. Protocolo HTTP só di que, se quere solicitar unha web páxina, asegurarse de da súa aparencia formato como isto-- tipo de formato como carta de negocios, por exemplo. E a resposta será semellante vir segundo este protocolo. Hai outra protocolos da capa de aplicación que non estamos indo a falar en vídeos. Pero estes inclúen cousas como o File Transfer Protocol, Simple Mail Transfer Protocol para enviar correos electrónicos, a distribución de datos Servizo, escritorio remoto Protocolo RDP, que úsase se quere acceder remotamente ordenador dende outro ordenador, XMPP, que é frecuentemente coñecido como Jabber ou chat, polo que este é o protocolo para a utilización de servizos de chat. E hai moitos, moitos, moitos outros. Entón, cada vez que está a usar un servizo, o servizo está esperando información para ser received-- petición para ser received-- nunha formato específico moi e é necesaria a voltar información de volta en particular, un formato moi ben. Entón, imos voltar á nosa ilustración de nós querendo falar coa internet. Entón, nós estamos contentos, e queremos para ir cats.com, non? Entón, se estamos só falando con cats.com, poderiamos dicir algo así como hey, Podo ver a súa páxina principal? E, probabelmente, cats.com responder, si, con certeza. Aquí vas. Entón, iso é unha especie humana pedir e respostas. O que isto se parece en HTTP? Ben, é realmente tipo de traduce moi limpa para algo así. Poderiamos dicir GET / HTTP / 1.1 cats.com do hospedeiro. Entón, basicamente o que estou facendo aquí é pedindo a páxina web www.cats.com/. Nós xeralmente omitir a barra hoxe en día, pero que sería só significa a páxina de cats.com. Ah, e por certo, eu vou estar usando a versión HTTP 1.1 para comunicarse con vostede. Isto é análogo ao tipo de dicindo, como, de feito, Eu vou estar falando en francés, ou, por certo, Eu vou estar falando en inglés. Isto é só o formato do protocolo. Tamén é 1,0, que é que normalmente non son máis usados. Entón, eu estou falando HTTP 1.1, e Gustaríame www.cats.com/. Por favor, obter iso por min. E despois hai outra información, demasiado-- a punto, punto, punto alí, cal é a información sobre que é tan cats.com sabería onde envialo. Pero estes son os dous tipo de pezas críticas no inicio dun HTTP request-- Así como cando se inicia un carta di, querida, en branco. Isto é moi semellante en espírito para iso. E se cats.com vai digo, oh, con certeza, aquí vai. Poden responder como isto-- Eu tamén estou respondendo. Tamén falo HTTP 1.1. A súa petición sexa aprobado, 200 Aceptar. O que está a piques de recibir é HTML e, a continuación, punto, punto, punto unha información adicional. E na parte inferior da solicitude é realmente o HTML, a linguaxe de marcado, o contido da páxina de inicio da cats.com. Entón, HTTP / 1.1-- Eu recoñezo o seu petición foi aceptada vía HTTP 1.1. A súa petición foi aprobado. Eu te podo dar o que quere, 200 Aceptar. Está a piques de recibir HTML. E entón aquí está a HTML que solicitou. Pero ás veces os nosos pedidos non facer sempre ir bastante segundo o planeado. Podo ver a súa páxina cats.html? Ben, o que se adoita dicir, nós non ten unha páxina cats.html, parecer medio irreal porque son cats.com. Pensas que eles terían cats.html. Pero Aceptar. Polo tanto, esta é unha especie de interacción humana convencional temos agora tivemos con cats.com. Como é que se traducen? Isto pode ser algo familiar para ti. Noso pedido parecía exactamente o mesmo, excepto en vez de estar barra estamos empezando agora cats.html. Entón agora o que basicamente toda esta solicitude está dicindo é por favor me dea www.cats.com/cats.html. Entón o anfitrión e medio parte desa liña superior non indicar con precisión que páxina estou pedindo. Pero cats.com neste caso non vai para ser capaz de responder positivamente. Eles non saben que estamos falando. E entón iso é algo que pode ter visto HTTP antes-- 1.1 404 Not Found. Eu non podería atopar o que estabas pedindo. By the way, eu estou indo darlle de volta un pouco de HTML, e, xeralmente, que o HTML é o contido dalgúns páxina 404. E no caso de cats.com, pode ser algúns gatos fermosos nunha cesta con a 404 rostro triste á beira deles, porque está indo a ser triste cando non obter páxina que busca. Iso é medio básico do que un Protocolo, as solicitudes de protocolo HTTP parece. Son moi semellante á forma como nós faría unha interacción similar en convencións só humanos pedindo algo e pon-lo de volta ou escribir un carta e esperando unha resposta carta nun formato particular. Iso é moi fermoso o que HTTP é só Canonicalização para todos os dispositivos que desexa acceder páxinas web, transferencias de hipertexto. Así, unha liña do formulario, este a método de solicitude HTTP versión branco, chámase liña de solicitude HTTP. É xeralmente o primeiro que é transmitida como parte dunha solicitude HTTP ou se está pedindo HTTP. É unha especie de gusto, como dixen, dicindo querida, branco na parte superior a súa carta. Saben que é escribir-lles unha carta. Entón iso é moi semellante para dicir, sei que están facendo unha solicitude HTTP e este é o formato específico están pedindo. Versión HTTP é probablemente sempre será HTTP / 1/1. 1.0 tamén existe pero non está realmente máis usado. Para fins de CS50, GET pode ser sempre o que está indo ser usar cando está en realidade facer solicitudes HTTP directas. Pero POST é outra opción que somos Non vou falar sobre iso agora. E, a continuación, petición de destino é cal páxina no servidor do servidor desexa obter. Como dixen, este nome de servidor é unha liña separada, normalmente a segunda liña da solicitude global. E así tomados en conxunto, o anfitrión nome e o destino solicitude especificar un específico recurso que está a ser buscado. No noso exemplo, 404 un segundo atrás, eu estaba pedindo de novo para www.cats.com, cats.com ser o anfitrión. E na miña liña de solicitude, Eu dixen /cats.html. Ese era o meu destino solicitude. Así, en xeral estaba pedindo a contido ou o recurso situado en www.cats.com/cats.html. E, a continuación, con base no feito existe o recurso e se o servidor pode entregar o recurso de acordo co cliente do solicitude, pode que varios códigos de estado de volta. Algúns deses códigos de estado que xa viu porque son parte da resposta. Algúns deles, 200 OK, son probablemente bastante silencioso. Probablemente nunca visto unha páxina de responder 200 Aceptar. Só obter a páxina. Non é como un erro 404, que normalmente é moi claro. Normalmente ver que di 404. Entón imos falar do que algúns deses códigos de estado pode ser. Unha vez máis, cando o servidor responde a nós, son vai responder estado da versión HTTP. Normalmente HTTP / 1.1. Cales son eses códigos de estado será? Ben, poderiamos obter un éxito. Así, na categoría de éxito, Pode obter o código 200 co texto Aceptar. O que significa isto? Ben, todo é bo. Fixo unha proposta válida. Aquí está a resposta válida. Eu era capaz de entregar exactamente o que quería. Ás veces pode obter outras cousas que non vai notar de inmediato pero son un pouco fallos. Son chamados de redireccións. Hai dous máis comúns aquí. 301 Permanently-- Movido o que iso significa, basicamente, é a páxina está agora nun novo lugar. Vai vivir alí para sempre. E a maioría dos navegadores automaticamente redirixido. Entón nunca realmente ver un 301, ou, a menos que é usando realmente un out-of-date navegador, posiblemente, porque a resposta 301 é parte o punto, punto, punto 301 da resposta. Tamén informa que a nova páxina é. E así a maioría dos navegadores só redireccionándoos-lo alí, supoñendo que quere ir máis alá. Ás veces, tamén vai recibir 302 atopados. E iso que realmente Aínda pode ver ocasionalmente. Ás veces, páxinas desprazarse temporalmente. Por iso, non vai ser construído en a petición dicindo ao navegador para cambiar permanentemente calquera momento ve a solicitude que facer para cambialo para outra cousa. Entón podes ver 302 Atopa, que basicamente di que esta páxina vive noutro lugar. Pero non vai vivir alí para sempre. Acabará probablemente ir de volta para onde pensa que é. Entón vai facer as cousas como erros de cliente. Entón, eses son os que Probablemente xa viu, agora. Probablemente non viu 200s ou 300s, pero probablemente está familiarizado cos 400s. E iso é o que imos falar en preto dun segundo, 500s ben. Podes ver 401 non autorizado. Normalmente, isto significa que é intentando acceder a unha páxina, pero aínda non está no sistema. Entón tentar ir a algún perfil ou algo en Facebook ou tentar e acceso some-- está no traballo. Está intentando acceder algo en internet do seu traballo, pero non está rexistrado. Non pode ver a páxina. Podes obter un 401 non autorizado, o que significa que, probablemente, será capaz de satisfacer esta solicitude pero primeiro ten que iniciar sesión para facelo. Por outra banda, pode que 403 Prohibida, que é realmente non importa se está conectado ou non. Esta petición non se admite. O recurso existe no servidor. Pero non ten permiso para acceder a ela. Este é normalmente ficheiros internos que vivir no servidor por varias razóns pero non se pretende que sexan acceder dende o mundo exterior, e por iso son prohibidos. Eles viven alí. Non estou dicindo que eu non podo atopalo. Pero eu estou dicindo que eu non podo dar a ti. E non importa se está dentro do sistema ou non. E, a continuación, por suposto, o moi común 404 Not Found. O ficheiro non existe no servidor. Gustaríame satisfacer a proposta, pero eu non podo. Tamén ve ás veces servidor erros, o máis común adoita sendo 500 Internal Server Error, que en realidade, non lle dicir nada en todo sobre o que deu errado. Pero non é, en realidade, está facendo un erro na súa solicitude. Realmente o servidor con fallo para cumprir a solicitude de algunha maneira. Así, 500 é a resposta xeral. Tamén verá algo como Service unavailable, que eu creo que é o código 503. E Timeout-- pasarela se Xa tivo unha páxina só sentir-se alí de carga e carga e carga e vostede non sabe se vai carga e, finalmente, el só says-- só desiste. Isto é unha pasarela 504 Timeout. O servidor quería realizar a súa solicitude, pero algo deu mal no servidor side-- non no seu side-- para provocar que sexa un problema. Agora, poderíamos rematar a historia aquí, pero o que eu estou indo realmente para facer agora é que eu vou abrir meu navegador e amosar-lle como pode ser capaz de ver algúns deses códigos de estado mesmo se xeralmente non velos. E imos facelo por tomar un ollo a algunhas ferramentas para desenvolvedores. Todo ben Entón aquí estou eu agora na miña xanela do navegador. E quero aprender un pouco máis sobre esas solicitudes HTTP. ¿Como sabe-- certamente sabemos si un páxina goes-- cando algo dá mal, temos un 404. Todos vimos isto. Non necesitamos para ilustrar isto. Pero o que son algúns outros? E como é que nós vemos estes pedidos en acción? Entón o primeiro que eu vou facer é abrir Developer Tools. Entón Developer Tools son construídas na maioría dos navegadores e nos permite ver as cousas que non facer o contrario see-- algunha información extra de sorte sendo transmitidos baixo o noso sitio peticións. Está a usar o Google Chrome aquí. E para abrir Ferramentas de Desenvolvemento en Chrome, que acaba de bater F-12, e que vai abrir Lo no lateral. Xa que eu escriba a petición, eu vou facer zoom para que poidamos ver o que está pasando aquí. Pero o que eu vou facer o meu navegador bar é-- e eu vou facer zoom sobre aqui-- Vou facer unha proposta para www.google.com. Todos probablemente feitos esta solicitude antes. Vou bater Intro. Agora, aquí no meu creador Ferramentas, eu escollín a ficha Rede. E notar unha morea de cousas aquí. Olhe these-- 200 OK, 200 OK, algúns destes códigos de estado chegando. Non sei por que estou a recibir 302 Found. Eu non sabía que eu ía ver iso. Pero, basicamente, entender que moito moito, en termos de meu request-- Google Eu fixen unha forma moi simple solicitude de páxina de Google. E no proceso de entregar a miña petición, Google aparentemente fixo unha morea doutras solicitudes no meu nome. Pero eu fixen unha proposta GET para Google páxina e estou a recibir un lote de 200 OKs. Non estou vendo en 200 OK miña pantalla, pero estou quedando unha gran cantidade de solicitudes que foron feitas. Máis un que eu son bonito seguro funcionará é-- para aqueles de vostedes que son realmente old-school, podes saber que Facebook era non sempre en Facebook.com. Nos seus primeiros días era en wwww.thefacebook.com. Eles aparentemente non podería acceder para Facebook.com por un bo tempo. E entón o que eu estou esperando aquí é obter información. E imos ver se este garimpa para fóra. O que eu estou esperando aquí é obter información que Facebook cambiou permanentemente de thefacebook.com para Facebook.com. Entón, eu estou esperando nalgún lugar na parte superior dos meus pedidos máis nos meus Ferramentas de Desenvolvemento para obter unha notificación 301 que Facebook cambiou permanentemente. Unha vez máis, eu non verei 301 na pantalla do meu navegador. E por un 301, é un movemento permanente. Meu navegador, sendo que é un navegador moderno, é probablemente vai redireccionar me para Facebook.com de calquera maneira. Pero imos ver que pasa. E agora eu vou ir thefacebook.com. E si, está alí na parte superior. El foi, pero estaba alí. Déixeme rolar para arriba aquí. Aquí na parte superior. Eu fixen unha proposta para thefacebook.com, e eu estou a recibir unha resposta que esta páxina foi movida permanentemente. E, a continuación, 307 é aquí redirección interno. E entón é iso que ten, de feito, me mudei para o máis www.facebook.com familiar. Entón, eses códigos de resposta facer aínda pasar, mesmo se non ve-los. Non vou ilustran 401, 403, 404, porque probablemente xa viu aqueles en varios puntos. E 500, eu estaría só tipo de-- teriamos sorte se ten un 500 porque non sabemos o que servidores están actualmente abaixo en calquera lugar. Pero estes códigos facer existen, e non hai un xeito para acceder a eles aínda que non facer velos de primeira man nos nosos sistemas. Eu son Doug Lloyd. Este é CS50.