1 00:00:00,000 --> 00:00:02,620 [Powered by Google Translate] [Semana 7, continuación] 2 00:00:02,620 --> 00:00:05,090 [David J. Malan, Harvard University] 3 00:00:05,090 --> 00:00:07,780 [Esta es CS50.] [CS50.TV] 4 00:00:07,780 --> 00:00:09,810 Está bien. Welcome Back. Esto es CS50, 5 00:00:09,810 --> 00:00:12,100 y este es el fin de semana 7. 6 00:00:12,100 --> 00:00:15,460 Así que una de estas pequeñas cosas estúpidas que va alrededor de la Internet 7 00:00:15,460 --> 00:00:24,080 y sorbió, y ahora debe hacer un poco de sentido geeky para ti. 8 00:00:24,080 --> 00:00:28,330 Bueno, era más divertido con este tipo de lo que era para ustedes. 9 00:00:28,330 --> 00:00:32,619 Hablando de eso, bien, chicos, 10 00:00:32,619 --> 00:00:42,550 hoy es el cumpleaños de Nate. 11 00:00:42,550 --> 00:00:46,630 Para que te hagas una idea de lo bien que Nate y yo somos 12 00:00:46,630 --> 00:00:50,140 en el desarrollo web basada en la clase del lunes y se basa ahora en esto, 13 00:00:50,140 --> 00:00:53,170 Pensé que tire hacia arriba la página de Nate casa, si usted no lo ha visto todavía. 14 00:00:53,170 --> 00:00:57,020 Esto aquí ia Nate HTML. 15 00:00:57,020 --> 00:00:59,380 Así que ver a su código fuente si quieres ver cómo se hace esto, y Nate, 16 00:00:59,380 --> 00:01:02,250 si pudiera avergonzar a sólo brevemente, el personal que tienes un poco de algo 17 00:01:02,250 --> 00:01:06,080 si te gustaría compartir un postre con algunos de los chicos de la clase aquí. 18 00:01:06,080 --> 00:01:10,150 Si a usted le gustaría venir para abajo. 19 00:01:10,150 --> 00:01:14,350 Todos ustedes aplauden y están muy bien, pero no hay nadie sentado en cualquier lugar cerca de Nate, 20 00:01:14,350 --> 00:01:17,560 por alguna razón, en esa zona de nuevo. 21 00:01:17,560 --> 00:01:24,020 Así que tal vez usted puede encontrar algunas personas a disfrutar de estos con. 22 00:01:24,020 --> 00:01:33,380 Happy Birthday, Nate. 23 00:01:33,380 --> 00:01:37,660 >> Holas adicionales: Mostramos un par de clips de nuestros estudiantes CS50x. 24 00:01:37,660 --> 00:01:39,710 Si a usted le gustaría ver quién más está en el mundo 25 00:01:39,710 --> 00:01:41,850 que está siguiendo, usted puede dirigirse a la siguiente dirección URL, 26 00:01:41,850 --> 00:01:45,780 donde José, uno de nuestros TFS, ha creado un montaje de tipo 27 00:01:45,780 --> 00:01:50,290 de todos los que han venido presentando estos videos, entre ellos Rick Astley. 28 00:01:50,290 --> 00:01:53,010 Y si se desplaza a través de estos, es realmente muy inspirador 29 00:01:53,010 --> 00:01:56,890 ver la diversidad de países y ciudades desde donde la gente está de llamada. 30 00:01:56,890 --> 00:02:00,830 Así que si quieres echar un vistazo a eso, que será de hasta hasta el final del semestre. 31 00:02:00,830 --> 00:02:05,370 Hoy continuamos nuestra mirada en la web, programación web, HTML y similares, 32 00:02:05,370 --> 00:02:08,280 y también almorzar venir este viernes 33 00:02:08,280 --> 00:02:11,360 si lo desea, y sobre todo, no lo han hecho antes. 34 00:02:11,360 --> 00:02:13,630 El tema de este viernes será el cumpleaños de Nate, 35 00:02:13,630 --> 00:02:15,700 así que si usted quisiera tener almuerzo de cumpleaños con Nate 36 00:02:15,700 --> 00:02:17,500 y otros, algunos de nuestros amigos de la industria, 37 00:02:17,500 --> 00:02:19,300 por favor diríjase a la dirección allí. 38 00:02:19,300 --> 00:02:22,510 El espacio, como siempre, es limitada. También, si lo has olvidado, 39 00:02:22,510 --> 00:02:26,460 darse cuenta de que la próxima semana se cumple el plazo para el problema de conjunto 4 de búsqueda del tesoro, 40 00:02:26,460 --> 00:02:30,070 por lo que tras recuperar todos esos archivos JPEG de card.raw, 41 00:02:30,070 --> 00:02:32,880 usted y sus compañeros de sección, si lo desea, puede intentar fotografiar 42 00:02:32,880 --> 00:02:36,100 como muchos de los científicos de la computación de que la tarjeta de memoria como sea posible, 43 00:02:36,100 --> 00:02:39,070 y usted y su sección a continuación, va a ganar un fabuloso premio. 44 00:02:39,070 --> 00:02:44,470 Refiérase a la especificación del conjunto de procesadores 4 en cuanto a qué presentar y cuándo. 45 00:02:44,470 --> 00:02:47,650 También, si usted desea tener su obra inmortalizada 46 00:02:47,650 --> 00:02:51,400 en la página web de la asignatura y su historia de la ropa, 47 00:02:51,400 --> 00:02:54,010 Sabemos que eres bienvenido para empezar a presentar diseños 48 00:02:54,010 --> 00:02:57,180 Para este año las camisetas y sudaderas y similares. 49 00:02:57,180 --> 00:02:59,200 Haremos nuestro mejor esfuerzo para incluir a todos los que podamos, 50 00:02:59,200 --> 00:03:01,440 pero vamos a tener algunos miembros del personal de revisión de todos los diseños 51 00:03:01,440 --> 00:03:04,180 para asegurarse de que son compatibles con las especificaciones, 52 00:03:04,180 --> 00:03:07,500 y luego elige generalmente un puñado de ellas para ser expuestas. 53 00:03:07,500 --> 00:03:10,620 Así que si usted es el tipo de construcción, sólo sé que los requisitos 54 00:03:10,620 --> 00:03:14,030 para los gráficos PNG son, por lo menos 200 DPI, 55 00:03:14,030 --> 00:03:16,520 no debe ser más de 4000 x 4000 pixeles, 56 00:03:16,520 --> 00:03:19,010 y no más de 10 MB, pero le invitamos a usar cosas como 57 00:03:19,010 --> 00:03:22,430 Photoshop o GIMP o varios programas de diseño gráfico, de 58 00:03:22,430 --> 00:03:24,590 lo que tengas a tu disposición. 59 00:03:24,590 --> 00:03:28,280 >> También en el horizonte es el proyecto final. El proyecto final es realmente la culminación de 50 años, 60 00:03:28,280 --> 00:03:30,560 por lo cual todas las tareas en curso, 61 00:03:30,560 --> 00:03:33,170 es tu oportunidad de realmente hacer su propia cosa. 62 00:03:33,170 --> 00:03:35,280 Y eso puede ser simplemente para hacer algo para la diversión, 63 00:03:35,280 --> 00:03:38,160 que puede ser para resolver un problema acuciante su grupo de alumnos tiene, 64 00:03:38,160 --> 00:03:40,980 por alguna nueva página web, un mecanismo para la nueva colección de datos. 65 00:03:40,980 --> 00:03:43,420 Puede ser una aplicación móvil para Android, para iOS. 66 00:03:43,420 --> 00:03:46,030 Realmente, el cielo es el límite, y, a lo largo de las próximas semanas 67 00:03:46,030 --> 00:03:50,900 mientras hacemos la transición de C a idiomas de alto nivel como PHP y JavaScript, 68 00:03:50,900 --> 00:03:55,150 usted se encontrará cada vez más familiarizados con algunas técnicas del mundo real, 69 00:03:55,150 --> 00:03:57,800 algunas herramientas del mundo real, y como complemento a que, 70 00:03:57,800 --> 00:04:00,170 Sabemos que el curso tiene una historia de seminarios, 71 00:04:00,170 --> 00:04:02,880 por lo que en las semanas siguientes, algunos miembros del personal docente 72 00:04:02,880 --> 00:04:06,160 y amigos nuestros desde el campus ofrecerá seminarios optativos 73 00:04:06,160 --> 00:04:08,540 que van más allá de lo que normalmente se hace en la sección 74 00:04:08,540 --> 00:04:11,090 para presentarle a cosas como la programación Android, 75 00:04:11,090 --> 00:04:13,450 para presentarle a cosas como iOS programación 76 00:04:13,450 --> 00:04:15,950 o más avanzadas técnicas de desarrollo Web. 77 00:04:15,950 --> 00:04:17,970 Hay toda una historia de estas ya en línea. 78 00:04:17,970 --> 00:04:25,000 Si usted va a cs50.net/seminars, hemos estado haciendo esto desde hace algunos años, 79 00:04:25,000 --> 00:04:28,740 y verás que archivan aquí con archivos PDF y videos y similares 80 00:04:28,740 --> 00:04:33,090 son videos de varias docenas de seminarios. 81 00:04:33,090 --> 00:04:37,380 El año pasado, por ejemplo, tuvimos un seminario sobre sobresalir en sus entrevistas técnicas, 82 00:04:37,380 --> 00:04:40,980 si en realidad estás mirando para salir y hacer una pasantía o actuación a tiempo completo. 83 00:04:40,980 --> 00:04:43,450 Desarrollo de Windows Mobile, Android desarrollo, Google Maps, 84 00:04:43,450 --> 00:04:47,700 API, CSS, desarrollando para el BlackBerry, Emacs. 85 00:04:47,700 --> 00:04:52,610 De verdad, te invitamos a echar un vistazo a cualquiera de estos seminarios a su conveniencia. 86 00:04:52,610 --> 00:04:57,080 Y vamos a celebrar unas nuevas este semestre, también. 87 00:04:57,080 --> 00:04:59,020 >> Entonces, ¿qué es continuar con el proyecto final? 88 00:04:59,020 --> 00:05:01,090 Bueno, en primer lugar, a pesar de que esta fecha es algo inminente, 89 00:05:01,090 --> 00:05:06,460 esto es sólo una oportunidad para empezar a pensar en el proyecto final bastante realista. 90 00:05:06,460 --> 00:05:10,550 Sabemos sólo el comienzo de algo de lo que todavía va a estar cubriendo en el curso, 91 00:05:10,550 --> 00:05:13,470 HTML, PHP y similares, pero todos estamos familiarizados con la Web, 92 00:05:13,470 --> 00:05:16,270 y el sesgo de esta conversación hacia la Web sólo porque 93 00:05:16,270 --> 00:05:18,380 la mayoría de la gente termina haciendo basados ​​en la web los proyectos finales, 94 00:05:18,380 --> 00:05:20,260 pero que no es en absoluto necesaria. 95 00:05:20,260 --> 00:05:22,260 Uso de C está bien, el objetivo de C, Java, 96 00:05:22,260 --> 00:05:25,350 cualquier otro idioma que sepa o quiera saber es muy fina. 97 00:05:25,350 --> 00:05:29,370 Sin embargo, para sacarle jugo al principio, vamos a esperar la presentación de una propuesta preliminar 98 00:05:29,370 --> 00:05:33,520 que, por el formato PDF en el sitio web, que ahora está en cs50.net, 99 00:05:33,520 --> 00:05:36,080 y en la parte superior izquierda verás proyecto final 100 00:05:36,080 --> 00:05:38,920 es la especificación para el proyecto final, 101 00:05:38,920 --> 00:05:41,470 y en que hay detalles sobre la propuesta preliminar y similares. 102 00:05:41,470 --> 00:05:44,760 Todo se reduce más o menos abajo a un correo electrónico a su compañero de enseñanza 103 00:05:44,760 --> 00:05:48,450 simplemente entablar una conversación con él o ella acerca de lo que estás pensando. 104 00:05:48,450 --> 00:05:52,510 En projects.cs50.net es un repositorio de ideas de la gente en el campus 105 00:05:52,510 --> 00:05:54,480 si usted está luchando para llegar a una idea, 106 00:05:54,480 --> 00:06:01,140 y manual.cs50.net/APIs es un repositorio de enlaces a las API. 107 00:06:01,140 --> 00:06:06,710 >> ¿Cuál es, sin embargo, es un API? 108 00:06:06,710 --> 00:06:09,790 ¿Qué es un API? Lo he dicho por lo menos dos veces, 109 00:06:09,790 --> 00:06:12,640 de acuerdo con las transcripciones de las últimas semanas. 110 00:06:12,640 --> 00:06:17,050 ¿Qué es eso? [Estudiante, ininteligible] 111 00:06:17,050 --> 00:06:19,340 >> Bien, bien. Así que algo interfaz de programación. 112 00:06:19,340 --> 00:06:22,710 Interfaz de programación de aplicaciones, y esto puede tomar varias formas, 113 00:06:22,710 --> 00:06:25,850 pero lo que esto se reduce realmente reduce a código 114 00:06:25,850 --> 00:06:29,660 que alguien hs escrito o datos de que alguien más ha recogido 115 00:06:29,660 --> 00:06:33,670 que se pone a disposición de alguna manera programática. 116 00:06:33,670 --> 00:06:36,630 Se puede escribir código en C, PHP, Python, Ruby, 117 00:06:36,630 --> 00:06:38,760 cualquiera que sea el idioma de su elección normalmente es, 118 00:06:38,760 --> 00:06:42,240 y de alguna manera se puede aprovechar la funcionalidad de otra persona 119 00:06:42,240 --> 00:06:44,440 o algún otro conjunto de datos. 120 00:06:44,440 --> 00:06:47,210 Por ejemplo, si voy a este enlace aquí, 121 00:06:47,210 --> 00:06:50,750 y verás un par de enlaces en la página siguiente 122 00:06:50,750 --> 00:06:56,093 por lo cual tenemos APIs propio CS50, que son muy centrada en Harvard, y luego de terceros API. 123 00:06:56,930 --> 00:06:59,300 Entre las API de terceros son cosas realmente útiles 124 00:06:59,300 --> 00:07:01,780 como ser capaz de enviar a la gente a los SMS, 125 00:07:01,780 --> 00:07:04,690 ser capaz de recibir mensajes de texto SMS de la gente. 126 00:07:04,690 --> 00:07:08,160 Y cosas por el estilo que pueda tener ni idea de cómo poner en práctica a ti mismo, 127 00:07:08,160 --> 00:07:10,440 pero gracias a los servicios, algunos, libre y comercial alguna 128 00:07:10,440 --> 00:07:14,000 usted puede construir sobre esos y hacer algo de su interés. 129 00:07:14,000 --> 00:07:16,990 Entre las API CS50 son estas cosas centradas en el campus como 130 00:07:16,990 --> 00:07:21,480 Cursos de Harvard, energía, alimentos, eventos, mapas, noticias, tweets y Shuttleboy propio, 131 00:07:21,480 --> 00:07:23,940 y estas son las API que mirar un poco algo como esto. 132 00:07:23,940 --> 00:07:26,990 >> Déjame sacar la API HarvardFood. 133 00:07:26,990 --> 00:07:30,620 Si alguna vez has estado a la página web de HUD, usted probablemente ha estado allí 134 00:07:30,620 --> 00:07:35,410 para ver lo que hay para cenar o para ver lo que el horario es para algunos d-hall. 135 00:07:35,410 --> 00:07:38,000 Bueno, no es particularmente fácil de navegar, 136 00:07:38,000 --> 00:07:41,100 y así lo hicimos hace un tiempo se le escribimos software, 137 00:07:41,100 --> 00:07:47,270 que pasa a ser en PHP, que en realidad la pantalla raspa la totalidad del sitio web de HUD. 138 00:07:47,270 --> 00:07:51,400 Para detectar algo rasguño significa escribir un programa en un lenguaje como PHP 139 00:07:51,400 --> 00:07:55,270 que pretende ser un navegador, aunque es posible que se ejecute en un intérprete de comandos, 140 00:07:55,270 --> 00:07:58,180 que pretende ser un navegador, se conecta a un sitio web, 141 00:07:58,180 --> 00:08:01,480 descarga el HTML, el lenguaje en que está escrito, 142 00:08:01,480 --> 00:08:04,300 y luego se lee, o más específicamente, se analiza 143 00:08:04,300 --> 00:08:06,140 de arriba a abajo, de izquierda a derecha. 144 00:08:06,140 --> 00:08:08,870 Y lo que hicimos fue que escribimos nuestro código, de tal manera que 145 00:08:08,870 --> 00:08:12,910 en cualquier momento que vio algo en que HTML que se parecía a algo en el menú, 146 00:08:12,910 --> 00:08:16,470 como hamburguesas, entonces tendríamos que importar a nuestra propia base de datos. 147 00:08:16,470 --> 00:08:20,410 Y cada vez que vimos el contenido nutricional, tendríamos que importar a nuestra propia base de datos. 148 00:08:20,410 --> 00:08:23,090 Y lo que hizo fue aprovechar el hecho de que el sitio web de HUD, 149 00:08:23,090 --> 00:08:27,280 aunque podría ser un poco un desafío para nosotros los humanos a navegar 150 00:08:27,280 --> 00:08:32,559 debajo de la capucha, todo el HTML es generada por sus propios programas informáticos. 151 00:08:32,559 --> 00:08:35,159 Así que todo su código HTML, aunque al principio puede parecer complicado, 152 00:08:35,159 --> 00:08:38,026 como la mayoría de sitios web debajo de la campana se sigue un patrón. 153 00:08:38,260 --> 00:08:40,799 Así que nos pasamos un par de horas averiguar que el patrón 154 00:08:40,799 --> 00:08:44,240 de modo que, al final, tiramos todo el HTML desordenado, 155 00:08:44,240 --> 00:08:47,340 todo de la estética de orientación negrita y en cursiva y similares, 156 00:08:47,340 --> 00:08:52,350 y lo que son capaces de hacer es exponer esos mismos datos. 157 00:08:52,350 --> 00:08:54,870 Por ejemplo, de esta manera. 158 00:08:54,870 --> 00:08:56,840 Así que, de acuerdo con la documentación aquí, 159 00:08:56,840 --> 00:08:59,190 han informado al mundo que si usted solicita una URL 160 00:08:59,190 --> 00:09:03,310 que se parece a esto, food.cs50.net / algo, 161 00:09:03,310 --> 00:09:07,220 y proporcionar ciertos parámetros, lo que vamos a hablar hoy, 162 00:09:07,220 --> 00:09:11,780 como el tiempo de fin fecha, la fecha de inicio del tiempo, la comida y así sucesivamente, 163 00:09:11,780 --> 00:09:14,090 lo que nuestros servidores se volverá a vosotros, por ejemplo, 164 00:09:14,090 --> 00:09:18,740 es un archivo CSV, comma separted valores como un archivo de Excel, 165 00:09:18,740 --> 00:09:23,140 que contiene todo lo necesario para el desayuno en esta fecha en particular en marzo del año pasado 166 00:09:23,140 --> 00:09:25,450 cuando se me ocurrió escribir esta documentación. 167 00:09:25,450 --> 00:09:27,870 >> Para quienes están familiarizados, CSV no es el único formato. 168 00:09:27,870 --> 00:09:30,610 Hay otro formato que sea aún más versátil 169 00:09:30,610 --> 00:09:32,670 llamado JSON, notación JavaScript Object. 170 00:09:32,670 --> 00:09:34,770 Los datos se pueden volver a aparecer en ese formato. 171 00:09:34,770 --> 00:09:38,110 Así que la comida para llevar es que si te sumerjas en esta API 172 00:09:38,110 --> 00:09:41,170 o cualquier otro de CS50 o algo por ahí en Internet, 173 00:09:41,170 --> 00:09:45,560 o nada en absoluto, se dan cuenta de que el mundo ha comenzado a normalizar cada vez más 174 00:09:45,560 --> 00:09:47,670 cómo las máquinas están comunicados entre sí. 175 00:09:47,670 --> 00:09:50,660 Utilizamos formatos de datos estándar como CSV o JSON. 176 00:09:50,660 --> 00:09:54,320 ¿Y qué significa esto para usted es que usted puede escribir la parte interesante de un programa 177 00:09:54,320 --> 00:09:56,580 que permite al usuario buscar en un menú de comedor-salón, 178 00:09:56,580 --> 00:10:00,010 que les permite crear listas de favoritos que les permite recibir alertas de texto 179 00:10:00,010 --> 00:10:02,480 cuando su comida favorita está a punto de ser servido en algunos d-hall 180 00:10:02,480 --> 00:10:07,090 mediante el uso de otra persona y la creación de conjuntos de datos en la parte superior de sus APIs. 181 00:10:07,090 --> 00:10:13,600 Así que más que en la forma de seminarios y la documentación que tienes aquí en línea. 182 00:10:13,600 --> 00:10:16,450 Así que estos son, entonces, las API. 183 00:10:16,450 --> 00:10:18,900 >> Esto nos lleva de nuevo a HTML. Resumen rápido. 184 00:10:18,900 --> 00:10:22,920 ¿Qué es HTML? 185 00:10:22,920 --> 00:10:25,000 [Estudiante, ininteligible] >> Bien. HyperText Markup Language. 186 00:10:25,000 --> 00:10:31,300 Alguien más, ¿cuál es Hypertext Markup Language? 187 00:10:31,300 --> 00:10:37,340 HyperText Markup Language. 188 00:10:37,340 --> 00:10:40,330 Bien. Entonces, HTML, hypertext. 189 00:10:40,330 --> 00:10:43,100 Hipertexto sólo se refiere a la Web, en su mayor parte. 190 00:10:43,100 --> 00:10:45,730 Marcado significa que no es realmente un lenguaje de programación HTML. 191 00:10:45,730 --> 00:10:48,120 No es un lenguaje que se puede expresar la lógica pulg 192 00:10:48,120 --> 00:10:50,710 No tiene bucles. No tiene condiciones. 193 00:10:50,710 --> 00:10:52,820 No tiene funciones, per se. 194 00:10:52,820 --> 00:10:56,680 Más bien, tiene estas cosas llamadas etiquetas, o más propiamente, elementos. 195 00:10:56,680 --> 00:10:59,970 Y esos elementos tienen etiquetas de inicio y fin, 196 00:10:59,970 --> 00:11:04,300 o etiquetas de apertura y etiquetas cerradas, y lo que esas etiquetas generalmente significa que un navegador es, 197 00:11:04,300 --> 00:11:09,270 empezar a hacer algo y luego dejar de hacer algo, aunque hay excepciones a esto. 198 00:11:09,270 --> 00:11:12,480 A veces es sólo 'poner un salto de línea aquí ", por ejemplo. 199 00:11:12,480 --> 00:11:15,150 Y hemos visto ejemplos de ello el otro día, entre orientada al atrevido, 200 00:11:15,150 --> 00:11:17,430 saltos de línea, y luego un par de otras etiquetas. 201 00:11:17,430 --> 00:11:19,880 Así que HTML es el lenguaje en el que las páginas web están escritas. 202 00:11:19,880 --> 00:11:23,760 Así que si me voy a algo así como Google.com 203 00:11:23,760 --> 00:11:26,180 y tire hacia arriba sólo su página de inicio, 204 00:11:26,180 --> 00:11:29,690 recordar que si hace clic o haga clic en el control 205 00:11:29,690 --> 00:11:32,140 y mirar en la fuente visualización de la página, por lo general 206 00:11:32,140 --> 00:11:34,420 es un completo desastre en estos días bajo el capó, pero eso es porque 207 00:11:34,420 --> 00:11:38,170 equipos no se preocupan por el espacio en blanco, por lo que no tiene que mirar bastante. 208 00:11:38,170 --> 00:11:40,240 Pero si nos centramos en algunas de sus partes, 209 00:11:40,240 --> 00:11:43,460 cuenta de que Chrome, sólo para ser amable, ha codificados por color las cosas. 210 00:11:43,460 --> 00:11:48,460 De hecho, esta es la primera etiqueta que vimos en una página web. 211 00:11:48,460 --> 00:11:51,750 Y de nuevo, HTML 5, la última versión de este lenguaje, 212 00:11:51,750 --> 00:11:53,830 tiene esto en el inicio, 213 00:11:53,830 --> 00:11:57,820 00:12:03,580 pero eso es sólo una especie de norma que dice: hey mundo, aquí viene un archivo HTML en la versión 5. 215 00:12:03,580 --> 00:12:08,920 >> La parte interesante empieza aquí. Así 00:12:11,640 de los elementos HTML última vez. 217 00:12:11,640 --> 00:12:14,630 ¿Cuáles fueron los dos hijos principales? 218 00:12:14,630 --> 00:12:17,170 Cabeza y cuerpo, al igual que el tipo con el tatuaje hace un momento. 219 00:12:17,170 --> 00:12:19,640 Hay dos partes de la página web, la cabeza y el cuerpo, 220 00:12:19,640 --> 00:12:23,750 y recordar, pues, que tal vez la más simple página web que podríamos hacer el siguiente aspecto. 221 00:12:23,750 --> 00:12:27,460 Y lo he sangría sólo para ser una especie de limpia y ordenada, con mi código, 222 00:12:27,460 --> 00:12:30,710 pero lo que es realmente importante aquí es que hay una cierta jerarquía a esto. 223 00:12:30,710 --> 00:12:35,420 Y cualquier etiqueta que he abierto yo han cerrado y que no hay por lo tanto esta simetría 224 00:12:35,420 --> 00:12:38,300 a todas las marcas que he creado. 225 00:12:38,300 --> 00:12:41,620 Así que la última vez que empecé a escribir páginas web en mi propio ordenador portátil. 226 00:12:41,620 --> 00:12:45,470 Abrí edición de texto, he guardado el archivo como hello.html, 227 00:12:45,470 --> 00:12:50,190 Luego arrastró el archivo en el navegador, y listo, yo tenía una página en Internet. 228 00:12:50,190 --> 00:12:53,110 Ahora, no es exactamente así, tenía una página en mi disco duro, 229 00:12:53,110 --> 00:12:58,260 y yo estaba literalmente la única persona en el mundo que ver que la página web en un navegador. 230 00:12:58,260 --> 00:13:00,670 >> Así que hoy, presentamos un servidor web real 231 00:13:00,670 --> 00:13:02,750 y la noción de hecho al servicio de los contenidos en Internet 232 00:13:02,750 --> 00:13:04,970 y cómo todo empieza a encajar. 233 00:13:04,970 --> 00:13:08,350 Así resulta que todo este tiempo en el aparato CS50 234 00:13:08,350 --> 00:13:11,590 usted ha tenido un servidor web en tu ordenador. 235 00:13:11,590 --> 00:13:16,560 Hemos, en equidad, solo lo usamos para gedit, para Clang, para GDB y similares, 236 00:13:16,560 --> 00:13:21,000 pero también instalados por nosotros para que en el aparato es un servidor web, 237 00:13:21,000 --> 00:13:23,940 y ese servidor web pasa a ser gratuito, de código abierto, 238 00:13:23,940 --> 00:13:26,580 uno de los más populares en el mundo, llamado Apache. 239 00:13:26,580 --> 00:13:31,340 Su nombre técnico es más HTTPd, siendo d el demonio por aquí, 240 00:13:31,340 --> 00:13:34,110 que es una palabra técnica para un servidor. 241 00:13:34,110 --> 00:13:38,690 Así instalada en el aparato CS50 es un servidor web, y qué significa eso? 242 00:13:38,690 --> 00:13:43,740 Bueno, un servidor web es, conceptualmente, algún servidor en Internet que sirve de contenido web. 243 00:13:43,740 --> 00:13:48,630 Cuando se le preguntó a un archivo, lo escupe el código HTML que compone ese archivo, y listo. 244 00:13:48,630 --> 00:13:51,370 Usted ve alguna página del sitio web de origen. 245 00:13:51,370 --> 00:13:54,970 Sin embargo, un servidor es, más precisamente, una pieza de software. 246 00:13:54,970 --> 00:13:59,190 No tiene que ser en una máquina física, que sólo tiene que ser una pieza de ejecutar software. 247 00:13:59,190 --> 00:14:01,980 Así el aparato CS50, por supuesto, es una pieza de software 248 00:14:01,980 --> 00:14:04,270 a pesar de que es una especie de pretender ser una máquina. 249 00:14:04,270 --> 00:14:06,960 Está haciéndose pasar por un ordenador dentro de un ordenador, 250 00:14:06,960 --> 00:14:11,140 pero eso sólo significa que el aparato sin duda puede manejar las cosas como servidores web. 251 00:14:11,140 --> 00:14:13,260 En realidad, puede ejecutar servidores de correo electrónico. 252 00:14:13,260 --> 00:14:16,440 Podemos ejecutar un servidor de mensajería instantánea en el aparato si quisiéramos, 253 00:14:16,440 --> 00:14:20,780 y, de hecho, lo hacemos correr otro tipo de servidor, conocido como servidor de base de datos, MySQL. 254 00:14:20,780 --> 00:14:22,620 Pero más sobre esto la próxima semana. 255 00:14:22,620 --> 00:14:26,400 Esto significa que en realidad se puede visitar las páginas web 256 00:14:26,400 --> 00:14:30,480 dentro de mi dispositivo mediante un navegador dentro del aparato 257 00:14:30,480 --> 00:14:33,600 o incluso en mi propio ordenador portátil, mi Mac y mi PC. 258 00:14:33,600 --> 00:14:37,780 Entonces, ¿qué significa esto? Resulta que cada vez se está ejecutando un equipo con Linux, 259 00:14:37,780 --> 00:14:40,910 su apodo es "host local". 260 00:14:40,910 --> 00:14:43,370 No tiene un nombre de dominio, porque no hemos comprado un nombre de dominio 261 00:14:43,370 --> 00:14:46,590 algo así como el aparato, por lo que su nombre predeterminado es el anfitrión local. 262 00:14:46,590 --> 00:14:50,470 >> Pero con el fin de conseguir el aparato para iniciar servir las páginas web, 263 00:14:50,470 --> 00:14:52,270 tenemos que crearla primero. 264 00:14:52,270 --> 00:14:55,200 Así que vamos a hacer eso. Déjame entrar en una ventana de terminal aquí 265 00:14:55,200 --> 00:14:58,190 y nota que estoy en mi sistema típico John Harvard. 266 00:14:58,190 --> 00:15:01,670 Déjenme seguir adelante y escribir ls, y vamos a ver algunas cosas familiares de este semestre, 267 00:15:01,670 --> 00:15:04,580 escritorio, descargas, dropbox y así sucesivamente, 268 00:15:04,580 --> 00:15:07,540 pero ahora empezamos a dirigir nuestra atención a una pareja. 269 00:15:07,540 --> 00:15:11,530 En muchos servidores web Linux existe esta carpeta llamada pública html, 270 00:15:11,530 --> 00:15:15,630 pero vamos a omitir que uno por el momento y centrarse en esta vhosts,. 271 00:15:15,630 --> 00:15:18,850 Alguien sabe lo que es un host virtual? 272 00:15:18,850 --> 00:15:21,110 Sólo jerga estúpida por máquina virtual, 273 00:15:21,110 --> 00:15:23,850 y lo que esto significa es que en un servidor normal 274 00:15:23,850 --> 00:15:26,810 en realidad se puede alojar múltiples sitios web. 275 00:15:26,810 --> 00:15:31,500 Usted puede comprar un nombre de dominio como foo.com, y se puede alojar en el servidor. 276 00:15:31,500 --> 00:15:36,100 Pero también se puede comprar bar.com y alojarlo en el mismo servidor. 277 00:15:36,100 --> 00:15:40,250 La razón es que los navegadores son lo suficientemente inteligentes como para informar al servidor 278 00:15:40,250 --> 00:15:45,880 cuando un usuario solicita alguna página web, nombre de dominio que el usuario desea la página de inicio. 279 00:15:45,880 --> 00:15:48,760 Así que lo bueno de esto es que no es necesario un servidor físico 280 00:15:48,760 --> 00:15:52,040 o un CS50 aparato para cada sitio web es posible que desee crear. 281 00:15:52,040 --> 00:15:55,520 Puede utilizar el mismo servidor y desarrollar un centenar de diferentes sitios web. 282 00:15:55,520 --> 00:15:58,770 Y de hecho, si usted es una persona que intenta iniciar un sitio web, 283 00:15:58,770 --> 00:16:02,100 ya sea por diversión o por negocios, por lo general podrás salir a la Internet, 284 00:16:02,100 --> 00:16:04,650 y que tendrá que pagar a alguien diez dólares al mes, unos cientos de dólares al mes 285 00:16:04,650 --> 00:16:06,670 para alojar su sitio web para ti. 286 00:16:06,670 --> 00:16:11,060 Y la forma en que funciona es que están cobrando otras personas 287 00:16:11,060 --> 00:16:13,160 diez dólares al mes o cien dólares al mes 288 00:16:13,160 --> 00:16:17,200 para alojar sitios web de otras personas de su mismo servidor. 289 00:16:17,200 --> 00:16:20,740 La razón por la que puede hacer eso es debido a esta característica se llama bhosts, 290 00:16:20,740 --> 00:16:23,790 pero más de eso cuando llegue el momento de los proyectos finales. 291 00:16:23,790 --> 00:16:28,360 >> Por ahora, vamos a bucear allí. Así vhosts cd, y si me escriba ls ahora, 292 00:16:28,360 --> 00:16:31,370 cuenta de que hay una carpeta que se llama host local. 293 00:16:31,370 --> 00:16:33,440 Eso es porque, de forma predeterminada, las cifras de electrodomésticos 294 00:16:33,440 --> 00:16:36,160 alguna vez se va a ejecutar un sitio web en un aparato. 295 00:16:36,160 --> 00:16:38,970 Esto no es realmente el mundo real, no es un servidor web del mundo real. 296 00:16:38,970 --> 00:16:41,690 Así que déjame entrar en host local, y ahora vamos a ver ahí 297 00:16:41,690 --> 00:16:44,290 un último directorio llamado HTML. 298 00:16:44,290 --> 00:16:47,080 Así que es un poco más profundo, la jerarquía, pero siempre y cuando 299 00:16:47,080 --> 00:16:51,230 decide iniciar el desarrollo de varios sitios web en los próximos n meses o años, 300 00:16:51,230 --> 00:16:54,370 este tipo de estructura de carpetas tiende a ser útil. 301 00:16:54,370 --> 00:16:56,560 Ahora vamos a entrar en HTML como acabo de hacer, 302 00:16:56,560 --> 00:16:59,010 ls tipo, y no hay nada. 303 00:16:59,010 --> 00:17:01,390 Así que ahora vamos a seguir adelante y hacer esto. Permítanme abrir Chrome 304 00:17:01,390 --> 00:17:07,300 en el interior del aparato, y me dejó ir a http://localhost. 305 00:17:07,300 --> 00:17:14,440 Así que, literalmente, el nombre de mi aparato, entrar, y me da índice de /. 306 00:17:14,440 --> 00:17:18,290 Esto no me está mostrando nada de interés, 307 00:17:18,290 --> 00:17:23,400 pero resulta que lo que estamos viendo es esa carpeta, HTML. 308 00:17:23,400 --> 00:17:25,770 No hay nada dentro de esa carpeta en este momento, 309 00:17:25,770 --> 00:17:28,750 así que en vez, lo que voy a tener que hacer es crear primero un archivo. 310 00:17:28,750 --> 00:17:33,530 Cree un archivo HTML como lo hicimos el lunes, pero esta vez lo puso dentro del aparato. 311 00:17:33,530 --> 00:17:36,830 Para aquellos de ustedes que están tratando de seguir junto con las computadoras portátiles ahora, 312 00:17:36,830 --> 00:17:42,040 déjame hacer un aparte que va a ser cubiertos en el conjunto de procesadores basado en la web, 313 00:17:42,040 --> 00:17:44,280 pero a fin de conseguir que esto funcione, por vez primera, 314 00:17:44,280 --> 00:17:49,830 usted va a tener que ejecutar el siguiente comando: sudo service httpd inicio. 315 00:17:49,830 --> 00:17:52,670 Y esto, de nuevo, se repite en el conjunto de procesadores pasado, 316 00:17:52,670 --> 00:17:55,460 pero si estás jugando junto a casa ahora, el servidor web 317 00:17:55,460 --> 00:17:58,660 se apaga el aparato, y eso es lo que no savia de la memoria RAM 318 00:17:58,660 --> 00:18:01,960 y la memoria durante 7 semanas del semestre cuando no lo necesita. 319 00:18:01,960 --> 00:18:05,190 Así que hay que ejecutar este comando una vez, y obtendrá una salida así. 320 00:18:05,190 --> 00:18:07,920 Entonces usted debe ser capaz de jugar a lo largo de aquí. 321 00:18:07,920 --> 00:18:10,330 Ahora vamos a ir de nuevo en esta carpeta. 322 00:18:10,330 --> 00:18:12,770 Esta carpeta está vacía, así que voy a empezar a crear un archivo, 323 00:18:12,770 --> 00:18:16,360 gedit hello.html. 324 00:18:16,360 --> 00:18:20,930 >> Está bien. Gedit está abierta, como de costumbre. Déjame hacer doctype, html, 325 00:18:20,930 --> 00:18:25,270 html, déjame salir adelante de mí mismo y empezar a cerrar mis etiquetas de antelación. 326 00:18:25,270 --> 00:18:28,380 Ahora tengo la cabeza. Déjenme seguir adelante y cerrar la cabeza, 327 00:18:28,380 --> 00:18:32,450 ahora voy a hacer el título de la página, hola mundo como la última vez, 328 00:18:32,450 --> 00:18:34,790 Título de cerca, ahora déjame hacer un cuerpo. 329 00:18:34,790 --> 00:18:38,130 De aquí que voy a decir hola, mundo con algunas exclams 330 00:18:38,130 --> 00:18:40,550 para dejar claro que se trata de una cadena diferente. 331 00:18:40,550 --> 00:18:45,800 Cerrar cuerpo, y ahora quiero seguir adelante y Guardar archivo. 332 00:18:45,800 --> 00:18:48,470 Déjame volver a mi ventana de terminal, y si me escriba ls, 333 00:18:48,470 --> 00:18:51,830 Debería, probablemente, ver hello.html. Y lo hago. 334 00:18:51,830 --> 00:18:55,070 Así que ahora vamos a volver a mi navegador, haga clic en recargar, 335 00:18:55,070 --> 00:18:58,930 y se puede ver que son de hecho dentro de esta carpeta HTML. 336 00:18:58,930 --> 00:19:02,310 No estoy viendo una página web con todo, lo que es Apache, el servidor web, 337 00:19:02,310 --> 00:19:04,670 me acaba de mostrar los contenidos de la lista de este directorio. 338 00:19:04,670 --> 00:19:08,260 Al igual que Mac OS o Windows normalmente se hace en su propio disco duro local. 339 00:19:08,260 --> 00:19:12,730 Así que si quiero ver esta página web, puede hacer clic en este enlace poco aquí, hello.html, 340 00:19:12,730 --> 00:19:15,160 y, de hecho, eso es lo que yo estaba esperando ver. 341 00:19:15,160 --> 00:19:18,080 Ahora, de nuevo, esto no es una URL que cualquiera de ustedes puede visitar en este momento, 342 00:19:18,080 --> 00:19:20,760 porque por ti, host local, si usted tiene una computadora portátil aquí, 343 00:19:20,760 --> 00:19:23,050 que se refiere a su propia instancia del aparato. 344 00:19:23,050 --> 00:19:25,900 Esto es en mi aparato personal, 345 00:19:25,900 --> 00:19:29,080 pero esto es un poco tonto para mí tener, tener 346 00:19:29,080 --> 00:19:34,480 un usuario como yo, haga clic en hello.html para ver realmente los contenidos de esta página. 347 00:19:34,480 --> 00:19:42,590 Resulta que los servidores web como Apache permitirá tener un archivo por defecto para cualquier servidor web. 348 00:19:42,590 --> 00:19:44,640 Tenga en cuenta que aquí tenemos hello.html. 349 00:19:44,640 --> 00:19:48,410 ¿Cuál es el comando en Linux para cambiar el nombre de un archivo? 350 00:19:48,410 --> 00:19:50,870 >> MV, por mudanza. Así que vamos a hacer eso, 351 00:19:50,870 --> 00:19:55,870 y dejar que me cambie el nombre hello.html a index.html. 352 00:19:55,870 --> 00:19:58,610 Déjame escribir ls para confirmar que ha cambiado de nombre. 353 00:19:58,610 --> 00:20:03,250 Ahora bien, esto va a - si me vuelvo a host local, 354 00:20:03,250 --> 00:20:06,710 notar ahora que estoy viendo automáticamente esa página web. 355 00:20:06,710 --> 00:20:11,740 Esto es idéntico a mi realmente haciendo / index.html, 356 00:20:11,740 --> 00:20:14,740 pero lo bueno es que el servidor web está pensando, 357 00:20:14,740 --> 00:20:18,830 oh, si usted tiene un archivo que, por convenciones humanas, se llama index.html, 358 00:20:18,830 --> 00:20:21,200 permítame mostrarle al usuario que el archivo por defecto 359 00:20:21,200 --> 00:20:25,290 en lugar de algún listado de directorios estúpido que no es en absoluto fácil de usar. 360 00:20:25,290 --> 00:20:28,900 De hecho, la mayoría de los sitios web que visita en Internet no tiene una lista de archivos que se haga clic en, 361 00:20:28,900 --> 00:20:34,040 simplemente le mostrará el contenido. Así es como podemos hacer eso, index.html. 362 00:20:34,040 --> 00:20:37,000 Así que esto es todo diversión y buena, pero esta es una página web muy simple. 363 00:20:37,000 --> 00:20:41,640 Déjenme seguir adelante y abrir index.html en mis vhosts, 364 00:20:41,640 --> 00:20:47,620 los anfitriones locales, directorio html y Let añadir algo de mayor interés. 365 00:20:47,620 --> 00:20:56,120 Así que hola mundo, vamos a decir en lugar 'Esto es CS50, Harvard College. . . 366 00:20:56,120 --> 00:21:00,000 Así que el comienzo de la descripción de catálogo curso de algún tipo allí. 367 00:21:00,000 --> 00:21:03,780 Ahora bien, si vuelvo a cargar, debería ver esto en mi página de inicio. 368 00:21:03,780 --> 00:21:09,560 Bueno, y yo creo que eso, pero supongamos que quiero enumerar ahora algunos más contenido en este archivo. 369 00:21:09,560 --> 00:21:15,160 Podría seguir aquí y decir que ninguno requisitos previos, 370 00:21:15,160 --> 00:21:18,740 aunque algunos de ustedes probablemente como, 'Ja, ja, ja, hay requisitos previos. 371 00:21:18,740 --> 00:21:24,320 Pero - oficialmente. Así que recargar, y ahora tenemos la peculiaridad mismo que vimos la última vez. 372 00:21:24,320 --> 00:21:26,240 Pero ¿por qué es eso? Es una solución simple. 373 00:21:26,240 --> 00:21:31,440 ¿Por qué esta página rota? 374 00:21:31,440 --> 00:21:34,170 [Estudiante, ininteligible] >> Sí, hemos resuelto esto antes 375 00:21:34,170 --> 00:21:37,440 explícitamente diciendo al navegador poner un salto de línea aquí. 376 00:21:37,440 --> 00:21:39,440 Y eso es porque, de nuevo, un navegador sólo va a hacer 377 00:21:39,440 --> 00:21:42,610 explícitamente cuál es el lenguaje de marcado que dice que haga, 378 00:21:42,610 --> 00:21:45,730 así que, aunque es posible que haya pulsa enter una vez o dos veces o incluso diez veces, 379 00:21:45,730 --> 00:21:49,870 que va a combinar todo eso en un solo espacio, sólo por convención. 380 00:21:49,870 --> 00:21:52,770 Así que si usted realmente desea un salto de línea, usted tiene que utilizar la etiqueta br, 381 00:21:52,770 --> 00:21:56,840 y ahora fíjense, como lunes, pongo el interior / de esta etiqueta, 382 00:21:56,840 --> 00:22:00,090 sólo porque esto simplemente no se siente bien 383 00:22:00,090 --> 00:22:02,990 para iniciar un salto de línea después dejar sin nada en medio. 384 00:22:02,990 --> 00:22:07,740 >> Así que la convención en HTML es abrir y cerrar una etiqueta a la vez. 385 00:22:07,740 --> 00:22:11,050 Como acotación al margen, verás un montón de sitios web en los libros no hacen eso. 386 00:22:11,050 --> 00:22:14,240 Es correcto hacer o no hacer, pero se argumenta que 387 00:22:14,240 --> 00:22:17,430 que el diseño inteligente y estilísticamente, esto es sólo una mejor 388 00:22:17,430 --> 00:22:20,540 porque entonces cada etiqueta es a la vez abierto y cerrado de alguna manera. 389 00:22:20,540 --> 00:22:23,370 Así que ahora vamos a guardar y volver a cargar. Volver al navegador, de acuerdo. 390 00:22:23,370 --> 00:22:26,680 Ahora estamos haciendo algunos progresos, pero no es suficiente. 391 00:22:26,680 --> 00:22:33,210 Vamos a seguir adelante y empezar a escribir en un cuerpo más largo del texto. 392 00:22:33,210 --> 00:22:40,610 Así que vamos a decir, 'Un rápido zorro marrón salta sobre el perro perezoso. 393 00:22:40,610 --> 00:22:42,700 Y ahora permítanme simplemente copia y pega esto unas cuantas veces 394 00:22:42,700 --> 00:22:45,040 de modo que tenemos un párrafo de texto. 395 00:22:45,040 --> 00:22:47,780 Déjame volver por aquí. Por lo que no se ve muy bien. 396 00:22:47,780 --> 00:22:50,000 Tengo un salto de línea, así que está bien, 397 00:22:50,000 --> 00:22:52,140 pero ahora, una vez que estamos llegando al punto de tener una página web 398 00:22:52,140 --> 00:22:55,640 que tiene un montón de contenido y las líneas individuales no sólo para demostrar HTML, 399 00:22:55,640 --> 00:22:58,570 podemos empezar a pensar en estas cosas como párrafos reales. 400 00:22:58,570 --> 00:23:01,590 Y podemos empezar a estructurar nuestra página web un poco más limpia. 401 00:23:01,590 --> 00:23:05,120 Y, en efecto, lo que puedo hacer es subir aquí dentro de mi cuerpo de la etiqueta, 402 00:23:05,120 --> 00:23:09,400 y sabes qué, si "Esta es CS50. . . realmente deMarks el principio de un párrafo, 403 00:23:09,400 --> 00:23:11,310 bueno, vamos a etiquetar como tal. 404 00:23:11,310 --> 00:23:13,570 Déjame sangrar el texto, sólo por convención, permítanme decir 405 00:23:13,570 --> 00:23:15,710 que este párrafo termina aquí, 406 00:23:15,710 --> 00:23:18,320 y entonces en vez de hacer este salto de línea, permítanme decir 407 00:23:18,320 --> 00:23:23,300 que esto pertenece allí y como un nuevo párrafo, 408 00:23:23,300 --> 00:23:27,610 y sólo voy guión rápidamente con sólo clobbering todas estas cosas. 409 00:23:27,610 --> 00:23:30,660 >> Así que ahora tenemos un párrafo con sangría allí, 410 00:23:30,660 --> 00:23:33,510 y ahora nuestro margen de beneficio está empezando a conseguir un poco más 411 00:23:33,510 --> 00:23:37,070 semánticamente consistente con lo que estamos tratando de hacer. 412 00:23:37,070 --> 00:23:40,130 Tenemos un párrafo, por lo que vamos a llamarlo un párrafo con la etiqueta p. 413 00:23:40,130 --> 00:23:43,370 Tenemos un segundo párrafo, por lo que vamos a llamarlo un párrafo con la etiqueta p. 414 00:23:43,370 --> 00:23:45,850 Y ahora, lo que el navegador suele hacer 415 00:23:45,850 --> 00:23:48,490 Es como en un libro de Inglés o ensayo, 416 00:23:48,490 --> 00:23:51,280 donde se suele ver algunos saltos de línea entre párrafos. 417 00:23:51,280 --> 00:23:53,720 Navegadores lo hará por usted automáticamente. 418 00:23:53,720 --> 00:23:56,680 Así que ahora tenemos dos párrafos y podemos continuar con esto. 419 00:23:56,680 --> 00:23:58,770 Pero, por supuesto, en la Web, cuando tienen cuerpos de texto 420 00:23:58,770 --> 00:24:01,370 no es por lo general sólo gotas enormes de texto. 421 00:24:01,370 --> 00:24:04,040 A menudo los hipervínculos de allí. 422 00:24:04,040 --> 00:24:07,250 Así que si queremos, por ejemplo, incluir algunos enlaces allí, 423 00:24:07,250 --> 00:24:10,760 Supongo que lo que podría ser de interés en cualquier página web que estoy creando aquí es - 424 00:24:10,760 --> 00:24:12,780 déjame ir a Google.com, 425 00:24:12,780 --> 00:24:16,540 y déjame buscar un rápido zorro marrón. 426 00:24:16,540 --> 00:24:22,150 Ir a las imágenes de Google, y, ¿qué tal - esto es lindo. 427 00:24:22,150 --> 00:24:27,420 Vamos a ir con esto. Así que aquí tenemos una rápida zorro marrón salta sobre el perro perezoso. 428 00:24:27,420 --> 00:24:30,560 Así que lo que voy a hacer aquí, sólo por el bien de la demostración, 429 00:24:30,560 --> 00:24:32,950 se supone que esta imagen fue en mi servidor, 430 00:24:32,950 --> 00:24:35,240 y yo había estado creando estas imágenes. 431 00:24:35,240 --> 00:24:38,720 Lo que hizo fue simplemente haga clic derecho o control Haga clic en la imagen, 432 00:24:38,720 --> 00:24:42,370 y lo que vas a ver en la mayoría de los navegadores es un pequeño menú - 433 00:24:42,370 --> 00:24:48,800 dejar de hacer eso - un pequeño menú que permite elegir la ubicación Copiar el enlace o URL de copia. 434 00:24:48,800 --> 00:24:52,750 Así que permítanme volver ahora a mi HTML, y supongamos que quiero 435 00:24:52,750 --> 00:24:56,420 a este hipervínculo a otra página web. 436 00:24:56,420 --> 00:24:58,640 >> ¿Cuál fue el tag llamado para eso? 437 00:24:58,640 --> 00:25:01,650 [Estudiante, ininteligible] >> Si. Así que a href para referencia hiperactivo. 438 00:25:01,650 --> 00:25:04,660 Déjame ir por delante y pegar el pulg 439 00:25:04,660 --> 00:25:07,290 Es una URL muy larga, así que permítanme reducir. 440 00:25:07,290 --> 00:25:09,950 Cerrar paréntesis, por lo que ahora cuenta de que estoy hasta aquí 441 00:25:09,950 --> 00:25:11,960 porque esa URL resultó ser bastante largo. 442 00:25:11,960 --> 00:25:15,180 Permítanme desplazarse por aquí hasta el final del rápido zorro marrón, 443 00:25:15,180 --> 00:25:18,830 y entonces permítanme concluir con esta etiqueta 00:25:21,280 donde sólo se cierra el nombre de la etiqueta. 445 00:25:21,280 --> 00:25:24,470 Ahora voy a seguir adelante y guardar el archivo, vuelva a cargar la página web, 446 00:25:24,470 --> 00:25:27,880 y ahora, por defecto, esto va a ser subrayados en azul para mí, 447 00:25:27,880 --> 00:25:31,980 pero en realidad, ahora puede hacer clic sobre éste y voila. Ahí está esa imagen. 448 00:25:31,980 --> 00:25:33,990 Y no tenía por qué ser una imagen, sino que podría haber vinculado 449 00:25:33,990 --> 00:25:36,270 a algún otro sitio web al azar a través de Internet. 450 00:25:36,270 --> 00:25:39,610 Yo podría hacer esto, por ejemplo, con CS50, por lo que un último ejemplo aquí. 451 00:25:39,610 --> 00:25:42,730 'Esto es CS50' podría tener sentido para ir a, href = 452 00:25:42,730 --> 00:25:50,340 http://www.cs50.net, Cierre de comillas, ancla cerca. 453 00:25:50,340 --> 00:25:53,990 Así que ahora que es un URL aún más corto, y esta vez no vamos a vincular a una imagen. 454 00:25:53,990 --> 00:25:57,880 Estamos en vez de ir a un vínculo a otra página. 455 00:25:57,880 --> 00:25:59,840 Ahora, tenemos una imagen aquí. 456 00:25:59,840 --> 00:26:02,970 Siento que podemos hacer algo mejor que un simple enlace a una imagen. 457 00:26:02,970 --> 00:26:05,760 ¿Qué pasa si queremos realmente encarnar en nuestra página web? 458 00:26:05,760 --> 00:26:09,290 >> Bueno, lo que puedo hacer aquí es, más que un enlace a este gráfica, 459 00:26:09,290 --> 00:26:14,690 déjame cortar en lugar de la URL, y vamos a deshacernos de ese hipervínculo y limpiar esto. 460 00:26:14,690 --> 00:26:17,190 Y vamos a ir por aquí y librarse de esto. 461 00:26:17,190 --> 00:26:20,910 En realidad no necesitamos todas esas frases ahora, así que permítanme abreviar la página un poco. 462 00:26:20,910 --> 00:26:24,530 Y aquí me dejó ir por delante en un nuevo párrafo, 463 00:26:24,530 --> 00:26:30,100 decir que no desea que el texto ahora, yo quiero una imagen cuyo origen va a ser esa URL. 464 00:26:30,100 --> 00:26:33,100 Una imagen, como un salto de línea, está allí o no lo es. 465 00:26:33,100 --> 00:26:35,900 Así que permítanme cerrar inmediatamente esa etiqueta. 466 00:26:35,900 --> 00:26:39,440 Déjame ir adelante ahora y cerrar el párrafo que estoy dentro, 467 00:26:39,440 --> 00:26:43,010 y si todo va bien con hello, world, si vuelvo a cargar ahora, 468 00:26:43,010 --> 00:26:45,520 Yo, de hecho, ver a la derecha dentro de mi propia página web una imagen. 469 00:26:45,520 --> 00:26:48,570 Así que ahora tenemos una etiqueta de imagen, una etiqueta de ancla y similares, 470 00:26:48,570 --> 00:26:51,320 y por si acaso, me deja hacer otra cosa que a menudo se descuida 471 00:26:51,320 --> 00:26:55,900 en los sitios web en estos días: Vamos a proporcionar un texto descriptivo para esta imagen 472 00:26:55,900 --> 00:26:58,090 para las personas que están en un dispositivo móvil 473 00:26:58,090 --> 00:27:00,640 y por lo tanto no podría ser capaz de descargar esta imagen en forma rápida 474 00:27:00,640 --> 00:27:03,310 para las personas ciegas y podría no ser capaz de ver la imagen 475 00:27:03,310 --> 00:27:06,480 pero podrían tener un lector de pantalla que se les puede decir lo que esta imagen es de. 476 00:27:06,480 --> 00:27:09,100 Y para hacer eso, hay otro atributo para las etiquetas de imagen 477 00:27:09,100 --> 00:27:11,290 alt llamado, por un texto alternativo. 478 00:27:11,290 --> 00:27:14,650 ¿Y qué puedo hacer aquí es decir: 'Esto es un rápido zorro marrón. 479 00:27:14,650 --> 00:27:17,650 Así que, incluso si el humano no puede ver la imagen en la pantalla, 480 00:27:17,650 --> 00:27:20,560 él o ella puede oír al menos, como con alguna pieza de software, 481 00:27:20,560 --> 00:27:23,080 lo que realmente hay en la pantalla. 482 00:27:23,080 --> 00:27:25,040 >> Eso no va a cambiar la estética de la página, 483 00:27:25,040 --> 00:27:27,640 pero es ciertamente una buena práctica para los usuarios. 484 00:27:27,640 --> 00:27:31,760 Muy bien, vamos a salir de esta página web en su forma actual, 485 00:27:31,760 --> 00:27:33,890 pero vamos a ver si ahora no podemos introducir 486 00:27:33,890 --> 00:27:36,210 algunas aproximaciones mejores a escribir estas páginas web, 487 00:27:36,210 --> 00:27:39,980 algunas lecciones que nos van a servir bien como nuestras páginas se vuelven más y más complejas. 488 00:27:39,980 --> 00:27:42,220 Lo que no vamos a hacer en los próximas semanas 489 00:27:42,220 --> 00:27:46,810 Se le guiará a través de todas las varias docenas de etiquetas HTML que hay. 490 00:27:46,810 --> 00:27:49,800 Al igual que en cero de nuevo en la semana 0, probablemente será suficiente 491 00:27:49,800 --> 00:27:52,120 para dar una visión general de alto nivel de algunos de los conceptos, 492 00:27:52,120 --> 00:27:54,530 un rápido recorrido por algunos de los bloques que probablemente eran capaces, 493 00:27:54,530 --> 00:27:58,240 bastante cómodamente, para navegar por su cuenta, las piezas del rompecabezas diferentes. 494 00:27:58,240 --> 00:28:00,460 Y eso va a suceder de nuevo en HTML, lo más probable, 495 00:28:00,460 --> 00:28:04,320 por lo cual hay amplios recursos en la Web que le indicaremos los casos, 496 00:28:04,320 --> 00:28:06,920 varios libros de texto, si usted prefiere leer un libro de texto, 497 00:28:06,920 --> 00:28:10,560 que le guiará a través de todas las diversas cosas que usted puede hacer con HTML, 498 00:28:10,560 --> 00:28:16,100 pero la verdad es que hemos visto hasta ahora en HTML mayoría de los conceptos fundamentales. 499 00:28:16,100 --> 00:28:19,900 Tenemos la idea de que se abran las etiquetas, las etiquetas están cerradas. 500 00:28:19,900 --> 00:28:22,100 Algunas etiquetas que son abiertas y cerradas 501 00:28:22,100 --> 00:28:24,620 en el sentido de que están vacíos, no debe haber nada dentro de ellos 502 00:28:24,620 --> 00:28:27,490 como una etiqueta de imagen o un salto de línea, que sólo están ahí. 503 00:28:27,490 --> 00:28:32,330 También vimos ya en la noción de un atributo, como alt o fuente. 504 00:28:32,330 --> 00:28:36,410 Tenga en cuenta que estas palabras tienden, por convención, para ser corto y conciso. 505 00:28:36,410 --> 00:28:39,140 >> No tenemos facultades para decidir sobre lo que estas cosas se llaman, 506 00:28:39,140 --> 00:28:42,060 otra persona que inventó HTML subió con estos nombres. 507 00:28:42,060 --> 00:28:44,710 Así que sólo tienes que empezar a conocer o buscar, cada vez que los necesite, 508 00:28:44,710 --> 00:28:47,160 lo que son los nombres de estas etiquetas y atributos. 509 00:28:47,160 --> 00:28:49,510 En el caso de estos atributos, atribuye generalmente 510 00:28:49,510 --> 00:28:52,900 modificar el comportamiento de algunos etiqueta. 511 00:28:52,900 --> 00:28:55,710 En este caso, el atributo fuente le dijo a la etiqueta de imagen 512 00:28:55,710 --> 00:28:57,940 cuál es la fuente de la imagen debe ser. 513 00:28:57,940 --> 00:29:04,460 El atributo href indica la etiqueta de anclaje lo que realmente debe ser enlazado. 514 00:29:04,460 --> 00:29:06,800 Pero en términos de la estructura de una página web, aunque Facebook 515 00:29:06,800 --> 00:29:09,680 y Google y la mirada como como un completo desastre 516 00:29:09,680 --> 00:29:12,560 debajo de la capilla, a primera vista, si usted comienza a leer a través de él 517 00:29:12,560 --> 00:29:16,950 más metódicamente, todos siguen esta estructura básica y básica. 518 00:29:16,950 --> 00:29:19,660 Pero podemos mejorar la estilización de estas cosas. 519 00:29:19,660 --> 00:29:24,180 Así que déjame ir a algunos ejemplos que he preparado con antelación. 520 00:29:24,180 --> 00:29:27,280 Déjenme seguir adelante y copiarlos de otra carpeta aquí 521 00:29:27,280 --> 00:29:29,380 y los puso en este directorio. 522 00:29:29,380 --> 00:29:32,210 De antemano, lo que hice fue preparar algunos archivos: 523 00:29:32,210 --> 00:29:35,670 search0, término1, término2, y search3 y 4. 524 00:29:35,670 --> 00:29:38,740 Déjenme seguir adelante y abrir el primero de esos archivos, 525 00:29:38,740 --> 00:29:42,570 y vamos a ver si podemos empezar a crear nuestro propio motor de búsqueda. 526 00:29:42,570 --> 00:29:46,530 En la parte superior de este archivo, como suele ser el caso en clase, sólo un montón de comentarios. 527 00:29:46,530 --> 00:29:49,760 En HTML, sin embargo, los medios por los cuales se inicia un comentario 528 00:29:49,760 --> 00:29:55,640 es <- y luego te encuentras dentro de un comentario, un comentario de varias líneas. 529 00:29:55,640 --> 00:29:59,800 Cuando estés listo para dejar ese comentario, puedes hacerlo ->. 530 00:29:59,800 --> 00:30:02,380 Así que todo en la parte superior en azul es sólo un comentario. 531 00:30:02,380 --> 00:30:04,620 >> Esta es mi declaración DOCTYPE, que a su vez, 532 00:30:04,620 --> 00:30:07,080 usted puede copiar y pegar en la fe, por ahora. 533 00:30:07,080 --> 00:30:10,410 Este dice al navegador: "Aquí viene algo de HTML 5. 534 00:30:10,410 --> 00:30:13,600 Más abajo, en la línea 14, es el primero de mis etiquetas reales, 535 00:30:13,600 --> 00:30:16,900 y esto sólo dice, como antes, aquí viene un poco de HTML, 536 00:30:16,900 --> 00:30:19,460 aquí viene la cabecera de mi página, aquí viene el título, 537 00:30:19,460 --> 00:30:23,900 y luego, a la inversa, esto es todo por el título, que es para la cabeza. 538 00:30:23,900 --> 00:30:26,460 Aquí ahora viene el cuerpo de la página. 539 00:30:26,460 --> 00:30:31,040 Así que un par de nuevas etiquetas h1 ahora: las siglas de la rúbrica 1. 540 00:30:31,040 --> 00:30:33,850 Hay una tradición en HTML desde hace muchos años atrás 541 00:30:33,850 --> 00:30:37,990 de tener diferentes tamaños de texto. 542 00:30:37,990 --> 00:30:41,980 Y de vuelta en el día, cada uno entiende, en general, sólo grande y en negrita. 543 00:30:41,980 --> 00:30:45,860 Pero también hay h2, que es grande, pero no es tan grande y en negrita. 544 00:30:45,860 --> 00:30:49,320 Hay h3, que es un poco grande pero no tan grande y en negrita, 545 00:30:49,320 --> 00:30:52,380 y así sucesivamente, hasta el final abajo a h6. 546 00:30:52,380 --> 00:30:55,550 Estos días, sin embargo, h1, h2 y h3 son realmente significaba 547 00:30:55,550 --> 00:30:57,980 tener más significado semántico para ellos, 548 00:30:57,980 --> 00:31:01,100 por el que h1 es realmente un título: el título de una página web, 549 00:31:01,100 --> 00:31:04,210 el encabezado de una columna o algo por el estilo del texto. 550 00:31:04,210 --> 00:31:09,030 Así que me he dicho deliberadamente h1 CS50 búsqueda> h1 551 00:31:09,030 --> 00:31:12,640 para especificar que este es realmente el título, el título de mi página. 552 00:31:12,640 --> 00:31:14,850 No es el título en el sentido de barra de título, 553 00:31:14,850 --> 00:31:18,960 pero el título que en realidad se ve en la propia página web, en el cuerpo. 554 00:31:18,960 --> 00:31:20,990 Ahora bien, esto, que es fácil adivinar lo que es, 555 00:31:20,990 --> 00:31:23,110 aunque tenemos algunas piezas nuevas de sintaxis. 556 00:31:23,110 --> 00:31:25,930 Esta es una forma. Así que la web realmente se pone interesante 557 00:31:25,930 --> 00:31:28,770 cuando sitios web obtener información de los usuarios. 558 00:31:28,770 --> 00:31:31,700 En esta clase, en el conjunto de problemas de programación web, 559 00:31:31,700 --> 00:31:33,880 no vamos a hacer un sitio web, per se, 560 00:31:33,880 --> 00:31:37,570 con contenido estático que muestra las fotografías que ha tomado, 561 00:31:37,570 --> 00:31:40,010 o esta es mi hoja de vida, y las cosas sobre mí, 562 00:31:40,010 --> 00:31:42,450 porque esas cosas son relativamente fáciles de armar. 563 00:31:42,450 --> 00:31:44,400 Es difícil hacer las cosas bellas de la Web, 564 00:31:44,400 --> 00:31:46,390 pero al menos la colocación de contenido es bastante trivial. 565 00:31:46,390 --> 00:31:49,380 Pero las cosas se ponen interesantes cuando alguien visite su sitio web 566 00:31:49,380 --> 00:31:52,260 y proporcionar información y puede llenar formularios, 567 00:31:52,260 --> 00:31:55,800 Puede marcar casillas y pueden interactuar con su sitio web. 568 00:31:55,800 --> 00:31:57,780 Y de hecho, probablemente todos los sitios web que te importa 569 00:31:57,780 --> 00:32:00,710 estos días, en detalle, es de alguna manera interactiva. 570 00:32:00,710 --> 00:32:03,110 Facebook, Google, y similares, que tienen la entrada del usuario 571 00:32:03,110 --> 00:32:05,100 y producir una salida personalizada. 572 00:32:05,100 --> 00:32:07,780 >> Así que vamos a empezar a hacerlo ahora. Transición Vamos ahora 573 00:32:07,780 --> 00:32:11,150 de poco uso de HTML para el marcado de contenido estático 574 00:32:11,150 --> 00:32:14,790 ya que en lugar de un mecanismo de entrega de contenido dinámico. 575 00:32:14,790 --> 00:32:17,350 Y con ese fin, vamos a implementar nuestro propio motor de búsqueda. 576 00:32:17,350 --> 00:32:20,820 Vamos a hacerlo de la siguiente manera. Aquí está la etiqueta de formulario. 577 00:32:20,820 --> 00:32:24,090 El atributo action especifica que cuando el usuario rellene este formulario 578 00:32:24,090 --> 00:32:28,400 con su teclado, que será presentado a esta URL aquí. 579 00:32:28,400 --> 00:32:31,230 Así que yo soy una especie de trampa. Esto nos va a tardar un poco más 580 00:32:31,230 --> 00:32:33,780 de una clase para implementar el motor de búsqueda conjunto, 581 00:32:33,780 --> 00:32:35,880 así que sólo voy a hacer la parte delantera, por así decirlo. 582 00:32:35,880 --> 00:32:38,650 Vamos a hacer la parte que permite al usuario buscar, y vamos a una especie de patada de despeje de Google 583 00:32:38,650 --> 00:32:40,950 la parte más difícil de encontrar resultados de búsqueda, 584 00:32:40,950 --> 00:32:43,520 pero, en concreto, voy a hablar con el servidor web de Google 585 00:32:43,520 --> 00:32:46,710 utilizando uno de dos métodos muy populares. 586 00:32:46,710 --> 00:32:50,000 Uno se consigue, sí, que finalmente va a ver, ser enviados, 587 00:32:50,000 --> 00:32:52,660 aunque hay otros que son menos utilizados. 588 00:32:52,660 --> 00:32:56,440 Así que sólo evoca la idea de, quiero conseguir algo de contenido, obtener algunos resultados de búsqueda. 589 00:32:56,440 --> 00:32:58,440 Esto, tal vez usted puede adivinar lo que hace. 590 00:32:58,440 --> 00:33:01,900 Esta es una especie de entrada, es, de hecho, va a parecer un campo de texto, 591 00:33:01,900 --> 00:33:05,200 y el nombre de esa entrada, el nombre de la variable, por así decirlo, 592 00:33:05,200 --> 00:33:08,610 va a ser q la consulta por convención. 593 00:33:08,610 --> 00:33:11,700 Y de nuevo, el tipo de esta entrada no va a ser una casilla de verificación; 594 00:33:11,700 --> 00:33:13,890 no va a ser un menú, sino que va a ser un campo de texto 595 00:33:13,890 --> 00:33:18,060 como se indica mediante este atributo aquí, y este cuadro de texto, 596 00:33:18,060 --> 00:33:20,680 como un salto de línea, es allí o no. 597 00:33:20,680 --> 00:33:24,480 Así que tenemos un elemento vacío con la barra dentro de esa etiqueta. 598 00:33:24,480 --> 00:33:28,050 Entonces me voy a poner un salto de línea, y usted puede, tal vez, supongo que lo que esto va a hacer. 599 00:33:28,050 --> 00:33:30,210 Este es otro tipo de entrada del formulario. 600 00:33:30,210 --> 00:33:32,350 >> Éste va a ser utilizado para enviar el formulario. 601 00:33:32,350 --> 00:33:36,140 Así que esto va a ser el gran botón que el usuario puede hacer clic para enviar el formulario, 602 00:33:36,140 --> 00:33:40,800 y la etiqueta del botón que va a ser 'CS50 Buscar ". 603 00:33:40,800 --> 00:33:44,170 Cerrar Modelo, el cuerpo de cierre, HTML. 604 00:33:44,170 --> 00:33:46,280 Vamos a ver lo que tenemos en el formulario de esta página web. 605 00:33:46,280 --> 00:33:48,260 Así que me voy a mi navegador, 606 00:33:48,260 --> 00:33:50,360 déjame ir, todavía, a host local. 607 00:33:50,360 --> 00:33:54,650 Esto sigue siendo index.html, así que si quiero ver el archivo llamado search0, 608 00:33:54,650 --> 00:33:59,710 Simplemente puedo hacer / search0.html, introduzca - 609 00:33:59,710 --> 00:34:01,880 y el primero de mis errores. 610 00:34:01,880 --> 00:34:04,400 ¿Qué está pasando? Yo claramente no tiene permiso 611 00:34:04,400 --> 00:34:06,430 para acceder a este archivo, por alguna razón. 612 00:34:06,430 --> 00:34:10,170 Pero eso es porque, a diferencia del trabajo que hemos hecho hasta ahora en C, 613 00:34:10,170 --> 00:34:14,340 donde los programas que escriben se supone que son runable por usted, 614 00:34:14,340 --> 00:34:17,590 ejecutable por usted, eso no es realmente el caso en la Web, 615 00:34:17,590 --> 00:34:21,010 por lo cual a veces es posible que desee crear archivos en un servidor, 616 00:34:21,010 --> 00:34:23,310 pero usted no quiere que todo el mundo pueda verlos. 617 00:34:23,310 --> 00:34:25,469 Más bien, quiere que el mundo vea algunos archivos 618 00:34:25,469 --> 00:34:27,730 pero no en otras, sólo por el bien de la privacidad. 619 00:34:27,730 --> 00:34:30,730 Así que es más de una base opt-in cuando estás haciendo las cosas en la Web. 620 00:34:30,730 --> 00:34:32,810 Por eso, ¡realmente me escriba ls aquí, 621 00:34:32,810 --> 00:34:37,440 y ver los archivos que tengo, pero recuerda que si lo hago ls-l por mucho tiempo, 622 00:34:37,440 --> 00:34:41,520 Voy a conseguir un listado más largo que me da algunos detalles más sobre estos archivos 623 00:34:41,520 --> 00:34:45,139 que ahora son, en realidad, por primera vez, relevante para nosotros. 624 00:34:45,139 --> 00:34:47,840 Tenga en cuenta que en la extrema derecha son los nombres de mis archivos, 625 00:34:47,840 --> 00:34:50,690 y después del momento en que la última modificación o copiado. 626 00:34:50,690 --> 00:34:54,370 Este número es el qué? ¿Recuerdas? 627 00:34:54,370 --> 00:34:56,400 El tamaño en bytes, el tamaño del archivo es. 628 00:34:56,400 --> 00:34:59,520 >> Así que me parece que tienen algún tipo de logo aquí que es más grande que todos los otros archivos. 629 00:34:59,520 --> 00:35:03,610 Esto es lo que soy, esto es lo que soy y lo que el grupo que me encuentro 630 00:35:03,610 --> 00:35:07,430 Pero entonces, por aquí a la izquierda es un poco críptico de secuencia, 631 00:35:07,430 --> 00:35:10,040 y hablamos, creo que, en pocas palabras acerca de esto en el pasado, 632 00:35:10,040 --> 00:35:12,050 pero esto tiene que ver con los permisos. 633 00:35:12,050 --> 00:35:14,020 Y aunque eso es un poco confuso, 634 00:35:14,020 --> 00:35:17,270 RW probablemente significa leer y escribir. 635 00:35:17,270 --> 00:35:22,560 Así que resulta que estos guiones denotan conjuntos de permisos diferentes para diferentes personas. 636 00:35:22,560 --> 00:35:24,730 Y el patrón es, esencialmente, de la siguiente manera. 637 00:35:24,730 --> 00:35:27,650 Cuando usted ve una secuencia de guiones aquí, se ven de la siguiente manera. 638 00:35:27,650 --> 00:35:30,450 Hay un guión, luego hay otros tres guiones, 639 00:35:30,450 --> 00:35:33,390 luego hay otros tres, entonces hay otros tres. 640 00:35:33,390 --> 00:35:36,800 La primera de ellas es o bien un guión o un anuncio para su directorio. 641 00:35:36,800 --> 00:35:40,220 Así que uno es bastante fácil. Si se trata de una carpeta, se dice d, de lo contrario es un guión. 642 00:35:40,220 --> 00:35:44,080 Hay un par de otros casos, pero por ahora sólo tendremos que cuidar sobre los archivos y directorios. 643 00:35:44,080 --> 00:35:48,090 Estos próximos tres guiones - y he insertado artificialmente los espacios. 644 00:35:48,090 --> 00:35:50,490 Eran, evidentemente, no existe cuando los vimos hace un momento. 645 00:35:50,490 --> 00:35:52,900 Estos son los permisos del propietario del archivo, 646 00:35:52,900 --> 00:35:55,840 y recordar desde hace un segundo que se leer y escribir. 647 00:35:55,840 --> 00:35:58,560 Eso era porque yo, como la persona que creó el archivo hace un momento, 648 00:35:58,560 --> 00:36:01,250 Yo, sólo por defecto, en un equipo Linux, 649 00:36:01,250 --> 00:36:03,910 tienen la capacidad de seguir leyendo y escribiendo ese archivo. 650 00:36:03,910 --> 00:36:07,170 >> Así que el sistema operativo sólo me da RW de forma automática. 651 00:36:07,170 --> 00:36:10,840 Los medios se refieren a mi grupo, el de los estudiantes, 652 00:36:10,840 --> 00:36:14,590 que es una especie de sentido en el aparato porque soy la única persona que usa el aparato. 653 00:36:14,590 --> 00:36:16,620 Así que permítanme saludar a mis manos en eso por ahora. 654 00:36:16,620 --> 00:36:19,190 Sin embargo, los últimos son los más importantes para la Web. 655 00:36:19,190 --> 00:36:21,580 Se trata de todos los demás en el mundo, y el hecho de 656 00:36:21,580 --> 00:36:24,600 que eso está --- significa que nadie más en el mundo 657 00:36:24,600 --> 00:36:26,680 cuenta con todos los permisos de este fichero. 658 00:36:26,680 --> 00:36:29,180 Es evidente que un problema, así que tengo que arreglar esto 659 00:36:29,180 --> 00:36:33,830 de alguna manera dar al mundo qué? Leer y escribir? 660 00:36:33,830 --> 00:36:35,850 Eso es probablemente tonta, ¿verdad? Yo no quiero que nadie en la Web 661 00:36:35,850 --> 00:36:38,530 para ir a visitar mi página y cambiar de alguna manera ese archivo, 662 00:36:38,530 --> 00:36:40,800 a pesar de que realmente no podía con un archivo HTML, 663 00:36:40,800 --> 00:36:44,110 pero sólo en principio, probablemente sólo quiero que sean capaces de leerlo. 664 00:36:44,110 --> 00:36:47,910 ¿Qué significa para leerlo? Esto no quiere decir que van a preocuparse por el código HTML actual, 665 00:36:47,910 --> 00:36:51,820 pero el navegador tiene que ser capaz de analizar ese lenguaje de marcado, 666 00:36:51,820 --> 00:36:53,720 de arriba a abajo, de izquierda a derecha. 667 00:36:53,720 --> 00:36:57,990 Así que alguien en la Web tiene que ser capaz de leer, así que mínimamente necesario darle r. 668 00:36:57,990 --> 00:37:00,240 Puedo hacer esto en diferentes maneras, pero quizás 669 00:37:00,240 --> 00:37:03,080 el más simple es ejecutar este comando aquí. 670 00:37:03,080 --> 00:37:10,860 Chmod, el modo de cambio, entonces a + r para todo todo el mundo, en el mundo + leer 671 00:37:10,860 --> 00:37:13,830 y luego el nombre del archivo, search0.html. 672 00:37:13,830 --> 00:37:18,310 >> Y si hago ls-l otra vez, note que ese archivo ha cambiado, 673 00:37:18,310 --> 00:37:21,440 y de hecho, me he convertido en r para todos. 674 00:37:21,440 --> 00:37:23,350 También lo he encendido para mi grupo, pero eso está bien, 675 00:37:23,350 --> 00:37:27,150 porque si yo me convirtiera en el de todos, mi grupo es un subconjunto de eso. 676 00:37:27,150 --> 00:37:31,480 Así que eso también está bien. Esto sólo significa que el ordenador ha hecho que ahora sea legible. 677 00:37:31,480 --> 00:37:34,430 Ahora voy a volver a mi navegador, haga clic en recargar. 678 00:37:34,430 --> 00:37:36,330 Ah-ha. Ahora tenemos CS50 Buscar. 679 00:37:36,330 --> 00:37:39,830 Me he acercado un poco artificial - Motor de búsqueda bastante horrible. 680 00:37:39,830 --> 00:37:41,930 Pero vamos a ver si realmente funciona. 681 00:37:41,930 --> 00:37:45,880 En primer lugar, permítanme hacer una simple comprobación rápida, déjame controlar y haga clic en ver el código fuente de página. 682 00:37:45,880 --> 00:37:50,780 Tenga en cuenta que dentro de Chrome ahora estamos viendo el mismo HTML que yo mismo he creado. 683 00:37:50,780 --> 00:37:55,420 No se confunda aquí, sin embargo. No puedo empezar a cambiar el código aquí, 684 00:37:55,420 --> 00:37:59,420 porque el navegador tiene una vista de sólo lectura de este código. 685 00:37:59,420 --> 00:38:06,060 El navegador acaba de pedir host local para un archivo llamado search0.html. 686 00:38:06,060 --> 00:38:09,490 Ahora es casualidad que el aparato 687 00:38:09,490 --> 00:38:13,480 pasa a estar en el mismo equipo que mi navegador. 688 00:38:13,480 --> 00:38:20,470 Yo sólo podría tener, de manera equivalente, han escrito en www.facebook.com/search0.html, 689 00:38:20,470 --> 00:38:23,830 y si Facebook tiene un archivo llamado así, entonces me estaría viendo su HTML. 690 00:38:23,830 --> 00:38:27,360 Y, por supuesto, no puedo cambiar el archivo que regresa de Facebook, tampoco. 691 00:38:27,360 --> 00:38:29,360 Así que ahora estamos especie de desdibujar las líneas. 692 00:38:29,360 --> 00:38:32,130 El aparato es a la vez un servidor, servir las páginas web, 693 00:38:32,130 --> 00:38:34,870 pero también es un cliente en el sentido de que yo estoy usando un navegador 694 00:38:34,870 --> 00:38:37,630 que hablar con ese servidor. 695 00:38:37,630 --> 00:38:39,610 Así que vamos a ver si mi motor de búsqueda de Google funciona. 696 00:38:39,610 --> 00:38:44,930 Déjenme seguir adelante y buscar rápido zorro marrón, introduzca. 697 00:38:44,930 --> 00:38:47,540 Y voilá, ahora tengo mi propio motor de búsqueda. 698 00:38:47,540 --> 00:38:51,460 >> Pero, ¿cómo funciona esto? 699 00:38:51,460 --> 00:38:55,380 Un poco de un tramo, pero - y ahora no puedes ver, precisamente, la parte que es de su interés. 700 00:38:55,380 --> 00:38:57,370 Observa lo que sucede. 701 00:38:57,370 --> 00:39:00,430 Observe la URL. Resulta que ese método, 702 00:39:00,430 --> 00:39:02,780 llamado conseguirlo, es súper simple. 703 00:39:02,780 --> 00:39:10,270 Cuando se especifica en una forma que usted quiere "obtener" resultados de algún servidor, 704 00:39:10,270 --> 00:39:13,200 lo que va a hacer es tomar lo que usted escribe en la forma 705 00:39:13,200 --> 00:39:15,290 y lo puso en la URL. 706 00:39:15,290 --> 00:39:18,580 Va a estandarizar la forma en que se pone en la URL de la siguiente manera. 707 00:39:18,580 --> 00:39:22,290 Tenga en cuenta que esta es la URL que fue el valor del atributo de mi acción. 708 00:39:22,290 --> 00:39:24,730 Ahí es donde yo quería que la forma de terminar. 709 00:39:24,730 --> 00:39:26,950 Pero a continuación, observe este signo de interrogación. 710 00:39:26,950 --> 00:39:30,230 Esta es una convención en la Web mediante el cual hacer aportaciones usuario 711 00:39:30,230 --> 00:39:35,320 a un sitio web, añadir a la URL de un signo de interrogación, 712 00:39:35,320 --> 00:39:38,330 y entonces usted tiene un montón de pares clave-valor. 713 00:39:38,330 --> 00:39:42,380 El nombre de una tecla, también conocido como un parámetro en la Web, 714 00:39:42,380 --> 00:39:46,380 entonces usted tiene un signo igual, entonces usted tiene el valor de ese parámetro. 715 00:39:46,380 --> 00:39:49,810 Así que es esencialmente un nombre de variable y un valor variable, 716 00:39:49,810 --> 00:39:54,250 pero los nombres de variables y valores de vino de la forma HTML. 717 00:39:54,250 --> 00:39:56,250 ¿Por qué son las cosas positivas allí, qué te parece? 718 00:39:56,250 --> 00:39:59,340 Porque no escribir + entre mis palabras. 719 00:39:59,340 --> 00:40:01,430 [Estudiante, ininteligible] 720 00:40:01,430 --> 00:40:05,080 >> Sí, es sólo para el espaciamiento. Las probabilidades son, cada vez que he visto una URL, 721 00:40:05,080 --> 00:40:07,320 Nunca hay espacios en él, aunque sólo sea porque 722 00:40:07,320 --> 00:40:09,440 si lo hubiera, realmente no se podía copiar y pegar 723 00:40:09,440 --> 00:40:12,700 en un mensaje instantáneo o en un correo electrónico, ya que se rompería. 724 00:40:12,700 --> 00:40:15,420 Usted quiere que el asunto de ser una cadena de caracteres contiguos. 725 00:40:15,450 --> 00:40:18,450 >> Así que el navegador es lo suficientemente inteligente como para darse cuenta, uh-uh. 726 00:40:18,450 --> 00:40:22,610 No sólo hay que poner un espacio allí. Déjame codificar el espacio de alguna manera estándar. 727 00:40:22,610 --> 00:40:25,170 Una de las convenciones para hacerlo es hacer que el navegador 728 00:40:25,170 --> 00:40:29,350 poner automáticamente un + en la que de otro modo tendría un espacio. 729 00:40:29,350 --> 00:40:32,140 Así que ahora, observe Google ha tenido la gentileza de fácil de usar. 730 00:40:32,140 --> 00:40:34,380 Desde luego, no ha creado esta página web, 731 00:40:34,380 --> 00:40:37,200 pero se han rellenado previamente su propio campo de texto 732 00:40:37,200 --> 00:40:39,490 con lo que, precisamente, he escrito pulg 733 00:40:39,490 --> 00:40:43,090 Supongamos que desea buscar otra cosa, como un perro perezoso. 734 00:40:43,090 --> 00:40:45,340 Sólo puedo escribir esto aquí, de investigación. 735 00:40:45,340 --> 00:40:47,730 Observe que la dirección URL cambia aquí, 736 00:40:47,730 --> 00:40:51,390 notar entonces que en realidad se puede buscar lo que quiera 737 00:40:51,390 --> 00:40:53,610 sólo mediante la comprensión de cómo funcionan los URLs. 738 00:40:53,610 --> 00:40:56,840 Que podía hacer gato perezoso, entrar, 739 00:40:56,840 --> 00:41:01,370 y noto ahora me estoy poniendo un poco flojo - debemos? Siento que debería. 740 00:41:01,370 --> 00:41:09,900 Tengo un gato muy perezoso. 741 00:41:09,900 --> 00:41:11,930 Está bien. Esta es una de las cosas más estúpidas que he hecho. 742 00:41:11,930 --> 00:41:17,160 Pero eso es un gato perezoso. 743 00:41:17,160 --> 00:41:19,730 De todos modos, ¿cuál es el punto clave aquí? 744 00:41:19,730 --> 00:41:22,830 Ahora estamos en una especie de juego en el mundo de HTTP. 745 00:41:22,830 --> 00:41:26,050 HTML es sólo este lenguaje de marcas, la etiqueta abierta, la etiqueta de cierre, 746 00:41:26,050 --> 00:41:29,490 que indica al navegador cómo presentar el contenido de una página web. 747 00:41:29,490 --> 00:41:32,850 Sin embargo, cuando se inicia la transmisión de datos a través de Internet 748 00:41:32,850 --> 00:41:36,290 entre el navegador web y el servidor, que es donde este protocolo 749 00:41:36,290 --> 00:41:39,370 conocido como Protocolo de transferencia de hipertexto se hace cargo. 750 00:41:39,370 --> 00:41:42,630 Este es el tipo de convención humana, cuando Sam y yo nos dimos la mano el lunes, 751 00:41:42,630 --> 00:41:48,300 iniciar una conexión y después de cerrar una conexión, la misma idea aquí. 752 00:41:48,300 --> 00:41:53,100 ¿Cómo son los resultados de Google vuelve a mí? 753 00:41:53,100 --> 00:41:55,290 ¿Cómo está mi envío del formulario de ir a Google? 754 00:41:55,290 --> 00:41:58,160 Bueno, recuperará el otro día que lo que realmente está pasando 755 00:41:58,160 --> 00:42:02,150 debajo de la capucha cuando se solicita una página web es, 756 00:42:02,150 --> 00:42:04,860 su navegador está enviando un mensaje un tanto críptico, como 757 00:42:04,860 --> 00:42:09,510 GET / HTTP/1.1 para la página de inicio predeterminada. 758 00:42:09,510 --> 00:42:13,000 >> O, en este caso, porque específicamente solicitado anteriormente 759 00:42:13,000 --> 00:42:17,340 search0.html, este sería entonces el mensaje algo críptico- 760 00:42:17,340 --> 00:42:20,040 que el navegador envía al aparato. 761 00:42:20,040 --> 00:42:23,090 O, en este caso de Google, lo que realmente envió 762 00:42:23,090 --> 00:42:33,740 es una petición a / de búsqueda y luego? q = gato perezoso, con una ventaja allí. 763 00:42:33,740 --> 00:42:36,790 Así que este mensaje, que yo, el ser humano, nunca estoy escribiendo, 764 00:42:36,790 --> 00:42:40,620 pero está siendo enviado por el navegador, así es como HTTP que pasa. 765 00:42:40,620 --> 00:42:43,240 Esto es el equivalente a nuestras manos después de haber sacudido. 766 00:42:43,240 --> 00:42:46,320 Esta es la petición, y el servidor está a punto de enviar una respuesta. 767 00:42:46,320 --> 00:42:48,560 Así que vamos a echar un vistazo a esto bajo la campana. 768 00:42:48,560 --> 00:42:55,320 Al igual que antes, se puede abrir este campo especial en un navegador. 769 00:42:55,320 --> 00:42:58,720 Ver página, inspeccionar elementos. 770 00:42:58,720 --> 00:43:01,550 Así, de acuerdo inspeccionar elemento, observe que lo que ha ocurrido en Chrome, 771 00:43:01,550 --> 00:43:04,160 y el IE y Firefox tienen mecanismos similares, 772 00:43:04,160 --> 00:43:07,370 tenemos estas herramientas de desarrollo accesibles para nosotros. 773 00:43:07,370 --> 00:43:09,630 La gente normal no utilizar estas fichas. 774 00:43:09,630 --> 00:43:11,940 Pero, ahora, está interesado en lo que está pasando 775 00:43:11,940 --> 00:43:13,890 debajo de la capucha en el nivel de red. 776 00:43:13,890 --> 00:43:16,130 Así que si me levanto el nivel de la red aquí, 777 00:43:16,130 --> 00:43:18,510 déjame seguir adelante y ampliar esta ventana, 778 00:43:18,510 --> 00:43:21,840 abrir esta entrada aquí, y mira las cabeceras. 779 00:43:21,840 --> 00:43:26,010 Entonces, ¿qué sucede cuando solicito un archivo de un servidor web 780 00:43:26,010 --> 00:43:29,410 es mi navegador envía un montón de cosas. 781 00:43:29,410 --> 00:43:32,390 Y déjame ver el código fuente. Así, bajo los encabezados de solicitud, 782 00:43:32,390 --> 00:43:35,250 Y esto es sólo Chrome mostrarme alguna salida de diagnóstico, 783 00:43:35,250 --> 00:43:37,340 algo así como un depurador de algún tipo, 784 00:43:37,340 --> 00:43:40,500 cuenta de que lo que he destacado aquí es precisamente lo que 785 00:43:40,500 --> 00:43:47,060 Chrome está enviando al servidor con el fin de generar un archivo llamado search0.html. 786 00:43:47,060 --> 00:43:50,160 Es revelador que el servidor lo que piensa que es su nombre, 787 00:43:50,160 --> 00:43:52,210 gracias a este campo de dos puntos de acogida, a continuación, hay algunos 788 00:43:52,210 --> 00:43:56,950 algo bastante esotérico aquí, como algo que ver con fechas y horas, 789 00:43:56,950 --> 00:43:59,720 algo que ver con las lenguas que el navegador entiende, 790 00:43:59,720 --> 00:44:02,850 pero las líneas son muy importantes estos primeros dos aquí. 791 00:44:02,850 --> 00:44:05,490 >> ¿Qué hace el servidor responde con? Bueno, si nos desplazamos hasta aquí 792 00:44:05,490 --> 00:44:08,510 y ver el código fuente de esta cosa, observe que el servidor 793 00:44:08,510 --> 00:44:13,700 ha respondido con un mensaje algo críptico, así, no 304 modificado. 794 00:44:13,700 --> 00:44:16,030 Eso es un poco extraño, me dejó realmente tratar de solucionar este problema. 795 00:44:16,030 --> 00:44:18,670 Que me mantenga presionada la tecla MAYÚS y haga clic en recargar hasta aquí 796 00:44:18,670 --> 00:44:22,460 para forzar al navegador para hacer realidad esta solicitud por primera vez. 797 00:44:22,460 --> 00:44:25,700 Entonces déjame acercar, y vamos a ver ahora que la respuesta del servidor, 798 00:44:25,700 --> 00:44:28,950 porque he tenido cambio, es 200 OK. 799 00:44:28,950 --> 00:44:31,170 Así que usted probablemente nunca ha visto el número 200 800 00:44:31,170 --> 00:44:33,300 en números el contexto de la Web, pero lo que 801 00:44:33,300 --> 00:44:36,760 ¿ha visto a veces inesperadamente de un servidor? 802 00:44:36,760 --> 00:44:42,010 404, archivo no encontrado, 403, prohibido; 500, error del servidor. 803 00:44:42,010 --> 00:44:44,890 Así que hay estos códigos numéricos que el mundo se utiliza en la Web 804 00:44:44,890 --> 00:44:47,870 para indicar los errores, al igual que las funciones de C 805 00:44:47,870 --> 00:44:51,030 puede devolver errores y principal puede devolver códigos de salida. 806 00:44:51,030 --> 00:44:54,160 200, sin embargo, rara vez se ve porque significa que todo está bien. 807 00:44:54,160 --> 00:44:59,000 Y 304 que probablemente nunca vea porque lo que se lo que significa? 808 00:44:59,000 --> 00:45:03,330 Eso nada tiene - vamos a ver si podemos simular esto de nuevo - 809 00:45:03,330 --> 00:45:07,170 Oh, ahora no está cooperando. 304 dijo que no se modifica, 810 00:45:07,170 --> 00:45:09,170 así que ¿por qué el servidor incluso de funcionar? 811 00:45:09,170 --> 00:45:12,550 Pues bien, de la eficiencia, un servidor web de forma automática, 812 00:45:12,550 --> 00:45:16,570 Si el archivo no ha cambiado, no va a retransmitir el archivo HTML conjunto. 813 00:45:16,570 --> 00:45:19,150 Simplemente voy a decirle al navegador que no ha cambiado. 814 00:45:19,150 --> 00:45:21,220 Sólo tiene que utilizar la copia que ya tiene. 815 00:45:21,220 --> 00:45:22,650 Así que esta noción de almacenamiento en caché en la Web 816 00:45:22,650 --> 00:45:25,840 para el funcionamiento, para que no pierdas el tiempo y ancho de banda de los residuos 817 00:45:25,840 --> 00:45:29,160 la descarga de archivos de nuevo y de nuevo innecesariamente. 818 00:45:29,160 --> 00:45:31,460 >> Pero esta página web, ahora, era súper simple, 819 00:45:31,460 --> 00:45:34,980 y sólo me muestra el código HTML que regresó. 820 00:45:34,980 --> 00:45:40,940 Vamos a utilizar realmente la ficha red ahora para hacer una búsqueda en Google como quick brown fox. 821 00:45:40,940 --> 00:45:43,010 Permítanme continuación, haga clic CS50 búsqueda, 822 00:45:43,010 --> 00:45:46,950 y ahora, fíjate en el fondo aquí un montón de cosas volvieron 823 00:45:46,950 --> 00:45:49,900 porque cuando visita un sitio web real como Google.com, 824 00:45:49,900 --> 00:45:53,520 que tienen imágenes, tienen texto, tienen un lenguaje llamado JavaScript allí. 825 00:45:53,520 --> 00:45:55,940 Así que cada fila de esta tabla aquí abajo 826 00:45:55,940 --> 00:46:01,490 representa algo que Google escupir en respuesta a mi solicitud única. 827 00:46:01,490 --> 00:46:04,160 El que más me preocupa, sin embargo, es la primera. 828 00:46:04,160 --> 00:46:08,420 Y si me voy a la búsqueda, solicitud, haga clic aquí ver el código fuente, 829 00:46:08,420 --> 00:46:11,300 cuenta de que, efectivamente, el mensaje críptico que el navegador envía 830 00:46:11,300 --> 00:46:15,010 a Google fueron estas dos líneas aquí, 831 00:46:15,010 --> 00:46:18,420 seguida de alguna información aquí arcano que vamos a ignorar por ahora. 832 00:46:18,420 --> 00:46:20,890 Pero nótese también que Chrome es bastante práctico con, 833 00:46:20,890 --> 00:46:24,540 también está mostrándome la cadena de consulta que fue enviado pulg 834 00:46:24,540 --> 00:46:27,410 Así que en lugar de volver a mostrar este, que fue enviado literalmente, 835 00:46:27,410 --> 00:46:30,800 si veo lo decodifica, Chrome, sólo para propósitos de depuración, 836 00:46:30,800 --> 00:46:34,270 para los desarrolladores como nosotros, se me acaba de mostrar una versión humana de usar de - 837 00:46:34,270 --> 00:46:36,390 no es así como se escribe zorro, al parecer. 838 00:46:36,390 --> 00:46:40,520 Estoy notando esto ahora - pero le está mostrando lo que, al parecer, escribió. 839 00:46:40,520 --> 00:46:45,340 Mientras tanto, la respuesta que volvió del servidor es de nuevo 200 OK. 840 00:46:45,340 --> 00:46:47,930 Pero se incluye en la respuesta que, por supuesto, 841 00:46:47,930 --> 00:46:51,920 si en realidad ver la página HTML - 842 00:46:51,920 --> 00:46:55,440 lo siento, este es un atajo de teclado poco ido mal hoy. 843 00:46:55,440 --> 00:46:59,020 >> Yo me ocuparé de eso más tarde. Así que si realmente ver el código fuente de la página, 844 00:46:59,020 --> 00:47:02,990 que puedo hacer aquí abajo haciendo clic en la respuesta, 845 00:47:02,990 --> 00:47:10,080 esto es lo que realmente escupir de nuevo, además de que críptico mensaje 200 OK del servidor. 846 00:47:10,080 --> 00:47:12,520 Un poco críptico, pero ¿dónde está todo esto viene? 847 00:47:12,520 --> 00:47:15,570 Bueno, vamos a hacer otra cosa aquí. Otro comando-algo críptica, 848 00:47:15,570 --> 00:47:20,530 pero este tipo de uno de ordenada en que se nos revela exactamente lo que está pasando debajo de la capucha. 849 00:47:20,530 --> 00:47:22,530 Así que estoy de vuelta en mi Mac aquí, he conectado 850 00:47:22,530 --> 00:47:25,980 a través de un programa llamado SSH, Secure Shell, a otro servidor 851 00:47:25,980 --> 00:47:28,940 porque la mayoría de las computadoras de Harvard bloquear el comando que vamos a ejecutar 852 00:47:28,940 --> 00:47:31,640 porque hay este comando en algunos servidores de traceroute llamado 853 00:47:31,640 --> 00:47:34,810 que le permite rastrear la ruta entre los puntos A y B, 854 00:47:34,810 --> 00:47:37,020 y hasta el momento hemos estado tomando completamente por sentado 855 00:47:37,020 --> 00:47:40,170 que puedo escribir en Google.com y de alguna manera obtener datos de vuelta 856 00:47:40,170 --> 00:47:43,530 desde el otro lado del país o al otro lado del mundo. 857 00:47:43,530 --> 00:47:45,810 Con traceroute en realidad podemos bucear un poco más profundo 858 00:47:45,810 --> 00:47:49,370 en cuanto a cómo funciona Internet, y ver lo que pasa debajo del capó. 859 00:47:49,370 --> 00:47:54,440 Así que vamos a seguir adelante y arbitrariamente trazar una ruta, digamos, Stanford.edu, 860 00:47:54,440 --> 00:47:57,150 que está al otro lado del país, y pulsa enter. 861 00:47:57,150 --> 00:47:59,380 Este comando puede ser super-rápido o muy lento, 862 00:47:59,380 --> 00:48:02,010 pero lo que estamos viendo ahora, línea por línea, 863 00:48:02,010 --> 00:48:08,060 es cada uno de los pasos o saltos entre nosotros y Palo Alto, o Stanford, 864 00:48:08,060 --> 00:48:11,010 donde tienen su servidor web. 865 00:48:11,010 --> 00:48:16,600 Entonces, ¿qué significa cada una de estas líneas representan más concretamente, ¿no? 866 00:48:16,600 --> 00:48:19,100 Un pedazo de jerga de Internet? [Estudiante, ininteligible] 867 00:48:19,100 --> 00:48:21,570 >> ¿Qué es eso? [Estudiante, ininteligible] 868 00:48:21,570 --> 00:48:25,390 >> Oh, así que hay veces, pero ¿qué significa cada fila - ¿qué es lo que quiero decir con hop? 869 00:48:25,390 --> 00:48:29,140 >> Bueno, hay estas cosas en el Internet llamados routers. 870 00:48:29,140 --> 00:48:33,020 Y routers, como su nombre indica, la información de ruta del punto a al punto b. 871 00:48:33,020 --> 00:48:36,920 Pero hay varios puntos más allá de a y b. 872 00:48:36,920 --> 00:48:40,010 Hay c y d, ey f entre la fila 1, 873 00:48:40,010 --> 00:48:43,480 que pasa a ser la dirección IP de mi computadora, 874 00:48:43,480 --> 00:48:46,890 o mi dirección numérica que identifica de forma exclusiva el ordenador, 875 00:48:46,890 --> 00:48:50,300 y el paso 15, que es realmente el servidor web sexto, 876 00:48:50,300 --> 00:48:54,640 al parecer, que estoy inferir de esto, o la versión 6 de su servidor web en Stanford. 877 00:48:54,640 --> 00:48:56,680 Pero lo que es muy guay es que podemos ver el camino 878 00:48:56,680 --> 00:49:00,480 que mi 0 y el 1 se toma de mi ordenador a Stanford. 879 00:49:00,480 --> 00:49:02,500 Así que el paso 1 es la dirección de mi propia computadora. 880 00:49:02,500 --> 00:49:05,760 Cada ordenador en Internet tiene un identificador único que se parece a esto. 881 00:49:05,760 --> 00:49:08,150 Number.number.number.number. 882 00:49:08,150 --> 00:49:10,370 En algún lugar de este campus, probablemente en el centro de la ciencia, 883 00:49:10,370 --> 00:49:16,780 es un router gateway llamado Core 2-te83, sea lo que sea, 884 00:49:16,780 --> 00:49:20,590 por lo que este es uno de los grandes routers de lujo de Harvard que dirige un gran parte de su tráfico. 885 00:49:20,590 --> 00:49:24,640 He aquí otro de los routers de Harvard, este es un Border Gateway, 886 00:49:24,640 --> 00:49:28,310 significado frontera es probablemente en la periferia del campus en alguna parte. 887 00:49:28,480 --> 00:49:32,790 Entonces hay una nox, fila 4, que es encrucijada del Norte, 888 00:49:32,790 --> 00:49:35,070 que es un gran ISP, Internet Service Provider, 889 00:49:35,070 --> 00:49:37,740 que lugares como Harvard conectar hasta. 890 00:49:37,740 --> 00:49:40,760 Pero luego las cosas se ponen un poco más interesante en la línea 6. 891 00:49:40,760 --> 00:49:45,960 ¿Dónde están mis pedacitos de repente? Kansas. 892 00:49:45,960 --> 00:49:49,300 El mundo tiene la costumbre de utilizar los códigos de aeropuerto en un montón de estas cosas, 893 00:49:49,300 --> 00:49:52,900 o por lo menos abreviaturas de estados o ciudades, 894 00:49:52,900 --> 00:49:56,490 por lo que parece, en sólo 60 ms, 895 00:49:56,490 --> 00:49:59,420 un paquete de información, 0 y 1 es de mi laptop 896 00:49:59,420 --> 00:50:03,210 Tiene todo el camino a Kansas, y de nuevo, en 60 ms. 897 00:50:03,210 --> 00:50:08,180 >> Por otra parte, después de Kansas, se hizo un recorrido a través de Houston, probablemente, 898 00:50:08,180 --> 00:50:10,140 como se sugiere por el nombre de este servidor. 899 00:50:10,140 --> 00:50:13,310 Así como un servidor en Internet debe tener una dirección numérica, 900 00:50:13,310 --> 00:50:18,360 también puede, opcionalmente, dispone de una dirección un poco más amigable que los seres humanos ocurrió. 901 00:50:18,360 --> 00:50:20,510 Ahora, en el paso 8, no sabemos lo que es. 902 00:50:20,510 --> 00:50:22,550 A veces, los routers sólo un poco de te ignoran, 903 00:50:22,550 --> 00:50:25,010 y simplemente no responden a las preguntas, así que está bien. 904 00:50:25,010 --> 00:50:29,290 El de después de la etapa 8 es aparentemente dónde? Los Ángeles 905 00:50:29,290 --> 00:50:35,290 Observe que en sólo 78 ms, lo que nos lleva a los seres humanos como 6 + horas en hacer físicamente, 906 00:50:35,290 --> 00:50:40,110 toma los paquetes de información a través de Internet 78 ms para viajar tan lejos. 907 00:50:40,110 --> 00:50:45,890 Paso 10 se encuentra en Los Ángeles, así, y el paso 11 parece haber ido al norte, hasta cerca de Stanford. 908 00:50:45,890 --> 00:50:48,750 Esta es su enrutador de límite o frontera router. 909 00:50:48,750 --> 00:50:51,240 Un par de pasos de Stanford que nos están ignorando, 910 00:50:51,240 --> 00:50:55,610 y, por último, llegamos al servidor web en tan sólo 87 ms. 911 00:50:55,610 --> 00:50:57,760 Ahora, todas estas cifras, en un aparte, 912 00:50:57,760 --> 00:51:00,640 sólo le dirá cuánto tiempo le toma a los datos a obtener de mí 913 00:51:00,640 --> 00:51:03,530 para cada uno de estos routers, y no es acumulativo. 914 00:51:03,530 --> 00:51:06,960 Lo que este programa hace es, primero envía un mensaje, en esencia, al primer router. 915 00:51:06,960 --> 00:51:09,490 Entonces, un segundo al router; entonces uno al router tercero, 916 00:51:09,490 --> 00:51:12,610 midiendo cada vez. Así que en teoría, estos tiempos serán cada vez más 917 00:51:12,610 --> 00:51:14,860 o al menos muy cerca el uno del otro, 918 00:51:14,860 --> 00:51:18,090 y, de hecho, los que están aquí en el campus son súper pequeño. 919 00:51:18,090 --> 00:51:20,820 Tan pronto como empiece a ir al otro lado del país, se necesitan datos 920 00:51:20,820 --> 00:51:24,830 un poco más de tiempo para viajar, más cercano a 100 ms, más o menos. 921 00:51:24,830 --> 00:51:28,330 Pero vamos a ir en otra dirección ahora. ¿Qué hay de la Universidad de Cambridge en el Reino Unido? 922 00:51:28,330 --> 00:51:32,540 Déjame en lugar de ejecutar traceroute www.cam de Cambridge, 923 00:51:32,540 --> 00:51:36,710 . VCA durante académico, uk., Y pulsa enter aquí. 924 00:51:36,710 --> 00:51:38,830 Eso fue muy muy rápido. 925 00:51:38,830 --> 00:51:43,300 Mis datos literalmente se fue a Cambridge, Inglaterra, en esa fracción de segundo de tiempo. 926 00:51:43,300 --> 00:51:45,340 >> Así que vamos a ver el camino que tomó. 927 00:51:45,340 --> 00:51:47,520 Harvard, Harvard, Harvard, encrucijada del Norte, 928 00:51:47,520 --> 00:51:52,690 que es un proveedor de Internet, y entonces este es encrucijada del Norte, y luego bam. 929 00:51:52,690 --> 00:51:58,320 ¿Qué hay entre los pasos 6 y 7, router 6 y 7? 930 00:51:58,320 --> 00:52:02,040 El Océano Atlántico. Y estamos inferir esto por el hecho de que 931 00:52:02,040 --> 00:52:06,530 vamos a partir de aquí a 20 ms 80 ms aquí. 932 00:52:06,530 --> 00:52:10,050 Así que algo tuvo 60 ms, más o menos, de superar. 933 00:52:10,050 --> 00:52:12,910 Y eso fue probablemente un gran cuerpo de agua. 934 00:52:12,910 --> 00:52:15,250 ¿Qué pasa después de eso? Bueno, aquí estamos en Londres, 935 00:52:15,250 --> 00:52:18,860 sólo 88 ms después. More London, Londres más, 936 00:52:18,860 --> 00:52:21,730 no sabe dónde es esto, pero vamos a suponer que está fuera de Londres, 937 00:52:21,730 --> 00:52:26,390 Cambridge aquí, y por último -, literalmente, de la Universidad de Cambridge 938 00:52:26,390 --> 00:52:29,500 . Something.net, y luego, finalmente, en la línea 16, 939 00:52:29,500 --> 00:52:31,720 su servidor web está aparentemente llamado Scorpius 940 00:52:31,720 --> 00:52:35,500 debajo de la capilla, a pesar de que lo conocemos como www. 941 00:52:35,500 --> 00:52:38,790 Algo alucinante, creo. La primera vez que hice esto, es totalmente me dejó alucinado. 942 00:52:38,790 --> 00:52:41,670 Desafortunadamente, Harvard bloquea este tipo de tráfico, típicamente, en la red. 943 00:52:41,670 --> 00:52:44,340 Así que no puedes hacer es super fácil. 944 00:52:44,340 --> 00:52:48,500 Darse cuenta, sin embargo, esto aquí es posible. 945 00:52:48,500 --> 00:52:53,630 Está bien. Vamos a tomar nuestro hijo de 5 minutos de descanso aquí. Volveremos y bucear más profundamente. 946 00:52:53,630 --> 00:53:00,850 Así que estamos de vuelta, y hemos de tipo deambulaban alrededor en algunas direcciones diferentes aquí. 947 00:53:00,850 --> 00:53:03,700 Así que vamos a resumir exactamente lo que está pasando aquí. 948 00:53:03,700 --> 00:53:07,990 Comenzamos la conversación hablando de este lenguaje llamado HTML. 949 00:53:07,990 --> 00:53:10,680 Una vez más, no es un lenguaje de programación. Es sólo un lenguaje de marcas 950 00:53:10,680 --> 00:53:15,490 que es en gran parte por la estética y la estructuración de los contenidos en forma de una página web. 951 00:53:15,490 --> 00:53:19,220 Pero HTML, por lo tanto, necesita algún tipo de mecanismo 952 00:53:19,220 --> 00:53:22,870 para viajar entre el navegador y el servidor. 953 00:53:22,870 --> 00:53:28,360 HTML por lo tanto, una especie de paseos en la parte superior de esta otra lengua, 954 00:53:28,360 --> 00:53:31,280 o más correctamente, un protocolo, conocido como HTTP. 955 00:53:31,280 --> 00:53:33,730 >> Y HTTP, como lo hemos visto hasta ahora, 956 00:53:33,730 --> 00:53:37,140 es una especie de análogo a esta convención humana de dar la mano. 957 00:53:37,140 --> 00:53:39,940 Cuando un navegador quiere solicitar una página de un servidor, 958 00:53:39,940 --> 00:53:43,450 manda que "conseguir" solicitud desde el navegador al servidor, 959 00:53:43,450 --> 00:53:48,040 y el servidor responde con un número como 200, todo está bien, 960 00:53:48,040 --> 00:53:53,290 así como el HTML o algún mal número como 404, no se encuentra el archivo. 961 00:53:53,290 --> 00:53:58,220 Pero mientras tanto, HTTP en sí misma no es la Internet, per se. 962 00:53:58,220 --> 00:54:01,550 HTTP es solo un servicio, una característica de la Internet 963 00:54:01,550 --> 00:54:05,530 al igual que G es otro servicio de chat, al igual que el correo electrónico es otro servicio. 964 00:54:05,530 --> 00:54:09,180 Hay todo tipo de cosas que se pueden hacer en Internet. 965 00:54:09,180 --> 00:54:12,670 HTTP es una de esas aplicaciones. 966 00:54:12,670 --> 00:54:17,210 Así que además de - HTTP está en la cima de otra cosa 967 00:54:17,210 --> 00:54:21,750 que no mencionó por su nombre, es posible que haya oído hablar de por su nombre, TCP / IP. 968 00:54:21,750 --> 00:54:25,160 Así que la historia nos dijeron que no se trata 969 00:54:25,160 --> 00:54:28,720 cómo los datos viajan desde el punto a al punto b. 970 00:54:28,720 --> 00:54:30,950 Y en este caso, vimos a un nivel muy bajo 971 00:54:30,950 --> 00:54:33,060 router a router a router a router, 972 00:54:33,060 --> 00:54:35,390 cómo los datos que realmente se transmitió. 973 00:54:35,390 --> 00:54:40,510 Pero en el camino, se va a encontrar varios impedimentos. 974 00:54:40,510 --> 00:54:43,770 Además de estos routers, hay cosas que se llaman servidores de seguridad en Internet, 975 00:54:43,770 --> 00:54:46,680 y lo que los datos, tales como que se acaba de transmitir 976 00:54:46,680 --> 00:54:49,720 de mí a Stanford, de mí a Cambridge, 977 00:54:49,720 --> 00:54:54,560 se envía, a este nivel, algo que se llama una dirección IP. 978 00:54:54,560 --> 00:54:57,340 Lo vimos hace un momento, y una dirección IP 979 00:54:57,340 --> 00:55:02,480 es una dirección numérica de la w.x.y.z forma, 980 00:55:02,480 --> 00:55:08,070 donde cada uno de ellos es entre, más o menos, 0 y 255, 981 00:55:08,070 --> 00:55:10,080 aunque usted no puede usar todos esos números. 982 00:55:10,080 --> 00:55:14,220 Pero cada uno de estos marcadores de posición es un número entre 0 y 255. 983 00:55:14,220 --> 00:55:16,820 Así que una dirección IP estos días es de 32 bits. 984 00:55:16,820 --> 00:55:20,780 >> Ahora, eso nos da cuántas posible las direcciones IP en el mundo? 985 00:55:20,780 --> 00:55:24,420 Aproximadamente 4 mil millones, porque cada vez que estamos contando en potencias de 2 986 00:55:24,420 --> 00:55:27,760 todo el camino hasta el 32 de algo, que por lo general nos da 4 millones de dólares. 987 00:55:27,760 --> 00:55:30,160 Así que eso es un montón de direcciones IP, pero es posible que he leído, 988 00:55:30,160 --> 00:55:32,410 o usted puede notar ahora en la prensa popular, 989 00:55:32,410 --> 00:55:36,020 un impulso hacia una nueva versión de IP denominada IPv6. 990 00:55:36,020 --> 00:55:38,290 En este momento estamos utilizando la versión 4. 991 00:55:38,290 --> 00:55:41,060 En realidad no ha habido una versión de 5, estamos saltando a la derecha 6. 992 00:55:41,060 --> 00:55:46,760 Versión 6 se va a utilizar 128 bits para las direcciones IP, que es el freaking enorme. 993 00:55:46,760 --> 00:55:49,430 No debemos salir corriendo desde hace bastante tiempo, 994 00:55:49,430 --> 00:55:52,980 pero hemos comenzado a quedarse sin direcciones IP versión 4, 995 00:55:52,980 --> 00:55:56,110 porque todos tenemos cosas no sólo como ordenadores portátiles y de escritorio, 996 00:55:56,110 --> 00:55:58,700 muchos de nosotros tenemos teléfonos, muchos de nosotros tenemos otros dispositivos 997 00:55:58,700 --> 00:56:01,600 como TiVo y similares que tienen direcciones IP a sí mismos. 998 00:56:01,600 --> 00:56:03,720 Harvard en sí tiene decenas de miles de ordenadores. 999 00:56:03,720 --> 00:56:07,970 Así que el mundo está realmente quedando sin direcciones IP, por lo menos de esta forma. 1000 00:56:07,970 --> 00:56:10,340 Así que en los próximos años, se va a ver las direcciones 1001 00:56:10,340 --> 00:56:12,870 en sus propias computadoras probablemente cambian lentamente 1002 00:56:12,870 --> 00:56:16,740 como cada vez más empresas y universidades empiezan a apoyar la versión más reciente. 1003 00:56:16,740 --> 00:56:22,770 Sin embargo, una dirección IP no es suficiente para una computadora para solicitar datos de ordenador b. 1004 00:56:22,770 --> 00:56:24,950 Debido a que el equipo B podría ser un servidor, 1005 00:56:24,950 --> 00:56:27,600 y un servidor, como he mencionado antes, puede hacer manojos de cosas. 1006 00:56:27,600 --> 00:56:29,940 Se puede alojar páginas web, puede ser un servidor de correo electrónico, 1007 00:56:29,940 --> 00:56:32,310 que puede ser un servidor de Skype, puede ser un servidor de chat G. 1008 00:56:32,310 --> 00:56:35,870 >> Todos estos diferentes servicios que pueden ser proporcionados en un servidor 1009 00:56:35,870 --> 00:56:38,330 todo podría, físicamente, ser en la misma máquina. 1010 00:56:38,330 --> 00:56:40,380 Así que además de las direcciones IP, 1011 00:56:40,380 --> 00:56:43,250 el mundo tiene cosas que se llaman puertos en el Internet. 1012 00:56:43,250 --> 00:56:47,830 Un puerto es sólo un número, de modo que hay un número único para HTTP. 1013 00:56:47,830 --> 00:56:50,280 Su número es 80. 1014 00:56:50,280 --> 00:56:55,870 HTTP también utiliza el número 443, pero más específicamente, para HTTPS encriptados. 1015 00:56:55,870 --> 00:57:00,030 Siempre que vea el s, por seguro, que está usando un número diferente. 1016 00:57:00,030 --> 00:57:06,580 Hay otros números, como el 25, que se utiliza para algo llamado SMTP, también conocido como correo electrónico. 1017 00:57:06,580 --> 00:57:09,620 Hay algo llamado 22 para SSH, 1018 00:57:09,620 --> 00:57:11,850 y hay un montón de puertos que hay por ahí. 1019 00:57:11,850 --> 00:57:14,460 Ahora, nosotros los humanos rara vez se ve estos números. 1020 00:57:14,460 --> 00:57:21,970 Sin embargo, cuando se escribe en una dirección como http://www.facebook.com, 1021 00:57:21,970 --> 00:57:26,560 el navegador está secretamente insertar 80, porque usted está utilizando HTTP. 1022 00:57:26,560 --> 00:57:30,630 Si, en cambio, de tipo HTTPS, se inserta en secreto 443. 1023 00:57:30,630 --> 00:57:35,180 Y podemos ver este tipo de forma manual si me levanto a brower 1024 00:57:35,180 --> 00:57:41,850 e ir a http://www.facebook.com:80. 1025 00:57:41,850 --> 00:57:44,550 Por lo tanto no explícitamente citando sólo el nombre de la página web 1026 00:57:44,550 --> 00:57:47,650 pero el puerto que quiero hablar, y pulsa enter. 1027 00:57:47,650 --> 00:57:50,170 Tenga en cuenta que desaparezca, ya que el navegador asume, 1028 00:57:50,170 --> 00:57:53,360 oh, el 80, yo ni siquiera voy a molestar que muestra que a ti. 1029 00:57:53,360 --> 00:57:56,400 Pero la razón de esto es que si yo realmente quería enviar a alguien un correo electrónico, 1030 00:57:56,400 --> 00:58:02,340 Realmente se va a enviar a ellos en el puerto 25, que es SMTP. 1031 00:58:02,340 --> 00:58:04,890 Un poco de una simplificación excesiva, pero algunos de ustedes tienen amigos 1032 00:58:04,890 --> 00:58:09,290 que trabajan realmente en Facebook, y ellos, del mismo modo, dispone de servidores que reciben correo electrónico. 1033 00:58:09,290 --> 00:58:12,610 >> Cada vez que envíe un email, gmail lo está haciendo por usted 1034 00:58:12,610 --> 00:58:14,960 o Outlook o cualquier otro programa que utilice, 1035 00:58:14,960 --> 00:58:19,270 es una especie de secreto insertando ese número y, 25, en ese caso. 1036 00:58:19,270 --> 00:58:24,490 Es esta combinación de dirección IP y el número que identifica de forma exclusiva 1037 00:58:24,490 --> 00:58:29,190 una computadora conectada a Internet y un servicio específico en ese equipo. 1038 00:58:29,190 --> 00:58:33,460 Ahora, por supuesto, la mayoría de nosotros probablemente nunca han tecleado manualmente una dirección IP. 1039 00:58:33,460 --> 00:58:37,340 Tal vez usted tiene en el aparato, pero en el mundo real, no tanto. 1040 00:58:37,340 --> 00:58:42,750 ¿Por qué no escribir las direcciones IP en los navegadores? 1041 00:58:42,750 --> 00:58:45,860 Se iba a funcionar, de hecho, podemos ver esto, deja que te enseñe 1042 00:58:45,860 --> 00:58:50,000 un otro comando que debería funcionar en casi cualquier lugar en el campus de Harvard, en un Mac o un PC. 1043 00:58:50,000 --> 00:58:53,970 Hay un comando llamado nslookup, el nombre del servidor de búsqueda. 1044 00:58:53,970 --> 00:58:59,960 Si miro hacia arriba www.cnn.com, resulta que la CNN tiene - oh, interesante. 1045 00:58:59,960 --> 00:59:03,180 CNN ha empezado a utilizar Amazon Web Services. 1046 00:59:03,180 --> 00:59:06,380 Usted puede saber de computación en la nube, uno de Amazon de los grandes jugadores en el cloud computing. 1047 00:59:06,380 --> 00:59:10,240 Lo que yo hice fue simplemente, me dijo: 'Dame la dirección del servidor web de la CNN, " 1048 00:59:10,240 --> 00:59:14,090 pero resulta que el servidor web de la CNN está gestionado por Amazon, 1049 00:59:14,090 --> 00:59:16,030 Amazon Web Services, esto sugiere. 1050 00:59:16,030 --> 00:59:19,680 Y la dirección de ese servidor es este aquí. 1051 00:59:19,680 --> 00:59:22,350 Así que no estoy seguro de si esto va a funcionar, porque no solía usar Amazonas. 1052 00:59:22,350 --> 00:59:32,830 Pero vamos a intentar esto, la dirección http://, IP, entrar, y - 1053 00:59:32,830 --> 00:59:35,690 se va a trabajar? 1054 00:59:35,690 --> 00:59:39,280 Sí. Se va a trabajar. Internet es súper lento hoy. 1055 00:59:39,280 --> 00:59:43,680 Pero, en un momento, verá una historia de noticias. 1056 00:59:43,680 --> 00:59:48,360 Ahí vamos. Bank of America está siendo demandado. Está bien. 1057 00:59:48,360 --> 00:59:54,000 >> Esto se debe a que esta dirección IP casualmente por sinónimo de www.cnn.com. 1058 00:59:54,000 --> 00:59:59,920 Por supuesto, sería comercialización horrible de decir, visítenos en la Web en 50.112.94.127. 1059 00:59:59,920 --> 01:00:02,370 Nunca lo recuerdo. Así que incluso hoy en día se puede recordar las cosas 1060 01:00:02,370 --> 01:00:07,210 como 1-800-COLLECT o mnemónicos el mundo se acercó con los números de teléfono. 1061 01:00:07,210 --> 01:00:09,540 Lo cual, antes de los teléfonos celulares, eran bastante difíciles de recordar 1062 01:00:09,540 --> 01:00:11,800 hasta que sólo podía escribir y olvidarse de él. 1063 01:00:11,800 --> 01:00:15,730 Así que la Web también tiene esta convención de nombres y direcciones IP, 1064 01:00:15,730 --> 01:00:17,770 y hay estas cosas por ahí llamados servidores DNS, 1065 01:00:17,770 --> 01:00:23,870 sistemas de nombres de dominio, servidores que traducen las direcciones IP en nombres y viceversa. 1066 01:00:23,870 --> 01:00:26,340 Así que eso es lo que pasa debajo del capó. 1067 01:00:26,340 --> 01:00:29,540 Al final, tenemos TCP / IP, que es este protocolo de nivel muy bajo 1068 01:00:29,540 --> 01:00:32,570 que, en realidad, sólo se pone 0 y 1 al otro lado de la Internet, 1069 01:00:32,570 --> 01:00:36,030 y lo hace mediante la puesta en un sobre virtual, 1070 01:00:36,030 --> 01:00:38,820 si se quiere, y escrito en la parte exterior del sobre 1071 01:00:38,820 --> 01:00:43,930 la dirección IP del destino, así como el número de puerto numérico 1072 01:00:43,930 --> 01:00:47,520 del servicio en ese destino que quiere hablar. 1073 01:00:47,520 --> 01:00:51,060 Mientras tanto, en el sobre también hay algo que se conoce como la dirección del remitente, 1074 01:00:51,060 --> 01:00:55,600 cual es su dirección IP, por lo que cuando CNN recibe un paquete de información de usted, 1075 01:00:55,600 --> 01:00:58,710 Se abre el sobre virtual, ve que usted desea la página principal, 1076 01:00:58,710 --> 01:01:04,630 conoce de la parte remitente de este envolvente virtual a quién enviar a la parte de atrás HTML. 1077 01:01:04,630 --> 01:01:07,470 Así que vamos a echar un vistazo a esto en detalle un poco más. 1078 01:01:07,470 --> 01:01:11,370 Esto es de una empresa llamada Ericson, desde hace unos años. 1079 01:01:11,370 --> 01:01:14,780 Y tomaron algunas libertades con la forma en la Internet realmente funciona, 1080 01:01:14,780 --> 01:01:18,920 pero pinta un cuadro mucho más visual que la tiza simple aquí. 1081 01:01:18,920 --> 01:01:26,690 Así que te doy "Un poco de la Internet". 1082 01:02:26,660 --> 01:02:29,840 >> [Narrador] Por primera vez en la historia, 1083 01:02:29,840 --> 01:02:35,260 las personas y las máquinas están trabajando juntos, realizando un sueño. 1084 01:02:35,260 --> 01:02:38,910 Una unión de fuerzas que no conoce límites geográficos. 1085 01:02:38,910 --> 01:02:43,230 Sin distinción de raza, credo o color. 1086 01:02:43,230 --> 01:02:47,770 Una nueva era donde la comunicación verdaderamente une a las personas. 1087 01:02:47,770 --> 01:02:50,070 Es 1088 01:02:50,070 --> 01:02:54,980 El amanecer de la red. 1089 01:02:54,980 --> 01:03:04,640 ¿Quiere saber cómo funciona? Haga clic aquí para comenzar su viaje hacia la red. 1090 01:03:04,640 --> 01:03:07,890 Ahora, exactamente lo que sucedió cuando se hace clic en ese enlace? 1091 01:03:07,890 --> 01:03:10,150 Usted inicia un flujo de información. 1092 01:03:10,150 --> 01:03:13,310 Esta información viaja hacia abajo en su sala de correo personal 1093 01:03:13,310 --> 01:03:18,500 donde los paquetes IP que el señor, que califica, y lo envía en su camino. 1094 01:03:18,500 --> 01:03:20,960 Cada paquete es limitado en su tamaño. 1095 01:03:20,960 --> 01:03:23,880 La sala de correo debe decidir cómo dividir la información 1096 01:03:23,880 --> 01:03:26,070 y la forma de empaquetar. 1097 01:03:26,070 --> 01:03:29,550 Ahora, el paquete necesita una etiqueta que contiene información importante 1098 01:03:29,550 --> 01:03:35,570 tales como la dirección del remitente, la dirección del receptor, y el tipo de paquete que es. 1099 01:03:51,700 --> 01:03:54,980 Debido a que este paquete en particular va dirigido a Internet, 1100 01:03:54,980 --> 01:03:57,720 sino que también obtiene una dirección para el servidor proxy, 1101 01:03:57,720 --> 01:04:01,520 que tiene una función especial, como veremos más adelante. 1102 01:04:01,520 --> 01:04:06,650 El paquete es lanzado ahora en su red de área local o LAN. 1103 01:04:06,650 --> 01:04:10,160 Esta red se utiliza para conectar todos los equipos locales " 1104 01:04:10,160 --> 01:04:15,900 routers, impresoras, etcétera, para el intercambio de información dentro de las paredes físicas del edificio. 1105 01:04:15,900 --> 01:04:20,290 La LAN es un lugar nada controlado, y, por desgracia, 1106 01:04:20,290 --> 01:04:23,950 accidentes pueden ocurrir. 1107 01:04:31,190 --> 01:04:34,710 La carretera de la LAN está repleta de todo tipo de información. 1108 01:04:34,710 --> 01:04:38,900 Estos son los paquetes IP, Novell paquetes, paquetes AppleTalk. 1109 01:04:38,900 --> 01:04:41,270 Ellos van en contra del tráfico, como siempre. 1110 01:04:41,270 --> 01:04:44,260 El router local lee las direcciones y, si es necesario, 1111 01:04:44,260 --> 01:04:48,520 levanta el paquete a otra red. 1112 01:04:48,520 --> 01:04:54,270 Ah, el router. Un símbolo de control en un mundo aparentemente desorganizado. 1113 01:04:54,270 --> 01:05:05,480 [Router murmurando y hablando a sí mismo] 1114 01:05:05,480 --> 01:05:10,030 >> [Narrador] Ahí está, sistemático, desinteresado, metódico, 1115 01:05:10,030 --> 01:05:14,150 conservador, ya veces no del todo a la velocidad. 1116 01:05:14,150 --> 01:05:17,680 Pero al menos es exacto, en su mayor parte. 1117 01:05:32,270 --> 01:05:36,820 Cuando los paquetes dejan el ruteador, siguen su camino en el Internet de la empresa 1118 01:05:36,820 --> 01:05:40,830 y la cabeza para el interruptor de la fresadora. 1119 01:05:40,830 --> 01:05:46,250 Un poco más eficiente que el router, el Switch Ruteador trabaja rápido y suelta los paquetes IP, 1120 01:05:46,250 --> 01:05:48,920 hábilmente las rutas a lo largo de su camino. 1121 01:05:48,920 --> 01:05:52,130 A 'Pinball Wizard,' digital si se quiere. 1122 01:05:52,130 --> 01:06:04,270 [Interruptor Router hablándose a sí misma] 1123 01:06:09,830 --> 01:06:12,150 [Narrador] Cuando los paquetes llegan a su destino, 1124 01:06:12,150 --> 01:06:14,740 que están recogidos por la interfaz de red, 1125 01:06:14,740 --> 01:06:18,040 listo para ser enviado al siguiente nivel. 1126 01:06:18,040 --> 01:06:21,010 En este caso, el proxy. 1127 01:06:21,010 --> 01:06:25,040 El proxy es usado por muchas empresas como una especie de intermediario 1128 01:06:25,040 --> 01:06:27,630 con el fin de disminuir la carga en la conexión a Internet 1129 01:06:27,630 --> 01:06:32,240 y por razones de seguridad, también. 1130 01:06:32,240 --> 01:06:38,750 Como se puede ver, los paquetes son de varios tamaños, dependiendo de su contenido. 1131 01:06:55,210 --> 01:07:01,890 El proxy abre el paquete y busca la dirección web o URL. 1132 01:07:01,890 --> 01:07:04,950 Dependiendo de si la dirección es aceptable, 1133 01:07:04,950 --> 01:07:08,000 el paquete se envía a la Internet. 1134 01:07:13,890 --> 01:07:19,630 Hay, sin embargo, algunas direcciones que no cumplan con la aprobación del Proxy. 1135 01:07:19,630 --> 01:07:25,680 Es decir, directrices de la empresa o de gestión. 1136 01:07:25,680 --> 01:07:30,580 Estos son sumariamente tratado. 1137 01:07:30,580 --> 01:07:32,410 Vamos a tener nada de eso. 1138 01:07:32,410 --> 01:07:36,350 Para aquellos que lo hacen, está en el camino otra vez. 1139 01:07:46,850 --> 01:07:53,310 >> El siguiente, el servidor de seguridad. 1140 01:07:53,310 --> 01:07:57,410 El firewall de la empresa tiene dos propósitos. 1141 01:07:57,410 --> 01:08:02,420 Impide algunas cosas bastante desagradables en Internet entre en la Intranet, 1142 01:08:02,420 --> 01:08:10,280 y también puede evitar que la información confidencial de la empresa que se envíe a través de Internet. 1143 01:08:10,280 --> 01:08:12,980 Una vez a través del firewall, un router recoge cada paquete 1144 01:08:12,980 --> 01:08:18,180 y lo coloca en un camino mucho más estrecho o ancho de banda, como decimos. 1145 01:08:18,180 --> 01:08:23,720 Obviamente, el camino no es lo suficientemente amplio como para tener a todos. 1146 01:08:23,720 --> 01:08:29,319 Ahora, usted puede preguntarse qué pasa con todos esos paquetes que no logran recorrer todo el camino. 1147 01:08:29,319 --> 01:08:32,270 Pues bien, cuando el señor IP no recibe un acuse de recibo 1148 01:08:32,270 --> 01:08:35,000 que un paquete ha sido recibido en tiempo oportuno, 1149 01:08:35,000 --> 01:08:39,890 simplemente envía un paquete de reemplazo. 1150 01:08:39,890 --> 01:08:44,760 Ahora estamos listos para entrar en el mundo de Internet. 1151 01:08:44,760 --> 01:08:49,370 Una telaraña de redes interconectadas que abarcan nuestro globo entero. 1152 01:08:49,370 --> 01:08:56,050 Aquí, los routers y switches establecer vínculos entre las redes. 1153 01:08:56,050 --> 01:08:59,200 Ahora, la red es un ambiente completamente diferente de lo que encontrarás 1154 01:08:59,200 --> 01:09:01,569 dentro de los muros de protección de la red LAN. 1155 01:09:01,569 --> 01:09:04,060 Aquí fuera, es el salvaje oeste. 1156 01:09:04,060 --> 01:09:06,359 Un montón de espacio, un montón de oportunidades, 1157 01:09:06,359 --> 01:09:09,760 un montón de cosas para explorar y lugares para ir. 1158 01:09:09,760 --> 01:09:12,760 Gracias a la muy poco control y regulación, 1159 01:09:12,760 --> 01:09:18,300 nuevas ideas encuentran suelo fértil que empuja el desarrollo de sus posibilidades. 1160 01:09:18,300 --> 01:09:22,330 Pero debido a esta libertad, algunos peligros también acechan. 1161 01:09:22,330 --> 01:09:27,000 Nunca sabrás cuando te encontrarás con el ping temido a la muerte, 1162 01:09:27,000 --> 01:09:29,890 una versión especial del paquete Ping normal, 1163 01:09:29,890 --> 01:09:35,720 que algún idiota piensa desquiciar servidores insospechados. 1164 01:09:35,720 --> 01:09:39,130 La ruta de los paquetes pueden tomar puede ser vía satélite, 1165 01:09:39,130 --> 01:09:43,090 líneas telefónicas, inalámbricas, de cable o incluso transoceánico. 1166 01:09:43,090 --> 01:09:46,520 Ellos no siempre toman el camino más rápido o más corta posible, 1167 01:09:46,520 --> 01:09:50,290 pero van a llegar al final. 1168 01:09:50,290 --> 01:09:55,230 Tal vez por eso a veces se llama "The Wait mundial." 1169 01:09:55,230 --> 01:09:57,980 Pero cuando todo está funcionando sin problemas, 1170 01:09:57,980 --> 01:10:03,800 puede eludir el planeta cinco veces más en la caída de un sombrero, literalmente. 1171 01:10:03,800 --> 01:10:08,230 Y todo por el costo de una llamada local o menos. 1172 01:10:08,230 --> 01:10:15,070 Casi al final de nuestro destino, vamos a encontrar otro firewall. 1173 01:10:15,070 --> 01:10:18,420 >> Dependiendo de su punto de vista como un paquete de datos, 1174 01:10:18,420 --> 01:10:23,730 el firewall puede ser un resguardo de seguridad o un terrible adversario. 1175 01:10:23,730 --> 01:10:28,530 Todo depende de qué lado estás y cuáles son sus intenciones. 1176 01:10:28,530 --> 01:10:34,990 El servidor de seguridad está diseñado para dejar entrar solamente aquellos paquetes que cumplen con sus criterios de búsqueda. 1177 01:10:34,990 --> 01:10:39,360 Este firewall está operando en los puertos 80 y 25. 1178 01:10:39,360 --> 01:10:46,630 Todos los intentos de entrar a través de otros puertos están cerrados para los negocios. 1179 01:10:57,660 --> 01:11:03,480 El puerto 25 es usado para paquetes de correo, 1180 01:11:03,480 --> 01:11:10,720 mientras que el puerto 80 es la entrada de los paquetes a través de Internet al servidor web. 1181 01:11:10,720 --> 01:11:15,080 En el interior del servidor de seguridad, los paquetes son filtrados mas concienzudamente. 1182 01:11:15,080 --> 01:11:17,970 Algunos paquetes que pasan fácilmente por la aduana, 1183 01:11:17,970 --> 01:11:21,420 mientras que otros se ven mas bien dudosos. 1184 01:11:21,420 --> 01:11:24,060 Ahora, el oficial de firewall no es fácil de engañar, 1185 01:11:24,060 --> 01:11:32,120 por ejemplo, cuando este paquete Ping de la muerte trata de hacerse pasar un paquete Ping normal. 1186 01:11:32,120 --> 01:11:37,520 [Oficial Firewall hablando con paquetes] 1187 01:11:37,520 --> 01:11:40,510 [Narrador] Para aquellos paquetes que tuvieron la suerte de llegar hasta aquí, 1188 01:11:40,510 --> 01:11:45,730 el viaje está por terminar. 1189 01:11:45,730 --> 01:11:52,130 Es sólo una línea hacia arriba en la interfaz que deben abordarse en el servidor web. 1190 01:11:52,130 --> 01:11:55,440 Hoy en día, un servidor web se puede ejecutar en muchas cosas, 1191 01:11:55,440 --> 01:11:59,230 desde una computadora central a una web cam en el ordenador en su escritorio. 1192 01:11:59,230 --> 01:12:01,720 ¿Por qué no tu refrigerador? 1193 01:12:01,720 --> 01:12:04,870 Con la configuración adecuada, usted puede averiguar si usted tiene los ingredientes 1194 01:12:04,870 --> 01:12:08,390 para Chicken Cacciatore, o si tienes que ir de compras. 1195 01:12:08,390 --> 01:12:11,760 Recuerde, este es el amanecer de la red. 1196 01:12:11,760 --> 01:12:17,310 Casi todo es posible. 1197 01:12:17,310 --> 01:12:20,440 Uno a uno, los paquetes son recibidos, 1198 01:12:20,440 --> 01:12:26,320 abierto, y desempaquetado. 1199 01:12:26,320 --> 01:12:31,200 La información que contienen, es decir, su solicitud de información, 1200 01:12:31,200 --> 01:12:34,830 se envía a la aplicación de servidor web. 1201 01:12:41,540 --> 01:12:47,140 El propio paquete es reciclado, 1202 01:12:47,140 --> 01:12:57,570 listo para ser utilizado de nuevo, y lleno de la información solicitada, 1203 01:12:57,570 --> 01:13:03,340 abordados, y envió en su camino de regreso a ti. 1204 01:13:03,340 --> 01:13:13,250 Regresa por el cortafuegos, routers, ya través de la Internet. 1205 01:13:13,250 --> 01:13:21,020 Volver través del firewall corporativo 1206 01:13:21,020 --> 01:13:24,180 y en su interfaz, 1207 01:13:24,180 --> 01:13:31,180 listo para el suministro de su navegador web con la información que has solicitado. 1208 01:13:31,180 --> 01:13:39,840 Es decir, esta película. 1209 01:13:39,840 --> 01:13:43,550 Satisfecho con su esfuerzo, y confiar en un mundo mejor, 1210 01:13:43,550 --> 01:13:50,250 los paquetes de datos fieles cabalgar hacia el atardecer felizmente de otro día, 1211 01:13:50,250 --> 01:13:56,880 sabiendo plenamente que han servido bien a sus amos. 1212 01:13:56,880 --> 01:14:02,560 Ahora, no es que un final feliz? 1213 01:14:02,560 --> 01:14:07,040 [Malan] Bueno, ya es suficiente. Nos vemos la semana que viene. 1214 01:14:07,040 --> 01:14:10,040 [CS50.TV]