ALTAVOZ: Hablemos de otra protocol-- la transferencia de hipertexto Protocolo, o HTTP. Así que hemos hablado de IP y TCP en los videos anteriores. Y esos son los protocolos que dictan cómo la información se mueve de máquina a máquina y de programa a programa o servicio para dar servicio a través de Internet, a través de esta red de routers y máquinas. Pero que por lo general no es toda la imagen, ¿verdad? Por lo general, cuando enviamos información, el programa itself-- cuando los datos son recibida, digamos, por ejemplo, en el correo electrónico a través del puerto TCP 25 o una página Web petición a través del puerto 80, por lo general hay un sistema de reglas que hay para procesar lo que acabo de recibir. Y HTTP es un ejemplo de sólo un protocolo de este tipo. HTTP es el único protocolo de capa de aplicación que vamos a hablar. Pero es otro conjunto normas que dictan cómo de la información va a ser transmitida y procesada a través de Internet. En particular, HTTP especifica exactamente cómo hay que hacer una solicitud de una página web y exactamente cómo un servidor, una máquina que aloja páginas web, proporciona esa información respaldar a los clientes. Así que este protocolo no en realidad tienen nada que ver con cómo la información se mueve desde el punto A al punto B. Es realmente el sistema de reglas para-- es básicamente la normativa de compromiso para trabajar con una página web, similar a cuando alguien olas suerte en usted, se supone que la onda de vuelta. Eso es una especie de Protocolo humana convencional. Protocolo HTTP sólo dice, si desea solicitar una web página, asegúrese de que sus miradas de formato así- tipo de formato como una carta de negocios, por ejemplo. Y la respuesta será similar llegado acuerdo con este protocolo. Hay otra protocolos de capa de aplicación que nosotros no vamos a hablar en los videos. Pero éstas son cosas como el Protocolo de transferencia de archivos, Simple Mail Transfer Protocol para el envío de correos electrónicos, la distribución de datos Servicio, Escritorio remoto Protocolo, RDP, que se utiliza si quiere acceder de forma remota su equipo desde otro equipo, XMPP, que es con frecuencia conocido como Jabber o el chat, por lo que este es el protocolo para el uso de los servicios de chat. Y hay muchos, muchos, muchos otros. Así que cada vez que usted está usando un servicio, el servicio está a la espera de información para ser received-- una solicitud ser received-- en una formato en particular muy y es necesario para devolver información de nuevo en un formato muy particular también. Así que vamos a volver a nuestra ilustración de nosotros querer hablar con internet. Así que estamos contentos y queremos ir a cats.com, ¿verdad? Así que si sólo estamos hablando con cats.com, podríamos decir algo como bueno, puedo ver tu página de inicio? Y cats.com probablemente lo hará responder, sí, claro. Aqui tienes. Así que eso es una especie humana de preguntar y respuestas. ¿Qué es lo que se parecen en HTTP? Bueno, en realidad un poco traduce bastante limpia a algo como esto. Podríamos decir GET / HTTP / 1.1 desde cats.com anfitrión. Así que básicamente lo que estoy haciendo aquí es pidiendo la página web www.cats.com/. Por lo general, omitimos la barra hoy en día, pero que lo haría solo significa la página web de cats.com. Ah, y por cierto, me voy para ser utilizando la versión HTTP 1.1 para comunicarse con usted. En cierto modo es análogo a diciendo, como, por cierto, Voy a estar hablando en francés, o por cierto, Yo voy a estar hablando en Inglés. Eso es sólo el formato del protocolo. También es 1,0, que es no se utiliza comúnmente más. Así que estoy hablando HTTP 1.1, y Me gustaría www.cats.com/. Por favor, póngase eso por mí. Y luego está la otra información, también-- el punto, punto, punto allí, que es información acerca de que eres tan cats.com sabría dónde enviarlo. Pero estos son los dos tipo de partes críticas Al principio de un HTTP request-- al igual que cuando se inicia un carta que dices, querido, en blanco. Esto es muy similar en espíritu a eso. Y si cats.com va a dice, oh, sí, aquí tienes. Ellos podrían responder como esto-- También estoy respondiendo. También hablo de HTTP 1.1. Su solicitud es aprobada, 200 OK. Lo que usted está a punto de recibir es HTML y después dot, dot, dot alguna información adicional. Y en la parte inferior de la solicitud es en realidad el HTML, el lenguaje de marcas, la el contenido de la página principal del cats.com. Así HTTP / 1.1-- Reconozco su solicitud fue aceptada a través de HTTP 1.1. Se aprobó su solicitud. Puedo darte lo que quieres, 200 OK. Estás a punto de recibir HTML. Y entonces aquí está la HTML que usted solicitó. Pero a veces nuestras peticiones no lo hacen siempre van muy de acuerdo al plan. ¿Puedo ver su página cats.html? Bueno, ¿y si ellos dicen, que no tienen una página cats.html, que parece tipo de irreal porque son cats.com. Uno pensaría que tendrían cats.html. Pero está bien. Así que esto es una especie de la interacción humana convencional ahora hemos tenido con cats.com. ¿Cómo se traduce? Esto podría ser algo familiar para usted. Nuestra petición era exactamente la misma, excepto que en lugar de obtener slash ahora estamos llegando cats.html. Así que ahora lo que básicamente esto toda solicitud está diciendo es por favor déme www.cats.com/cats.html. Así que el anfitrión y el medio parte de esa línea superior no indican con precisión lo que la página que estoy pidiendo. Pero cats.com en este caso no se va para ser capaz de responder de manera positiva. Ellos no saben que estamos hablando. Y así que esto es algo que usted puede ser que tenga visto antes-- HTTP 1.1 404 Not Found. No pude encontrar lo que que estaba pidiendo. Por cierto, voy a darle volver algo de HTML, y por lo general que el HTML es el contenido de alguna página 404. Y en el caso de cats.com, es probablemente algunos gatos lindos en una cesta con un 404 cara triste al lado de ellos, porque tú vas a ser triste cuando usted no recibe la página que estabas buscando. Eso es algo de lo básico de lo que es un protocolo, las solicitudes de protocolo HTTP parece. Son muy similar a la forma en que haría una interacción similar en las convenciones simplemente humanos Preguntando por algo y recuperarlo o escribir una letra y esperando una respuesta letra en un formato particular. Eso es más o menos lo HTTP es sólo canonicalizing para todos los dispositivos que deseen acceso páginas web, las transferencias de hipertexto. Así que una línea de la forma, el presente Método versión petición HTTP de destino, se llama una línea de petición HTTP. Por lo general es la primera cosa que es transmitida como parte de una petición HTTP o si usted está pidiendo HTTP. Es algo así como, como he dicho, diciendo: querida, espacio en blanco en la parte superior de su carta. Ellos saben que eres escribir una carta. Así que esto es muy similar a decir, lo sé que están haciendo una petición HTTP y este es el formato particular que están pidiendo. Versión HTTP es probablemente siempre va a ser HTTP / 1.1. 1.0 también existe, pero no es muy utilizado ya. Para los propósitos de CS50, GET es probablemente siempre lo que va a ser utilizando, cuando en realidad estás hacer peticiones HTTP directas. Pero POST es otra opción que estamos No vamos a hablar en este momento. Y luego de solicitud-objetivo lo que la página en el servidor del anfitrión que le gustaría conseguir. Como ya he dicho, que el nombre de host es una línea separada, por lo general la segunda línea de la solicitud en general. Y así, en conjunto, el anfitrión nombre y el objetivo petición especificar una específica se busca de recursos. En nuestro ejemplo 404 hace un segundo, estaba pidiendo de nuevo por www.cats.com, cats.com ser el anfitrión. Y en mi línea de petición, Dije /cats.html. Ese era mi objetivo petición. Así que en general me estaba pidiendo la contenidos o el recurso se encuentra en www.cats.com/cats.html. Y a continuación, en función de si el recurso existe y si el servidor puede entregar el recurso de conformidad con el cliente de Si lo desea, puede obtener diversos códigos de estado de la espalda. Algunos de estos códigos de estado que has visto porque son parte de la respuesta. Algunos de ellos, 200 OK, son probablemente bastante silencioso. Usted probablemente nunca ha visto una página responde 200 OK. Usted acaba de obtener la página. No es como un error 404, que suele ser bastante claro. Generalmente, usted verá que dice 404. Así que vamos a hablar de lo que algunos de esos códigos de estado podría ser. Una vez más, cuando el servidor responde a nosotros, que son va a responder estado de la versión de HTTP. Por lo general, HTTP / 1.1. ¿Cuáles son estos códigos de estado que van a ser? Bueno, podríamos obtener un éxito. Así que en la categoría de éxito, podría obtener el código 200 con el texto OK. ¿Qué significa esto? Bueno, todo es bueno. Usted ha hecho una solicitud válida. Aquí hay una respuesta válida. Tuve la oportunidad de entregar exactamente lo que quería. Algunas veces usted puede conseguir otras cosas que no se dará cuenta de inmediato pero son algo fracasos. Se llaman redirecciones. Hay dos más comunes aquí. 301 Movido Permanentemente-- lo que esto significa, básicamente, es la página se encuentra ahora en una nueva ubicación. Se va a vivir allí para siempre. Y la mayoría de los navegadores automáticamente le redirigir. Por lo que usted nunca ve un 301, o bien, a menos que seas utilizando una realidad fuera de la fecha navegador, posiblemente, porque la respuesta 301 es parte de el punto, punto, punto de la respuesta 301. También le dice que la nueva página es. Y así, la mayoría de los navegadores simplemente le redirigirá allí, asumiendo que usted quiere ir allí. A veces, también obtendrá 302 encontrados. Y esta realidad aún podría ver de vez en cuando. A veces las páginas se desplazan temporalmente. Por lo tanto, no va a ser construido en la solicitud diciendo al navegador para cambiar permanentemente cualquier momento que considera la solicitud que hacer para cambiarlo a otra cosa. Así que usted puede ver 302 Encontrado, que básicamente dice esta página vive en otro lugar. Pero no va a vivir allí para siempre. Con el tiempo, probablemente vaya de nuevo a donde usted piensa que es. Luego le ponen las cosas como errores de cliente. Así que estos son los que he Probablemente visto, ahora. Usted probablemente no ha visto los 200s o 300s, pero es probable que estés familiarizados con los 400s. Y eso es lo que vamos a hablar sobre en un segundo, 500s también. Es posible que vea 401 no autorizado. Por lo general, esto significa que eres tratando de acceder a una página, pero no ha iniciado sesión. Así que tratar de ir a algún perfil o algo en Facebook o intenta y acceso some-- estás en el trabajo. Usted está tratando de acceder a algo en Internet de su trabajo, pero usted no está conectado. No se puede ver la página. Usted puede obtener un 401 no autorizado, que indica que probablemente será capaz de satisfacer esta petición, pero primero tienes que entrar para hacerlo. Por el contrario, podría obtener 403 Forbidden, que es en realidad no importa si está conectado o no. No se permite esta petición. El recurso existe en el servidor. Pero no se le permite acceder a él. Esto es por lo general los archivos internos que vivir en el servidor, por diversas razones pero no se pretende que sean visitada del mundo exterior, y por lo que está prohibido. Viven allí. No estoy diciendo que no puedo encontrarlo. Pero yo digo que no puedo dártelo. Y no importa si está conectado o no. Y luego, por supuesto, el muy común 404 Not Found. El archivo no existe en el servidor. Quisiera satisfacer su petición, pero no puedo. También a veces ves servidor errores, el más común en general siendo 500 Internal Server Error, que en realidad no te dicen nada en absoluto sobre lo que ha ido mal. Pero no es en realidad hacer un error en su solicitud. En realidad es el servidor en su defecto para cumplir con la solicitud de alguna manera. Así que 500 es la respuesta general. También verá algo como Servicio no disponible, que creo que es el código 503. Y Gateway Timeout-- si ¿Alguna vez ha tenido una página sentarse allí la carga y carga y de carga y nunca se sabe si va a carga y luego con el tiempo se acaba says-- simplemente se da por vencido. Esa es una puerta de enlace 504 de tiempo de espera. El servidor quería ejecutar su solicitud, pero algo salió mal en el side-- servidor no en su side-- a causa que para ser un problema. Ahora, podríamos terminar la historia aquí, pero lo que de hecho voy a hacer ahora es que me voy a abrir mi navegador y le muestran cómo es posible que pueda ver algunos de estos códigos de estado Incluso si usted no tiene generalmente los ve. Y nosotros vamos a hacer que al tomar Un vistazo a algunas herramientas de desarrollo. Está bien Así que aquí estoy ahora en mi ventana del navegador. Y quiero aprender un poco más información sobre estas peticiones HTTP. ¿Cómo puedo sé-- ciertamente sabemos si un página goes-- cuando algo va mal, obtenemos un 404. Todos hemos visto eso. No necesitamos para ilustrar esto. Pero ¿cuáles son algunos otros? ¿Y cómo veríamos estas peticiones en la acción? Así que lo primero que voy a hacer es abrir Herramientas de Desarrollo. Así Herramientas de Desarrollo se construyen en la mayoría de los navegadores modernos y nos permiten ver las cosas que nosotros no hacemos lo contrario ver-- alguna información extra clase de siendo transmitida debajo de nuestra web peticiones. Estoy usando Google Chrome aquí. Y para abrir Herramientas de Desarrollo en Chrome, que acaba de golpear F-12, y que va a abrir hacia arriba en el lado. Una vez que escribo la solicitud, voy el zoom para que podamos ver lo que está pasando aquí. Pero, ¿qué voy a hacer en mi navegador Bar es-- y voy a zoom en más aquí-- Voy a hacer una petición a www.google.com. Todos hemos hecho, probablemente, esta solicitud antes. Voy a pulsar Enter. Ahora, aquí en mi desarrollador Herramientas, he elegido la ficha Red. Y te das cuenta de muchas cosas aquí. Mira these-- 200 OK, OK 200, algunos de estos códigos de estado subiendo. No sé por qué estoy recibiendo 302 encontrados. No me di cuenta que vería esa. Pero básicamente notar que muy mucho más, en términos de mi request-- Google Hice una muy simple solicitud de la página de Google. Y en el proceso de la entrega de mi pedido, Google aparentemente ha hecho un montón de otras peticiones en mi nombre. Pero he hecho una petición GET para Google de página y que estoy recibiendo una gran cantidad de 200 aprueba. No estoy viendo 200 OK en la pantalla de mi, pero me estoy haciendo una gran cantidad de solicitudes que se han hecho. Uno más que estoy bastante Seguro que va a trabajar es-- para aquellos de ustedes que son realmente de la vieja escuela, sepáis que Facebook era no siempre en Facebook.com. En sus primeros días era en wwww.thefacebook.com. Al parecer, no podían conseguir el acceso a Facebook.com durante bastante tiempo. Y así lo que estoy esperando aquí es obtener información. Y veremos si esto sale bien. Lo que estoy esperando aquí es para obtener información que Facebook se ha movido de forma permanente desde thefacebook.com a Facebook.com. Así que estoy esperando en algún lugar cerca de la parte superior de mis peticiones otra vez en mis Herramientas de Desarrollo para obtener una notificación 301 que Facebook se ha movido de forma permanente. Una vez más, no voy a ver 301 en la pantalla de mi navegador. Y porque es un 301, es un movimiento permanente. Mi navegador, siendo que es un navegador moderno, está probablemente va a redirigir me Facebook.com todos modos. Pero vamos a ver qué pasa. Y ahora voy a ir a thefacebook.com. Y sí, ahí está a la derecha en la parte superior. Se fue, pero estaba ahí. Permítanme desplazo hasta aquí. Aquí mismo, en la parte superior. Hice una solicitud para thefacebook.com, y yo estoy recibiendo una respuesta que esta página se ha movido de forma permanente. Y entonces aquí es 307 una redirección interna. Y así, esto es lo que tiene en realidad me trasladó a la mucho más www.facebook.com familiar. Así que estos códigos de respuesta hacen todavía pasar, incluso si no los vemos. no voy a ilustrar 401, 403, 404, porque lo que has visto aquellos en varios puntos. Y 500, sólo quiero ser tipo de-- que tendríamos suerte si tiene un 500, porque no sabemos lo que servidores están actualmente en ninguna parte. Pero estos códigos hacen existe, y hay una manera de para acceder a ellos, incluso si no lo hacemos ver de primera mano en nuestros sistemas. Soy Doug Lloyd. Esto es CS50.