[Música tocando] DAVID J. MALAN: Então, eu só queria amenizar a. Gostaria echo exatamente o que SCAZ disse sobre a memória institucional. CS50 tem sido em torno de cerca de 20 anos em Harvard. E a realidade é, a partir de os idosos para baixo, há anualmente tranquilidade que os calouros, os alunos do segundo ano, e os juniores e Também os idosos a tomar CS50, que você acaba fazendo muito bem. A realidade é, os alunos não falhar CS50. Na verdade, nas raras onde nós tivemos Es ou Fs, Tem sido realmente por causa de circunstâncias extenuantes, se é médico ou pessoal. Ds são incrivelmente raro assim. E eu posso dizer confortavelmente, embora nós normalmente não divulgam estatísticas, mas uma vez que não há nenhuma memória institucional aqui qualquer, a maioria dos estudantes em CS50 não acabar recebendo um graus da escala. Uma parte significativa acabar terminando na faixa B também. Assim, mesmo que você talvez possa estar equacionando em seus trios mente com 60% e, portanto, Ds, ou Cs, ou semelhante, ele realmente não se alinha -se com a realidade. Na verdade, queremos dizer exatamente o que nós dizer, no início do termo que tantos estudantes em CS50, ambos em Cambridge e aqui em New Haven, nunca frequentaram um curso CS antes. E o que de fato importa, em última instância é o lugar onde você acaba na semana 12 em relação a si mesmo na semana zero. Agora temos múltipla rastreia no curso como você sabe-- menos confortável, mais confortável, algures no meio. E, de fato, quando você chegar estatísticas sobre o teste desta semana, Não desanime se, especialmente se Você sente que você está em torno da média ou abaixo da média ou da mediana, especialmente desde que não necessariamente tomar todos esses dados demográficos em conta na metade do semestre com as estatísticas de classificação. Em outras palavras, sabemos estatisticamente a cada ano que os estudantes que são menos confortáveis, fazer um pouco pior no quiz. E os estudantes que são mais confortáveis fazer um pouco melhor no quiz. Mas por que a promessa no programa e também na primeira semana de palestras, levamos tudo isso em conta. Com efeito, na extremidade anos, o que acaba fazendo é normalizar todas as pontuações do outro lado secções, tanto em Cambridge e agora aqui em New Haven, o que significa que, tendo em conta os estilos díspares, o disparate aspereza, a sorte diferente de personalidades que o indivíduo TAs têm aqui e em Cambridge de modo que você não está em um desvantagem mesmo que você acabou acontecer de ter tido um TF ou TA que foi um pouco mais difícil de você Na sua cabeça. Dois, devemos levar em conta o conforto nível e fundo real, ou a falta do mesmo, ao tomar pontuações do questionário em conta. Portanto, aqueles dois estão incluídos. E no final do dia, porque é sempre o caso que um estudante terminou em uma seção menos confortável quando ele ou ela realmente pertencia em um de entre-ou vice-versa, tudo é tão incrivelmente individualizada. Na verdade, você vai ficar irritado com-nos em o fim do prazo, quando estamos atrasados enviar suas notas porque com SCAZ, e Jason e Andy, e eu, ea equipe vai ter feito em Cambridge é, literalmente, tem centenas de e-mails para trás e adiante com tudo cento dos cursos TAS, aqui e em Cambridge, pedindo-lhes que eles pensam de todos os seus alunos com base num projecto das notas. E tudo o que há depois é incrivelmente individualizada. Então, na medida em que ficamos a conhecer você em horário de expediente, seções e mais, tudo isso também é levada em conta. Assim, embora nós tendemos a usar este cinco escala de pontos, por favor, retire-se a partir do pressuposto de que três é realmente um 60%. Ele foi criado para ser bom. E os assistentes de ensino são cobrados no início termo para tentar manter pontuações nos grupos de dois, ou três, fours e variar de modo que nós realmente tem espaço para crescer. E nós realmente temos um critério pelo qual podemos dar-lhe útil feedback sobre como você está fazendo e como você está progredindo. Então, por favor, levar isso a sério. Há alguma pergunta que eu possa ajudá- tratar ou preocupações que podem ajudar a amenizar? Ou promessas que posso tentar manter? Não? ESTÁ BEM. Tudo certo. Então, com isso dito, este é CS50. Este é o início da semana seis aqui em New Haven. Vamos começar com uma breve escurecimento das luzes para definir o cenário para o índice de hoje. [REPRODUÇÃO DE VÍDEO] [Música tocando] -Ele Veio com uma mensagem. Com um protocolo de todos os seus próprios. Ele veio para um mundo de firewalls legal, routers indiferente, e perigos muito piores que a morte. Ele é rápido, ele é forte, ele é TCP / IP. E ele tem o seu endereço. Guerreiros da rede. [FIM DE REPRODUÇÃO] DAVID J. MALAN: Tudo bem. Este é CS50. Este é o início da semana seis. E este é o início do nosso olhar na programação internet e web. E, talvez o mais excitante, hoje marca a transição para nós da nossa linha de comando mundo da C para a web mundo baseado de PHP e HTML, e CSS, e SQL e JavaScript, e tanto mais que é no horizonte. Mas, primeiro, ele veio ao nosso conhecimento em andar pelo campus que não é determinado um banho aqui em Nova Haven chamado a sala de Harvard, que é um pouco acinzentado aqui. Mas, de fato, alguém foi para o tempo ea despesa de gravura na sala de Harvard aqui nesta sala. Obrigado por isso. Eu não posso dizer que temos um Ainda análogo em Cambridge, mas eu acho que nós temos um pouco de projeto para nós mesmos agora quando vamos voltar. Então, obrigado por isso. Então, um rápido olhar para trás, onde paramos na semana passada e para onde está indo no próximo semana com problemas de definir cinco. Assim, no conjunto de problemas cinco, você poderá desafiados a implementar um corretor ortográfico. E para fazer isso, você poderá entregou um texto muito grande arquivo como com 140.000 palavras em inglês. E você vai ser desafiados a decidir sobre uma estrutura de dados com a qual deseja carregar todas essas palavras na memória, e para a memória RAM, e, em seguida, implementar algumas funções, um dos quais vai ser verificar. Pelo que, quando passou um argumento, Numa palavra, o seu teste de funcionamento simplesmente vai ter dizer verdadeiro ou falso, esta é uma palavra no dicionário. Mas você vai ter algum discrição projeto e desafios quando se trata de implementar isso. Na implementação mais simples, você poderia certamente implementar um corretor ortográfico em o dicionário subjacente com o tipo de estrutura de dados? Você só precisa armazenar um todo bando de strings na memória? Qual é o movimento para responder a partir de duas semanas, talvez? AUDIÊNCIA: Array. DAVID J. MALAN: Você pode usar uma matriz. E isso não é de todo ruim. Mas você não necessariamente sabe com antecedência como grande de um array você vai precisar de, se não o fizer sabe que o arquivo necessariamente com antecedência. Então você vai ter que usar um pouco de malandragem como malloc, como começamos a usar. Ou poderíamos abordar que a preocupação usando o que outra estrutura de dados que é foi uma espécie de aumento marginal em uma matriz? AUDIÊNCIA: lista encadeada. DAVID J. MALAN: Como um ligado lista, em que temos algum dinamismo. Mas há um pouco mais despesa. Temos ponteiros para manter. E você ainda não codificada esta -se, mas há definitivamente para ser um pouco maior complexidade que apenas usando colchetes e pulando uma matriz. Mas o tempo correndo de uma matriz, se você está à procura de uma palavra, pode ser log de n. Mas, novamente, pode ser um pouco não-trivial para construir essa matriz não o conhecimento do tamanho de antecedência. Uma lista ligada, porém, se você apenas armazenar um monte de cordas em uma lista vinculada, qual é o seu limite superior sobre a execução de tempo vai ser para pesquisa para ou verificar uma palavra nessa lista? AUDIÊNCIA: n. DAVID J. MALAN: Sim, grande O de n ou linear porque na pior das hipóteses, a palavra é como uma palavra Z todo o caminho no final. E por causa de uma lista ligada, porque essas flechas, por padrão, em uma lista vinculada isoladamente, só vão a partir de uma direcção para a outra, você não pode saltar ao redor. Você tem que seguir todos eles. Então propusemos no final da semana passada, semana cinco, que há maneiras melhores. E, de fato, o Santo Graal seria realmente constante de tempo pelo que, quando você quiser para procurar uma palavra, você receber uma resposta instantânea, independentemente de quantas palavras já são em seu dicionário. Esta é a interpretação de um artista de o que se pode chamar de uma tabela hash. E uma tabela hash é uma espécie de agradável amálgama de um array-- desenhada verticalmente aqui, apenas porque-- e, em seguida, um ligada lista-- desenhar horizontalmente aqui. E a tabela de hash pode ser implementado em cachos de maneiras. Este trecho de um livro didático acontece usar datas de nascimento dessas pessoas como o meio pelo qual ele está decidindo onde colocar o nome de alguém. Portanto, este é um dicionário se você vai de nomes. E, a fim de agilizar a colocação nomes para essa estrutura de dados, eles olham para, aparentemente, essas pessoas de datas de nascimento, com respeito a um mês. Portanto, é de 1 a 31. E esquecer de fevereiro e casos de canto assim. E se o seu aniversário é em janeiro 1, ou 01 de fevereiro, ou 01 de dezembro, você vai acabar em a primeira cadeia de topo para cima. Se a sua data de nascimento é como o dia 25 de um mês, você vai acabar no balde número 25. E se há alguém lá já em qualquer desses locais, o que você começar a fazer com estes ligados listas é costurá-las juntas de modo que você pode ter uma arbitrária número de pessoas, ou qualquer coisa, nesse local. Então você tem uma espécie de mistura de constante de tempo para hash. E para botar alguma coisa significa tomar como entrada como uma pessoa, ou pelo seu nome, ou o seu nascimento data, e então decidir sobre alguma saída com base nisso, como olhar para o seu aniversário e saída de um a 31. Então, então você pode ter um pouco de tempo linear, mas, na realidade, e tal como no o caso de problema definir cinco, nós não vamos ser trabalhando em P ajustou cinco tanto sobre a execução assintótica tempo, como a lentidão teórica com um algoritmo que pode ser executado. Nós estamos indo para se preocupar com o número real de segundos e a quantidade real de memória, o número real de bytes de memória você está usando. Então, francamente, tendo um enorme cadeia de como um milhão de pessoas é muito muito lento se você estiver pesquisando para um nome em uma lista de tamanhos milhões. Mas o que se você dividir que lista acima em 31 partes? Pesquisando 1/31 desse Super longa lista, na realidade, é, certamente, vai ser mais rápido. Assintoticamente, é a mesma coisa. Você só está dividindo por um factor constante. E lembrar que nós jogue as coisas de distância. Mas, na realidade, vai para ser 31 vezes mais rápido. E é isso que nós vamos começar a força de alavanca em P ajustou cinco. Então P ajustou cinco demais também propõe que você considere ligeiramente mais sofisticado estrutura de dados chamada um trie. E um trie é apenas um árvore como a estrutura de dados. Mas em vez de ter pequenos círculos ou retângulos como nós mantemos desenho para nós, é, na verdade, tem arrays inteiros para seus nós. E mesmo que este é um pouco abstrato aqui para olhar, Zamyla no conjunto P caminhada através irá orientá-lo através de mais detalhes sobre isso. Esta é uma estrutura de dados que, em vez de forma inteligente pode ter cada nó sendo uma matriz de tamanho 26, de A a Z ou zero a 25. E quando você deseja inserir uma pessoa de nomear para essa estrutura de dados ou encontrar ele ou ela, o que você faz, se o nome é como Maxwell, M-A-X-W-E-G-G, você olhar para M. E então você salte para a localização correspondente M na primeira matriz. Você, então, ir para A, o primeiro localização no próximo matriz, seguindo as setas. Em seguida, X, W, em seguida, em seguida, E, em seguida, L, em seguida, L, e então talvez algum fim especial caráter, alguns sentinela que diz uma palavra pára aqui. E o que é agradável sobre isto-- e tenha em mente que a imagem aqui, Observe como bordas de cada array são cortadas. Isso é só porque esta coisa seria ser enorme e horrível de olhar a na tela. Portanto, é extraído. O que é agradável sobre esta abordagem é que, se há um milhão de nomes já nesta estrutura de dados, como muitos passos leva-me para inserir Maxwell? M-A-X-W-E-L-L-- como sete-ish etapas para inserir ou olhar para Maxwell. Suponha que há um trilhão nomes nesta estrutura de dados. Quantos passos que é preciso me a olhar para Maxwell? M-A-x-- ainda sete. E é aí que reside o o chamado tempo constante. Se assumirmos que as palavras são certamente delimitada por 20 caracteres, ou 46 caracteres, ou algum inteiro razoavelmente pequena, então é efetivamente uma constante. E assim inserção e procura um trie é super rápido. É claro, nós nunca obter algo de graça. E mesmo que você provavelmente não mergulhou na P ajustou cinco ainda, qual o preço que estamos pagando provavelmente a obter uma maior eficiência tempo sábio? AUDIÊNCIA: Memória. DAVID J. MALAN: Memória, certo? Quero dizer, nós não tenha desenhado toda a imagem aqui. Este trecho do livro não tem atraído todas as matrizes. Há uma enorme quantidade de memória e apenas ponteiros nulos que não estão sendo utilizados. Portanto, é um trade off. E vai ser deixado para você em P ajustou cinco para decidir sobre o caminho que você quer ir. Agora essa idéia de hashing, como um de lado, é realmente super-prevalentes. Então, para botar um meio de valores, bastante simplesmente, para ter algo como entrada e produzir uma saída. Assim, uma função hash é apenas um algoritmo. E, geralmente, um propósito funções hash na vida é ter algo como entrada e produzir um número como de saída, como o número de um a 31 ou A a Z, de zero a 25. Então, é preciso um complexo de saída e encolhe-lo para algo isso é um pouco mais útil e gerenciável. E assim acontece que em uma função muito popular que o mundo da segurança e do mundo humano usado por anos é chamado SHA1. Esta é uma bela fantasia matemática fórmula que faz essencialmente que. Você toma um realmente grande pedaço de zeros e ones-- que poderia ser um megabyte por muito tempo, um gigabyte long-- e ele encolhe para baixo a apenas alguns pedaços, alguns pedaços, para que você tenha um número como de um a 31, ou de A a Z. Mas, na realidade, é um pouco maior do que apenas A a Z. Infelizmente, nós estamos no limite do que alguém de brincadeira chamada de SHAppening através do qual o mundo está prestes a provavelmente terminará em poucos meses tempo porque os pesquisadores, apenas na semana passada, publicou um relatório que, contrariamente ao o que os pesquisadores de segurança ter pensado durante algum tempo, por apenas gastando cerca, o que era, Eu acho que foi de US $ 175,000-- muito dinheiro, mas não além do alcance de particularmente ruins bandidos, ou particularmente ruim países-- $ 175.000 poderia comprar-lhe um monte de servidor alugado espaço na nuvem. E nós vamos voltar a a nuvem antes do tempo. Mas isso apenas significa alugar servidor espaço em como os servidores da Microsoft, ou Google, Amazon ou da, ou a como onde você pode pagar a cada minuto usar computadores de outra pessoa. E acontece que se você pode pagar alguém para emprestar seus computadores e executar o código que você escreveu nele e usar bastante chique matemática, você pode essencialmente figura para fora como função hash de alguém é de trabalho, e dada a sua saída, engenharia reversa que sua entrada é. E para fins de hoje, basta dizer, isso é ruim. Como as funções de hash SHA1 e como ele são super comumente usado em aplicações de segurança, conexões criptografadas na web, transações bancárias, criptografia de celular para seus telefones celulares e similares. E assim qualquer momento alguém encontra uma maneira de reverter engendrar uma destas tecnologias ou quebrá-lo, as coisas ruins podem acontecer. Agora, o mundo já sabia disso. Isto era previsível. E o mundo, desde então, movidos de SHA1 para SHA256, que é apenas uma maneira elegante de dizendo que eles usam pedaços maiores. E, na verdade, até mesmo a própria CS50 site atualizado no ano passado a-- não fomos nós que enfrentar tudo isso muitos ameaças tentando chegar aos PDFs e whatnot-- mas o site do CS50 usa a maior função hash, o que significa que estaremos seguros. Então todos os seus PDFs estarão a salvo, mas não necessariamente o seu dinheiro ou qualquer coisa particularmente confidenciais ou pessoais para usar. Sp verificar que URL Se você quiser como alguns detalhes adicionais. Assim problema é definir cinco na verdade, no horizonte. Questionário é esta próxima quarta-feira. Mas não tirar partido de escritório horas, tanto esta noite e amanhã. E também tirar proveito do horário de expediente, se você estiver disponível, logo após isso. A equipe e eu vou ficar por aqui e fazer mais Q & A ocasional além de hoje à noite. E deixe-me notar fortemente aqui, para aqueles de nós aqui em Nova Haven-- por isso é absolutamente per SCAZ de observações senti, eu tenho certeza, como um pouco de uma luta difícil. E pela reputação, se você ainda não tenha aprendido ou ouvido de alguns amigos em Harvard, saber aqui estão algumas nova memória institucional. P ajustou cinco tipo de tipo de tende a ser o mais difícil em CS50, ou o mais desafiador para a maioria dos estudantes. Mas o que isso significa é que nós somos quase no topo da colina. E eu realmente quero dizer isso. É o mais desafiador, mas é também o mais gratificante em que ao contrário da maioria todos os outros ciência da computação introdutória curso em os EUA de que nós sabemos, a maioria dos estudantes não terminar uma intro Claro que já tiverem aplicado coisas como árvores, e tentativas, e tabelas de dispersão, e semelhantes. E assim eu espero, e nós esperamos que você é têm um sentido enorme de satisfação, mesmo Se o ou duas semanas através das quais você chegar a esse satisfação não se sentir um pouco como isso. Mas deixe-me tranquilizar, nós só tem quatro conjuntos P esquerda. Então, que tipo de topo está à vista. Do outro lado do mesmo, confiar em nós, é só colinas e nuvens. E diremos, filhotes de cachorro são, por outro lado. Então você só tem que pendurar lá um pouco mais. Quer dizer, na verdade, quando começamos a transição no mundo da programação web, você vai descobrir que as coisas become-- este é realmente adorável. OK, vamos deixar esta URL mais tarde. Você encontrará também que nós somos alcançando uma espécie de platô onde tudo é na verdade, ainda sofisticado e desafiador por design, mas você não é vai se sentir como nós somos perpetuamente subindo este morro. Portanto, tome algum conforto nisso. Assim, sem mais delongas, vamos começar para fazer essa transição de mercado no semestre para o mundo da a web, e realmente o mundo com a qual todos nós estamos mais familiarizados. Temos dispositivos de Internet em nossos bolsos, em nossas mesas, nas nossas mochilas, e semelhantes. Como faz todo esse trabalho? E como podemos começar a escrever código que não é super arcano e de alguma linha de texto intermitente que nenhum de seus amigos ou familiares são sempre vai querer interagir com, mas algo que você pode colocar em seus telefones, ou em seus navegadores da web, ou em quaisquer dispositivos com que eles interagem. Então aqui é a casa de alguém. E dentro desta casa é um par de laptops, um par de área de trabalho da velha escola computadores, uma coisa chamada router ou hub no meio, e, em seguida, algum tipo de modem por cabo ou modem DSL. E depois há a internet, geralmente desenhada como uma nuvem lá em cima no céu. Assim, este quadro, embora um pouco tipo de datada, certamente capta o que a maioria dos você provavelmente tem em suas casas, ou efetivamente o que todos vocês têm em seus dormitórios, ou apartamentos, ou semelhantes. Então, o que está realmente acontecendo quando você tentar usar a internet hoje? Assim, cada computador na internet, verifica-se, precisa ter um endereço exclusivo, tanto como nós no mundo real necessidade um endereço postal, como 51 Prospect Street, New Haven, Connecticut, ou 33 Oxford Street, Cambridge, Massachusetts. Então faça computadores na internet precisa de um maneira de abordar-se de forma exclusiva. Isto é de modo que, quando um computador quer falar com outro, ele pode enviar uma mensagem e informar o destinatário a quem ele deve enviar a resposta de volta. Então ele só faz tipo de senso intuitivo, talvez, tudo o que tem um endereço de algum tipo. Mas como você obter um endereço? Bem, se você chegar aqui em campus, ou você vai para casa e você ligar o laptop ou computador desktop, e quer ligá-lo ou conectar a redes Wi-Fi, acontece que há um servidor especial Na maioria das redes chamado um servidor DHCP. Isso realmente não importa o que isso significa, mas é Dynamic Host Configuration protocolo, que é apenas uma maneira elegante de dizer, este é um computador que tem quer Yale, ou Harvard tem, ou Comcast tem, ou tem Verizon, ou sua empresa tem, cujo propósito na vida, quando se ouve alguém recém-adicionado para a rede, quer dizer aqui, use esse endereço. Então, nós, humanos, não tem que código duro em nossos computadores o que o nosso endereço exclusivo é. Nós apenas ligá-lo, abra o tampa, e de alguma forma este servidor na rede local só me diz que meu endereço é 51 Prospect Street, ou 33 Oxford Street, ou semelhantes. Agora ele não vai ser tão detalhado como isso. Em vez disso o que eu estou indo para obter um endereço numérico chamado endereço IP. IP significa Internet Protocol. E as probabilidades são por este momento em sua vida, você provavelmente já ouviu falar ou viu a palavra IP, ou geralmente jogado em torno talvez. Mas, na verdade, é bastante para a frente uma coisa. Um endereço IP é apenas um número decimal pontilhado, que significa que é algo dot dot dot algo algo algo. E cada um desses poucos anos acontece para ser um número entre 0 e 255. Assim, com base em cinco semanas, mais de CS50, se estes números cada intervalo de 0 a 255, quantos bits é cada desses sinais de número? AUDIÊNCIA: Oito. DAVID J. MALAN: Tem que ser oito. Assim, no total, quantas bocados é um endereço IP? AUDIÊNCIA: 32. DAVID J. MALAN: Então 32. 8 plus 8 plus 8 plus 8 é de 32. Quantos endereços IP no total pode haver no mundo? AUDIÊNCIA: 4 bilhões. DAVID J. MALAN: Então aproximadamente quatro bilhões, porque isso é 2 o poder 32. E se você não pode tipo de Grokar que em sua mente, só sei que valores de 32 bits pode ser tão grande quanto 4 bilhões se é todos os valores positivos. Então, isso significa que há 4 bilhões possíveis endereços IP do mundo. E história engraçada, nós somos tipo de ficar sem eles. E na verdade, é um problema enorme em que o mundo também viu esse problema que vem, mas não tem necessariamente que responderam -lo da maneira mais rápida possível. E, de fato, uma vez que você CS50 terminou e começou prestando atenção em o mundo da tecnologia, você vai ver isso é muito comumente temática. Por exemplo, se formos realmente velha escola hoje em dia, Y2K. Isso não foi realmente uma surpresa. Como todos sabiam para 1.000 anos que esta foi-- mais de um mil anos-- que que acabou por acontecer. E, no entanto, nós respondemos a ela muito no último minuto. E isso está acontecendo novamente. Então, hoje vamos falar sobre IP versão 4. Mas sabemos que o mundo está finalmente recebendo em torno do upgrade para o algo chamado IPv6, que em vez de 32 bits endereços, qualquer um uses-- quer dar um palpite, quantos bits? AUDIÊNCIA: 64? DAVID J. MALAN: Bom palpite, mas não. Nós estamos finalmente tentando chegar à frente da curva. AUDIÊNCIA: 128. David J. MALAN: 128, que é um número enorme pânico de endereços IP, por causa que é como vezes, 2 vezes 2, 2 vezes, um monte de vezes TWOS acima dos 4 bilhões. Então, se curioso. Acontece out-- e eu pesquisei este para encontrar este out-- computadores de Yale, aqui em Yale, tendem a começar com estes Números de 130,132 dot alguma coisa, e 128,36 dot algo. Mas não há dúvida excepções através da placa dependendo do que departamento e prédio e campus que você está. Harvard tende a ter 140,247, 128,103 ou. E este é geralmente informação inútil, mas é algo que você pode notar agora. Quando você começar a fuçar configurações em seus computadores, você pode começar a notar estes tipos de padrões antes do tempo. Mas quando você está em casa e ter uma Apple AirPort, ou um dispositivo Linksys, ou um D-Link, ou seja o que for seus pais ou irmãos instalado em sua casa, bem o que você provavelmente tem é o que é chamado de endereço IP privado. E estes eram, na verdade, um agradável solução, temporária para o problema de execução curta em endereços IP. E o que você pode fazer com redes domésticas, typically-- e, francamente, mesmo Yale e Harvard estão começando fazer isso em areas-- diferente é você pode dar um monte de computadores um endereço IP, desde que você colocar um dispositivo especial em frente delas, algo chamado um roteador, ou ele pode ser chamado um proxy ou qualquer número de outras coisas. Mas um certo dispositivo que tem que um endereço IP. E, em seguida, por trás desse dispositivo, dentro de um edifício, dentro de uma casa ou um apartamento, pode ser qualquer número de computadores, os quais tem um endereço IP que comece com um destes dígitos aqui. E enquanto esse computador sabe como converter o endereço público para o endereço privado, tudo pode classificar de trabalho conforme o esperado. Mas o inverso disto é que se você está em casa e você tem um irmão, e ambos são visitar algum site, que o site não sei se é você ou seu irmão visitar o site, porque parecem ser a mesma pessoa, porque todos os seus dados está passando por esse roteador ou aquele ponto central. Mas o suficiente sobre esses detalhes de nível inferior. Vamos dar uma olhada em como os endereços IP às vezes vêm-se talvez na mídia e como nós podemos agora começar a arruinar, Francamente, ainda mais shows para você. Se pudéssemos diminuir a intensidade da luzes durante alguns segundos. [REPRODUÇÃO DE VÍDEO] -É Um de 32 bits em IPP 4 de endereço. -IP ES internet-- Rede-Privadas, Rede privada de Tamia. Ela é tão incrível. -Vamos Charlie. DAVID J. MALAN: É um endereço IP espelho. Ela está deixando-nos ver que ela está fazendo em tempo real. [FIM DE REPRODUÇÃO] DAVID J. MALAN: OK. Então alguns problemas com isso. Então, um, o que estamos procurando no aqui na tela é um código escrito em uma linguagem chamada Objective-C, que é uma espécie de sucessor a linguagem C que estamos fazendo. Isso não tem absolutamente nada a ver com a programação. Na verdade, o melhor que posso dizer, este é um programa de desenho que alguém baixado da internet envolvendo de alguma forma lápis de cor. Talvez menos notório é que Neste endereço IP válido ou inválido? AUDIÊNCIA: Invalid. DAVID J. MALAN: inválido, porque 275 é, é claro, não entre 0 e 255. Isso também é provavelmente OK, porém, porque você não quer bando de loucos que são como uma pausa na sua TV TiVos e, em seguida, visitar o IP para ver se há realmente alguma coisa lá. Assim que um é um pouco menos flagrantes. Mas percebo que também é tipo de tudo o que nos rodeia. Então, é claro, nenhum de nós jamais realmente digitar endereços numéricos em nossos navegadores. Seria um tipo de coisa ruim se o Google, para visitar o Google, você tinha que ir para 123.46.57.89. E o mundo inteiro tinha para se lembrar exatamente isso. E, francamente, nós meio de visto este problema antes. De volta ao dia quando as pessoas não têm telefones celulares e listas de contatos, e empresas realmente still-- na verdade, Eu acho que as empresas ainda têm 800 números ea como-- mas você geralmente ver os números anunciados como 1-800-COLLECT, C-O-G-G-E-C-T. Porque ninguém pode realmente se lembrar, ao ver um anúncio em um ônibus ou outdoor, que de alguém número é, mas eles podem provavelmente, com maior probabilidade, lembrar de uma palavra. Por isso, adotou o mesmo tipo de sistema no mundo da Internet através do qual há um sistema de nomes de domínio, de modo que nós, os seres humanos podem digite google.com, facebook.com, yale.edu, harvard.edu, e deixe a figura computadores o que o correspondente IP endereço é para um determinado nome. E a maneira de fazer isso no mundo real é que por US $ 10 por ano, talvez US $ 50 por ano, você pode comprar um domínio nome, ou mesmo alugar um nome de domínio. E então quem quer que você está pagando para alugar esse nome de domínio, você dizer-lhes que no mundo sabe o que seu endereço IP é. E nós não iremos a eles particularidades, mas muitos de vocês Convém, por último projetos, para realmente se inscrever para o seu próprio web hosting empresa, seja gratuitamente ou para alguns dólares por mês. Alguns de vocês pode querer comprar, por um, o seu próprio nome de domínio alguns dólares, apenas por diversão ou para começar um negócio ou um local de pessoal ou semelhantes. E perceber que tudo de que acabará por resumem-se a você dizer ao mundo o endereço IP do seu servidor está. E, em seguida, estes DNS servidores realmente cuidar de informar o resto do mundo. Então tudo um servidor DNS tem, em suma, dentro de sua memória é como o equivalente a uma planilha do Google ou uma planilha do Excel com pelo menos duas colunas, uma das quais tem, nomes como harvard.edu, e yale.edu, e google.com. E o outro tem a coluna IP ou endereço IP correspondente endereços. E nós podemos realmente ver isso. Então, no meu Mac-- e você pode fazer isso em computadores Windows bom-- como se eu abrir uma janela de terminal aqui, bem como a de CD50 IDE, a maioria dos computadores tem um comando chamado nslookup, servidor de nomes de olhar para cima. E se eu digitar algo em como yale.edu e pressione Enter, o que Eu deveria ver se a minha rede coopera como ele fez por vários testes antes da aula began-- vamos tentar google.com. Claro que agora nada está funcionando. Isso é ótimo. Tudo bem, fique por um momento. nslookup google.com. Bem, vamos ver se o internet-- não real. Isso é o que aconteceu. Oh meu deus, tudo bem. O Wi-Fi quebrou. Ei, quer saber o que o meu endereço IP é? Tudo certo. YaleSecure. Isto é como você solucionar problemas coisas como um cientista da computação. Nós viramos o Wi-Fi desligado. ESTÁ BEM. E, na verdade, SCAZ, você se importa registrando-nos para o seguro? Caso contrário, mais testes é-- OK, obrigado você Yale-- ou está prestes a quebrar. Eu quero ir em YaleSecure. Ah, e talvez nós vamos ficar bem. Talvez nós estamos de volta. E é assim, como um computador cientista consertar um computador. [Aplausos] Tudo certo. Então, onde eu estava dentro deste o chamado janela de terminal, e se eu nslookup yale.edu, lá vamos nós. Então eu voltar em primeiro lugar o endereço IP do o servidor DNS que o meu laptop está usando. Assim, em adição a um servidor DHCP nós falamos sobre um momento atrás dizendo o que o meu laptop meu IP endereço é, que servidor DHCP também me diz o servidor DNS para usar. Caso contrário, eu teria para digitar manualmente esse in. Mas isso não é tudo o que interessante. O que me importa é que este é o Endereço IP do site da Yale aparentemente. Então, na verdade, vamos tentar isso. Deixe-me ir para cima em um navegador e vá http: // e, em seguida, que o endereço IP, e pressione Enter. E vamos ver. Ou seja Quanto mais você pode visitar sites de Yale. Agora não é tudo o que memorável. Como, a pré-frosh provavelmente não vai para recordar este endereço específico se disse para visitar lá depois de visitar. Mas isso não parece funcionar. E assim DNS realmente apenas nos permite têm endereços amigáveis ​​muito mais humanos. Mas eles não necessariamente apenas deu uma resposta. Na verdade, quando você é um realmente grande empresa de tecnologia, você provavelmente vai querer tem um monte de servidores. E mesmo isso é enganoso. Assim Yale provavelmente não faz ter apenas um servidor web. Google provavelmente não tem apenas a 10 ou mais servidores web. Google especialmente provavelmente tem milhares de servidores web ao redor do mundo que podem responder a pedidos de pessoas como nós. Mas eles também usam uma tecnologia chamada balanceamento de carga, que longa história curta, tem apenas alguns dispositivos do mundo espalhando a carga através de mais servidores. Então, é como uma espécie de teia de aranha se você vai despachar as solicitações. Mas, por agora, tudo o que é interessante para hoje que é um nome de domínio como google.com ainda pode ter vários endereços IP como esse. Mas como é que todos os nossos dados, na verdade, obter e para trás, em seguida, no final? Bem, acontece que há estes coisas chamados roteadores na internet. E o que é um roteador para o medida em que você já sabe? E eu usei a palavra um casal vezes no contexto de uma casa, mas em termos simples, o que faz um router fazer? Dê-me apenas uma suposição baseada em seu nome? AUDIÊNCIA: Então uma estrada ou um caminho? DAVID J. MALAN: Então, é uma estrada ou um caminho. Assim, um percurso é uma estrada ou caminho, absolutamente. E um router, de modo que um dispositivo na verdade, vias informações, iria mover dados entre os pontos A e B. E assim, em fact-- e este é, talvez, quando você Google representações de roteadores no mundo, tudo que você começa são diagramas de marketing de queijo. E por isso esta é uma espécie de mais um representante que eu poderia encontrar que parecia levemente interessante. Cada um desses pontos ou sinais de esperança em todo o mundo representa um router. E cada um deles tem uma linha entre algum outro roteador. Porque, na verdade, não são milhares, provavelmente milhões de routers de todo o mundo, alguns dos quais estão em nossas casas e em nossos campi, mas um monte de que são de propriedade de grandes empresas e estão interligados de modo a que se deseja enviar alguns dados de aqui em Yale casa de volta para Cambridge, Yale, provavelmente, não tem um único cabo, certamente, indo diretamente para Harvard. E Yale não tem um único cabo vai ao MIT, ou Stanford, ou para Berkeley, ou para o Google, ou qualquer número de destinos. Em vez disso, Yale, Harvard e, e todo mundo na internet tem um ou mais routers ligada ao mesmo, talvez na periferia do campus. De modo que quando os meus dados quer para sair do campus de Yale, ele vai para o roteador mais próximo, como representado por um destes pontos. E, em seguida, que os números do roteador para fora se para enviá-lo desta maneira, ou Desta forma, ou desta maneira, ou desta maneira baseado na outra mesa em sua memória, outro arquivo Excel ou Google planilha que em uma coluna diz que, se o seu endereço IP é iniciado com o número um, ir por este caminho. Se o seu endereço IP começa com um número de dois, ir por esse caminho. E assim você pode quebrá-lo para baixo numericamente a ter o router envio dados de todas as maneiras. E nós podemos tipo de ver isso também. Vamos em frente para este terminal janela novamente, e deixe-me ir em frente e traçar a rota para, digamos, www.mit.edu, que é um par cem milhas de distância. Isso foi realmente maldita rápido. Então o que aconteceu? Assim, em apenas sete etapas, e em apenas quatro milésimos de segundo, Enviei dados através da internet daqui em Yale para o MIT. Cada uma destas linhas, você pode talvez acho que agora representa o que? AUDIÊNCIA: Um roteador. DAVID J. MALAN: Um roteador. Então, na verdade, parece que há cerca de sete ou mais roteadores, ou seis roteadores entre mim fisicamente na escola de direito de Yale aqui e no site do MIT por lá. E o que podemos recolher a partir desta é como follows-- e deixe-me limpá-lo. Eu estou indo para executá-lo novamente com um comando argumento de linha de q 1 a apenas dizer, apenas dar-me uma consulta. Por padrão, trace rota faz três. E é por isso que vimos cachos de números. Eu quero ver o menor número apenas para manter o líquido de limpeza de saída. E vamos ver o que acontece. Então, por qualquer motivo, alguém no pensamento Yale que seria engraçado para chamá-lo a sua arubacentral roteador padrão, que é em VLAN ou virtual LAN, virtual de área local rede 30-- assim você provavelmente, tem pelo menos 29 router.net.yale.internal outros-. E .internal aqui é uma espécie de falso Domínio de topo para ser usado apenas no campus. E observe o endereço IP correspondente desse roteador, onde quer que seja aqui no campus, é 172.28.204.129. E levou 36 milissegundos para ir daqui para lá. Estória engraçada. Nós vamos voltar a isso em apenas um momento. Mas agora o segundo router-- para que aparentemente arubacentral tem algum tipo de física conexão mais likely-- os seres humanos não se incomodou em nomeá-lo. Os seres humanos Yale não se incomodou de nomeação isso porque é dentro da sua rede parece. E assim ele só tem um endereço IP. Mas, em seguida, um terceiro router aqui na rede da Yale isso é provavelmente um pouco mais longe ainda tudo o que é chamado cen10g que é asr.net.yale.internal. E ele também tem um endereço IP. Agora, por que são esses números tipo de flutuação? 2,9, 1,4, 36? Routers ficar ocupado. E eles ficam congestionadas e backup. Há milhares de pessoas neste campus usando a internet no momento. Há uma centena de pessoas neste sala usando a internet no momento. E então o que está acontecendo é que os roteadores pode ficar congestionado. E assim esses tempos pode flutuar um pouco. É por isso que eles não necessariamente aumentar diretamente. Mas as coisas ficam meio interessante na etapa quatro. Aparentemente, entre Yale e etapa quatro é outro hop. E onde está o roteador na etapa quatro provavelmente? AUDIÊNCIA: [inaudível] DAVID J. MALAN: JFK talvez, talvez no aeroporto. Mas por alguma razão, administradores de sistema, de modo totós que rodam servidores para anos têm chamado routers após o código do aeroporto mais próximo. Então provavelmente significa JFK é apenas um lugar em Nova York, talvez em Manhattan ou um dos bairros. nyc2 indica, presumivelmente, outro roteador que está em algum lugar em Nova York. Eu não sei bem onde fileira seis é aqui, router número seis. quest.net um grande ISP, provedor de internet, que fornece conectividade à Internet para grandes lugares como Yale e outros. E, em seguida, esta última, parece que o MIT não faz mesmo têm seu próprio site em Cambridge, necessariamente, mas eles têm terceirizou seu site, ou, pelo menos, os servidores físicos, para uma empresa chamada Akamai. E Akamai realmente está à direita a estrada do MIT em Cambridge ele sair. Mas percebo também que até pensei você vai www.mit.edu, poderíamos realmente ser enviado em qualquer lugar no mundo. E vamos ver algum lugar outra parte do mundo. Deixe-me ir em frente e limpar Nesta tela e, em vez traçar a rota, só uma vez, de modo consultar um, para www.cnn.co.jp, a home page japonês para a CNN, o site de notícias. E se eu acertar Entre agora, vamos ver o que acontece. Estamos de novo a partir de arubacentral. Estamos em seguida, indo para o router sem nome, um pouco mais. Por isso, levou 12 ao lúpulo chegar ao Japão neste momento. E vamos ver o que podemos recolher. Assim mesmo hop, mesmo hop. Ligeiramente diferente agora. Isto é interessante uma. Então, eu estou supondo aqui, é um stamford1 algumas cidades de distância em Connecticut também. Esses roteadores na fileira de seis e sete não têm nomes. Mas este é tipo de surpreendente. Então, o que parece ser entre a roteadores no passo sete e oito? E por que você diz tanto? Sim? AUDIÊNCIA: Oceano. DAVID J. MALAN: Provavelmente um oceano. Sabemos que é verdade como, intuitivamente, certo? Mas podemos confirmar tanto tipo do tipo de empiricamente por quê? O que mudou entre linhas sete e oito? Foi preciso muito mais tempo para ir ao o que quer que esse roteador sem nome sete é, provavelmente em algum lugar no continental dos Estados Unidos, ao passo oito, que é, provavelmente, algures no Japão com base no nome de domínio de .jp lá. E assim aqueles adicional cem algo milissegundos ou 90 ou mais milissegundos é o resultado dos nossos dados vai ao longo de um muito grande massa de água. Agora, curiosamente, parece que talvez que o cabo passa por todo os EUA. Se nós estamos indo realmente sobre a Costa Oeste para chegar ao Japão, é uma espécie do longo caminho se formos para o outro lado. Portanto, não é totalmente claro o que está acontecendo fisicamente. Mas o facto de que todos os hop adicional de fato tomou marcadamente mais do que qualquer outro, é confirmação muito bom que a CNN de Servidor web japonesa é provavelmente de fato no Japão. E é certamente mais longe longe do que o MIT tem sido. E vale a pena notar também, seus dados não é necessariamente indo viajar a distância mais curta possível. Na verdade, se você brincar com rastreamento de rota em casa apenas escolher sites aleatórios, você pode achar que apenas enviar um email ou a visitar um site que está aqui em New Haven, às vezes, seus dados podem primeiro fazer um desvio, vá até a DC, e depois voltar para cima. E isso é só por causa de as decisões de roteamento dinâmico que esses computadores estão fazendo. Agora apenas por diversão, a equipe de produção aparado um desses vídeos para nós para ser apenas um pouco mais sucinto. Mas, para nos dar uma sensação rápida aqui-- e nós podemos deixar as luzes on-- como para o quanto é cabeamento na verdade, levando todos os nossos dados. [REPRODUÇÃO DE VÍDEO] [Música tocando] [FIM DE REPRODUÇÃO] DAVID J. MALAN: Todos os vídeos de rede tem música legal sonoridade aparentemente. Então, isso é para obter apenas um sentido de quanto tem vem acontecendo debaixo do capô. Mas vamos olhar para um nível ligeiramente mais baixo agora o que é realmente dados atravessando essas linhas, e mesmo indo sem fio em uma sala como esta. Então não é que quando você pedir uma página web, ou envie um e-mail, ou receber uma página web, ou um e-mail, ou uma mensagem Gchat, ou uma mensagem de Facebook, ou semelhante, que não é apenas um grande pedaço de bits que fluem sem fio através do ar ou eletronicamente em um fio. Em vez disso, esse pedido ou resposta é geralmente fragmentada em pedaços separados. Portanto, em outras palavras, quando você tem um solicitar para fazer de outro computador, ou você recebe de volta uma resposta de outro Computador-- como supor, por exemplo, se unfamiliar-- como muitas pessoas parecem ser estes dias-- se não familiarizados com isto-- não esta fellow-- este companheiro. Então suponho que esta é uma mensagem que Eu quero enviar a alguém em volta. Quem no muito back gostaria de receber uma foto de Rick Astley hoje? OK, qual é o seu nome? AUDIÊNCIA: Cole. DAVID J. MALAN: O que é? AUDIÊNCIA: Cole. DAVID J. MALAN: Holt? H-O? AUDIÊNCIA: C-O-L-E. David J. MALAN: C-O-G-E, Cole. Desculpe. C-O-G-E. Tudo certo. Então, se eu quiser enviar esta Cole imagem aqui, você sabe disso é uma espécie de retrato grande, certo? Isto poderia ser um pouco kilobytes, alguns megabytes, especialmente se for alta resolução. E eu realmente não quero parar todos os outros de usar a internet apenas enquanto eu enviar esta realmente grande, imagem de alta qualidade de Rick Astley por toda a sala. Eu gostaria que seus dados para continuar a atravessam a rede e Wi-Fi também. E por isso faz sense-- e este é recuperável por via electrónica, não tanto no mundo real. Na verdade, isso vai ter múltiplos significados se você pegar minha saída de áudio. Então, se eu rasgo isto em a metade como este aqui, isso agora pode viajar o internet de forma mais eficiente, porque é um pedaço menor. Assim, com menor probabilidade é que vai a colidir com o tráfego de outra pessoa na internet. E então o que, aliás, faz seu computador quando você quer enviar uma mensagem para Cole é segmenta-se uma mensagem como esta em pequenos pedaços, fragmentos por assim dizer. E, em seguida, ele coloca-los dentro do que vamos chamá tipo de envelopes virtuais. Então, eu tenho quatro envelopes de papel aqui. E eu tenho pré-contados deles, um, dois, três, quatro e. E o que eu vou fazer na parte da frente deste, assim como uma discussão normal, é que eu vou colocar o nome de Cole lá. E, em seguida, na parte superior, eu sou vai colocar o meu nome lá, David, de modo que o primeiro pacote, tais Estou enviando lá fora, na internet parece um pouco algo como isto, as características mais salientes dos quais são de que ele tem uma a abordar, a partir de um endereço, e também um número, assim que esperamos que é informação suficiente para Cole para reconstruir esta mensagem. Então deixe-me fazer o mesmo aqui, a mesmo aqui, eo mesmo aqui, escrever seu nome na Para campo em todos eles. E então vamos em frente e colocar essas fotos dentro. Então aqui está um pacote que está pronto para ir. Aqui está outro pacote que está pronto para ir. Aqui está um terceiro pacote que está pronto para ir. E aqui está uma quarta pacote que está pronto para ir. E agora o que é interessante sobre como a internet, na realidade, obras é que mesmo que eu tenho quatro pacotes, os quais são destinados para o mesmo localização, eles não são necessariamente vai percorrer o mesmo percurso. E por isso mesmo que eu poderia entregar estes pacotes fora para o roteador mais próximo vamos dizer, se você gostaria de enviá-los de todas as maneiras, vamos ver o que realmente acontece, o objetivo da que é para obtê-los, finalmente, para Cole. E, de fato, eles já não são necessariamente tomar a mesma direção. E isso é bom. Isto é um pouco estranho e estilo Oprah hoje. E agora deixe-me deliberadamente tomar que uma volta. E agora Cole, se você gostaria de remontá-lo da melhor maneira possível. Claro, todos nós podemos adivinhar o que a conclusão aqui é que vai ser. Você vai ter 3/4 de Rick Astley em apenas um momento. E o que é a implicação de que? Você quer tentar segurá-la? Nós temos uma câmera apontada para você, se você quiser para posar com Rick Astley aqui. Aí vamos nós. Adorável. Mas você parece estar faltando um fragmento de Rick Astley. Assim, verifica-se que a internet é geralmente accionado por não apenas IP, mas na verdade nós ouvimos muito no início da palestra em que video-- e você provavelmente já viu este acrônimo mais often-- o que realmente é o protocolo que tendem a ouvir falar? AUDIÊNCIA: TCP / IP. DAVID J. MALAN: TCP / IP, que é apenas uma combinação de dois protocolos, um chamado IP. Que mais uma vez, é apenas o set através de convenções que nós abordar cada computador na internet. E, em seguida, TCP, que serve a um propósito. TCP é um protocolo que você tipicamente utilizada em conjunto com IP, que, entre outros coisas, garantias de entrega. Na verdade, o TCP é o protocolo iria notar que um dos pacotes aparentemente não chegou a Cole, porque ele parece estar faltando número quatro em quatro. E assim o TCP, um protocolo faz, é ele diz Cole, hey Cole, se você só recebe três dos quatro pacotes, me dizer qual deles você estão faltando, essencialmente, e depois o meu propósito na vida deve ser a que retransmitir. E assim se eu também, o remetente, estão usando TCP, Eu deveria, em seguida, criar uma nova packet-- não esta enrugada uma aqui-- retransmitir apenas este pedaço de -lo, de modo que, em última análise Cole tem uma lembrança completa, se nada mais. Mas em última análise, de modo que os dados realmente chega ao seu destino correto. Mas, infelizmente, escrevendo o nome de Cole na parte dianteira não é suficiente, por si só. E realmente, eu não iria escrever O nome de Cole, mas provavelmente seu endereço de IP no envelope. E eu não iria escrever David. Eu ia escrever meu endereço IP no envelope de modo que os computadores podem realmente comunicar e para trás. Mas acontece que os computadores pode fazer muito mais do que servir-se imagens de Rick Astley. Eles também pode reenviar e receber e-mails, mensagens de chat. Eles podem fazer coisas como transferências de arquivos, e qualquer número de outras ferramentas você usa na internet, servidores podem fazer nestes dias. E só porque uma empresa, ou uma escola, ou uma pessoa quer ter um servidor web, e um servidor de e-mail, e um servidor de bate-papo, não significa que você precisa de três computadores. Você pode ter apenas um computador de corrida vários serviços, por assim dizer. E assim, quando Cole recebe uma mensagem como essa, como O seu computador para saber se mostram que a imagem em seu navegador, ou em Gchat, ou no Facebook Messenger, ou em qualquer número de outras ferramentas? Assim, verifica-se também no que como envelope é peça adicional de informação conhecido como um número de porta. E um número de porta é apenas um número, de facto, mas não identifica exclusivamente o computador, mas o serviço. E não há cachos destes. Assim, verifica-se que no mundo, seres humanos ter decidido sobre alguns tais convenções, alguns dos quais são estes. Portanto, há algo chamado File Transfer Protocol. É bastante datada. É completamente inseguro. Um monte de pessoas ainda o usam. E ele usa o número da porta 21. Em outras palavras, se enviar um arquivo via FTP, o envelope teria não só o remetente e endereço IP do receptor, É também teria o número 21, de modo que o computador receptor sabe oh, este é um arquivo, não um e-mail ou uma mensagem de bate-papo. 25 é SMTP. Como muitos de vocês já usou SMTP? Errado. Quase todos vocês têm. Se você já usou e-mail, você já usou SMTP, Simple Mail Transfer Protocol, que é apenas uma maneira elegante de dizer, este é o tipo de computador ou serviço que envia o seu e-mail de saída. E se você já viu como siglas POP, IMAP ou, e há alguns outros, são aqueles para receber e-mail, tipicamente. Isso apenas significa que é um serviço diferente. É software que alguém escreveu que envia ou escuta em um número de porta específico para que não confundir-mails com algum outro tipo de dados. Agora, a web é HTTP, que é número 80, e também a porta 443. E, de fato, apesar de Nós, seres humanos, felizmente, não tem que fazer isso, qualquer momento que você visita um site como http://www.yale.edu, o navegador é apenas a ser tipo de útil na medida em que é supondo que você deseja porta numérico 80. Nós já sabemos que o DNS pode descobrir qual é o endereço IP é de www.yale.edu. Mas o computador é apenas vai inferir que você quer a porta 80 porque você está usando Chrome ou IE, ou algum outro navegador. Mas eu poderia fazer tecnicamente cólon 80. E então eu posso dizer explicitamente meu navegador, enviar um pacote ou mais de informações para www.yale.edu solicitando home page de hoje. Mas especificamente, o endereço -lo para IP de Yale na porta 80 de modo que eu realmente começar cópia de servidor web de Yale. Agora ele desaparece imediatamente porque os navegadores apenas decidir que nós não precisa confundir os seres humanos por ter ainda mais arcano informações como cólon 80. E, francamente, navegadores como o Chrome não fazer ainda mostrar-lhe HTTP mais, ou o cólon, ou a barra barra, ou o arrasto, em certo sentido, porque eles estão tentando para tornar as coisas mais simples para os usuários. Em outro sentido, é apenas um tipo de uma experiência de usuário coisa-- Vamos nos livrar de alguns dos desordem. Mas ele está escondendo alguns dos esses detalhes subjacentes. E, de fato, nenhum de nós provavelmente nunca digite http anymore. Você só digitar algo como www.harvard.edu. E, novamente, infere Chrome que pretende HTTP. Mas existem outros protocolos que certamente poderíamos estar usando. Assim, dado tudo isso, se você agora sorte de colocar a chamada chapéu engenharia, como é que as coisas chamados firewalls trabalhar? Então, provavelmente você está geralmente familiarizado com o firewall, não tanto no sentido físico. Então, de volta ao dia, e ainda para este dia, se você tem como shoppings para instância que tem um monte de lojas, geralmente as paredes entre lojas individuais ou lojas firewalls são no sentido de que eles têm isolamento especial de modo que em caso de incêndio irrompe em uma loja, Isso não significa necessariamente se espalhou para a loja ao lado. O mundo dos computadores também tem firewalls que fazer algo diferente. O que faz uma bola de fogo fazer? Sim? AUDIÊNCIA: Basicamente eles cortaram conexão se eles encontram algo como, por exemplo, eles têm número de declarações id. E se algo acontecer, eles cortaram a conexão. Como se este ataque malicioso [Inaudível] o seu computador, ou-- DAVID J. MALAN: bom OK. Sim, e na verdade você está mesmo indo um pouco mais longe na descrição de algo que poderia ser chamado de um sistema de detecção de intrusão, ou IDS para breve, através do qual você realmente têm regras definidas. E se você começar a ver suspeito comportamento, você tenta colocar um fim a isso. E um firewall, francamente, a um nível de rede, é ainda mais burro e mais simples que, geralmente. E há diferentes tipos de firewalls no mundo. Mas os que operam em o nível que estamos falando today-- IP e TCP-- trabalhar ainda mais diretamente. Por exemplo, se você estivesse sistema de Yale administradores, ou sistema de Harvard administradores, ou algum grande Irmão em alguma empresa, e você queria evitar todo o seu alunos ou todos os seus funcionários de ir à facebook.com, tudo que você tem a fazer é ter certeza de que todo o seu tráfego da rede, antes de tudo, passa através de um dispositivo especial. Vamos chamá-lo de um firewall. E isso é bom, porque você pode fazer o seu router a mesma coisa que um firewall se você colocar o mesmo tipo de software na mesma máquina. Portanto, se todos os seus alunos ou tráfego de funcionários está passando por isso firewall central, como iríamos bloquear as pessoas de ir para facebook.com, por exemplo? Qual seria o sistema administrador tem que fazer? Alguém mais? Vamos tentar ir ao redor. AUDIÊNCIA: [inaudível] DAVID J. MALAN: Diga isso de novo? AUDIÊNCIA: Deve apenas se apanhados dentro do sistema. Então, basta colocar Facebook em 127.0.0-- DAVID J. MALAN: Oh, interessante. Então você pode realmente, em seguida, hackear seu sistema DNS. Esta é certamente uma maneira que você poderia fazer isso através do qual qualquer momento um estudante de Yale puxa up www.facebook.com, todos nós aqui hoje no campus está usando o servidor DNS do Yale, porque o servidor DHCP de Yale nos deu esse endereço. Então, sim, você poderia tipo de quebrar coisas ou convenção pausa apenas dizendo, sim, endereço de facebook.com é falso, é 1.2.3.4, que é não realmente legítimo. Ou talvez seja 278. tudo o que estava no programa de TV de uma há pouco, de modo que nenhum de nós pode realmente visitar facebook.com. Então suponho que Yale fez isso. Suponha Yale queria manter você fora do facebook.com. E, por conseguinte, eles mudou as configurações de DNS para dar-lhe um IP falso endereço para facebook.com. Como você responde? Tecnicamente, não-- oh, agora todo mundo quer participar. OK, sim. AUDIÊNCIA: Você só digitar o endereço IP real do Facebook. DAVID J. MALAN: OK, bom. Então, nós poderíamos apenas digitar o endereço IP real do Facebook, tanto como eu fiz com o site da Yale. E se o servidor está configurado Facebook para apoiar isso, ele deve realmente funcionar. É uma dor menor na o pescoço, porque agora nós tem que lembrar alguns aleatória Valor de 32 bits, mas que poderia trabalhar. O que mais você poderia fazer? Sim. AUDIÊNCIA: Você poderia mudar essas configurações [inaudível]. DAVID J. MALAN: Sim, você poderia até mudar suas configurações de DNS. Então, na verdade isso é realmente bastante útil, francamente, se você estiver em um aeroporto, ou se você está em um café, ou algo que tem internet esquisito em que, por vezes, o servidor DNS apenas pára de funcionar. Assim, mesmo que eu, ocasionalmente, fazer este, não por mal-intencionado, I quer usar Facebook propósitos, mas realmente porque me parece ter uma rede ligação, mas nada está funcionando. E assim um dos primeiros coisas que eu e você try-- pode fazer isso no Windows, mas demasiado-- no meu Mac, se eu ir para Rede. E eu escolho minha conexão Wi-Fi. E eu ir para Avançado. E eu ir para DNS. Estes são os três Endereços IP que Yale é dar-me por três servidores DNS. O objetivo é, então, para mim tentar qualquer um deles para resolver endereços. Mas eu posso substituir estes fazendo um plus. E ninguém quer propor um servidor DNS? AUDIÊNCIA: 8.8.8.8? DAVID J. MALAN: Oh, você é incrível. Sim, 8.8.8.8. Então, o Google, abençoe seus corações, comprou o endereço IP 8.8.8.8, porque ele meio que parece Gs provavelmente, e é fácil de lembrar. Mas na verdade, agora eu configurei meu computador para usar o servidor DNS do Google. Portanto, agora se eu for para yale.edu, ele ainda está indo para o trabalho. Mas eu não estou usando Yale de Servidores DNS mais. E se eu for para facebook.com, todos aqueles olhar ups vão passar por Google. Assim, por um lado, eu tenho inteligente contornado o sistema local administradores apenas por compreender como funciona a rede. Mas eu estou pagando um preço. Nada é gratuito. O que eu simplesmente desistido? O que eu simplesmente desistido? Todos vocês pessoas inteligentes que têm vindo a utilizar 8.8.8.8, porque é legal ou resolve os problemas, o que você tem feito todo esse tempo? AUDIÊNCIA: Viajar mais longe? DAVID J. MALAN: Talvez viajar mais longe, porque o Google provavelmente não tão perto como o servidor no final da rua. Mas mais worrisomely. Sim? AUDIÊNCIA: Então agora o Google sabe onde você está indo. DAVID J. MALAN: Google sabe literalmente cada site que você está visitando, porque você está literalmente pedindo-lhes, hey Google, você pode traduzir yale.edu para mim? Ou hey Google, você pode traduzir este outro endereço do site para mim em um endereço IP. E assim they're-- Eu não tenho nenhuma ideia do que está falando. E assim eles sabem tudo sobre você. Então, percebe que este é um serviço gratuito com um propósito de sua perspectiva também. Mas certamente pode tirá-lo de um ligamento. Agora é só para abordar um outro problema que muitas vezes surge entre os estudantes, especialmente em viagens ao estrangeiro em certos países como a China, onde há de fato é um Grande Firewall da China em que o governo de lá bastante blocos um pouco de tráfego em diferentes níveis. Você não tem que apenas bloquear o tráfego no nível nós estamos falando aqui, DNS ou de outra forma, você pode bloqueá-lo a outros níveis. E, de fato, apenas para ser claro, um firewall pode operar ainda mais simples do que apenas tendo os administradores de sistema mudar Configurações de DNS. Um firewall, um dispositivo entre nós eo resto do mundo, só poderia bloquear qualquer saída solicitações para o endereço IP para Facebook na porta 80, ou o endereço IP para harvard.edu, ou o endereço IP de qualquer coisa. Assim, um firewall pode olhar para o seu envelopes 'endereços IP e até mesmo porta números e, se Yale queria, ele poderia simplesmente parar todos nós do mesmo utilizando FTP mais, o que faria provavelmente ser uma coisa boa, porque é de fato um protocolo inseguro. Yale poderia até mesmo impedir-nos de visitar a totalidade da teia apenas através do bloqueio de todas as portas tráfego no número 80, bem. Para que possa ser de outra maneira. E há maneiras ainda mais extravagantes também. Mas quando você está viajando no exterior, por exemplo, ou se você estiver em um internet café, ou se você estiver em qualquer lugar onde há bloqueios ou ameaças, o que você pode fazer? Bem, se você descer a rua para Starbucks ou você viajar em um aeroporto, geralmente você pode apenas hop sobre o Wi-Fi, escolhendo como, JFK Wi-Fi de LaGuardia Wi-Fi, ou Logan Airport Wi-Fi, ou que não. E não é criptografada, certo? Não há nenhum ícone de cadeado. E você provavelmente não solicitado um nome de usuário e senha. Você está apenas solicitado com alguma forma estúpida para dizer como, concordo em usar isso só por 30 minutos, ou algo parecido. Mas não há criptografia entre você e Starbucks acesso Wi-Fi ponto, as coisas com as antenas na parede. Não há criptografia entre você e os sinais de Wi-Fi do aeroporto. E então, tecnicamente, essa pessoa assustador sentando-se alguns assentos para baixo de você no Starbucks ou no aeroporto poderia ser, com o software certo, observando todo o seu wireless tráfego em seu laptop. Não é que difícil colocar um laptop em que é chamado modo promíscuo, que como o nome sugere, Significa que você é o tipo de solto com as regras. E ele só escuta não só para o tráfego significava para ele, mas também para toda a gente é tráfego dentro do alcance. E por essa lógica, ele pode ver todos os pacotes de informação você está recebendo. E se esses pacotes não são criptografados, você está se colocando em risco de seus e-mails, ou suas mensagens, ou qualquer outra coisa ficar exposto. Assim, mesmo se você não estiver no exterior mas você está apenas na Starbucks, ou você está em alguma pessoa aleatória de Wi-Fi que não é criptografado, uma VPN é uma coisa boa. Uma VPN é uma rede privada virtual. E é uma tecnologia que permite que você tenha um, um connection-- mexidos criptografado amador de César ou Vigenere-- entre o seu laptop, ou o telefone ou o seu desktop, e um servidor em outras posições, tal como um servidor no campus de Yale. E se você estiver viajando abroad-- e, de fato, vai encontrar este em hotéis o tempo todo. E, especialmente, como aspirante cientistas da computação onde vocês podem, como os geeks, quer usar outros de 80 portos, e outras do que as portas e 443-- na verdade para o problema de definir seis, vamos jogar com múltiplos Portas TCP apenas por um monte choice-- de hotéis, e lojas e redes apenas bloquear esse tipo de coisa porque tanto ingenuamente, ou ignorantemente, basta pensar que ninguém precisa desses outros portos. E isso usando uma VPN pode você contornar esses tipos de restrições, porque o que uma VPN faz é ele permite que você na Starbucks, ou do aeroporto, ou qualquer lugar do mundo para se conectar ao encryptedly yale.edu, a algum servidor aqui no campus, e, em seguida, túnel, por assim dizer, todo o seu tráfego de onde quer você é através de Yale, em que ponto em seguida, vai para o seu destino final. Mas, criptografando-lo, você evitar qualquer destes tipos de filtros ou a imposição que impôs alguma rede local. E mais, você tem um defesa muito mais robusto contra as pessoas assustador em torno de você que pode estar tentando ouvir em seu tráfego. Poderia ainda haver pessoas assustadores aqui de volta para casa em Yale vendo seu tráfego como ele sai da VPN, mas pelo menos você empurrou a ameaça mais longe. E é também aqui, um trade-off. Agora, é claro, se você estiver em China ou até mesmo no café, e você está tunelamento tudo seu tráfego através de Yale, qual o preço que estamos pagando talvez? AUDIÊNCIA: Speed. DAVID J. MALAN: velocidade, certo? Tem que ser um pouco de matemática ou alguns fanciness envolvido na criptografia real. Não poderia haver milhares de milhas de distância ou milhares de milhas de cabos entre você e Yale. E é muito ruim se você estiver na China, por exemplo, e você quer visitar um site na China. E assim seus dados estão indo para os EUA, e, em seguida, volta para a China só porque você está criptografando -lo através deste túnel. Mas ele resolve técnico e trabalhar problemas parecidos. Mas tudo se resume a essas idéias muito simples. E Harvard, para os curiosos, tem um aqui, bem como, em vpn.harvard.edu, que atua apenas como Yale. Assim, com tudo o que disse, por que É toda esta rede é útil? E o que podemos começar a fazer com ele? Bem, vamos fazer isso agora mais real. Esta é a sigla com a qual a maioria de nós são provavelmente super-familiar-- HTTP-- que representa a transferência de hiper texto Protocolo. E isso apenas significa que esta é a língua, o protocolo que os navegadores web e servidor web falar. A P em HTTP é de fato um protocolo. E um protocolo é apenas um conjunto de convenções. Nós vimos IP-- protocol-- internet Controle de transmissão TCP-- protocol-- e HTTP. Mas o que é esse estúpido coisa de um protocolo? É apenas um conjunto de convenções. Então, se eu espécie de vir para baixo aqui, e quero cumprimentá-lo. Gostaria de dizer oi, meu nome é David. AUDIÊNCIA: Luis. DAVID J. MALAN: Luis. Temos este humano estúpido convenção de apertar as mãos aqui. Mas isso é um protocolo, certo? Eu estendi minha mão. Luis estendeu a mão. Nós fizemos isso. E, então, completo, feito. E isso é exatamente o mesmo espírito de um protocolo de computador quando, como no HTTP, o que acontece é o seguinte. Se você é o computador no deixou aqui, e há alguns web servidor lá na direita. E o computador à esquerda quer solicitar informações a partir desse servidor. É uma espécie de uma operação bi-direcional. O navegador do lado esquerdo pede alguma página web. O servidor à direita responde com alguma página web. E vamos ver o que forma aqueles tomar em apenas um momento. E verifica-se que esses computers-- que o navegador eo servidor ou cliente e do servidor, por assim dizer. Muito parecido com um restaurante onde o cliente está pedindo alguma coisa, eo servidor está trazendo ele ou ela ficar algo-- é o tipo de palavra-chave. Literalmente dentro do envelope que meu navegador envia daqui para a web servidor é a palavra get. Como eu quiser obter as notícias de hoje. Eu quero pegar o meu Feed de notícias do Facebook, ou eu deseja obter alguma página do servidor. Especificamente, isso é o que é acontecendo dentro desse envelope. Então, eu, com Cole, essencialmente Cole enviada uma resposta. Se você imaginar que, na verdade, Cole queria uma imagem de Rick Astley, ele poderia ter me enviado um pedido semelhantes em espírito à presente. Dentro de seu envelope para mim, onde Agora estou fazendo o papel de Google, seria um pedido que, literalmente, diz, obter, em seguida, um slash-- frente e você provavelmente já viu barras em URLs antes. Significa apenas que me dê o padrão página, o padrão Rick Astley imagem, neste caso. E, a propósito, Cole fala a língua HTTP versão 1.1, ou o protocolo 1.1. E acontece que há uma versão mais antiga 1,0. Mas os computadores tendem a usar 1.1. A segunda linha é uma coisa útil que vai voltar para, talvez, antes do tempo. Mas é apenas uma especificação para mim, o destinatário, que a coisa que eu quero é www.google.com. Porque é muito possível estes dias para dezenas, centenas de sites com diferentes nomes de domínio para todos viver no mesmo servidor. Não está indo para ser verdade tanto no caso do Google. Mas em uma pequena empresa de caso, poderia ser absolutamente. Então Cole é apenas uma espécie de colocando no envelope, a propósito, quando este atinge seu endereço de IP na porta 80, apenas a certeza de que você sabe Eu www.google.com, não quero algum outro site aleatório no mesmo servidor. O que eu, em seguida, responder a Cole com, no fim do dia, é uma imagem. Mas em cima de que a imagem dentro do envelope é, na verdade, algum texto, onde eu digo, OK. Falo HTTP versão 1.1 também. 200. Que é um código de status que a maioria de nós provavelmente já nunca vi, porque significa OK. E isso é bom, porque significa que estou a responder com êxito a pedido de Cole. O que os números têm provavelmente você visto na web que não são OK? AUDIÊNCIA: 404. DAVID J. MALAN: 404-- arquivo não encontrado. Então, na verdade, a qualquer hora que você já viu um desses arquivos não irritante erros encontrados, porque a página web está morta, ou porque você digitado incorretamente uma URL, que significa apenas que o pequeno envelope que seu computador recebido do servidor continha uma mensagem HTTP 1.1, 404-- não encontrado. Esse arquivo ou esse pedido você fez não foi encontrado. Além disso, no interior do envelope normalmente é esta linha, tipo de conteúdo. Às vezes é HTML, algo que vamos ver em breve. Às vezes é um JPEG. Às vezes é um GIF. Às vezes é um arquivo de filme, um arquivo de áudio, uma série de coisas. Então, dentro do envelope é apenas um pequena dica sobre o que eu estou recebendo. Há outros códigos de status também, alguns de que vamos explorar em P ajustou seis, e você vai tropeçar em em P ajustou sete e / ou oito. Mas alguns aqui, como 404 que já vimos. Proibida, 403, significa como as permissões estão erradas, como você não tem tipo de configurados corretamente. 301 e 302, raramente vemos visualmente. Mas eles significam redirecionar. Toda vez que você tenha ido para um URL e você foi magicamente enviada em outro lugar, que é porque o navegador enviou de volta um envelope contendo o número 301 ou 302, e o URL que quer seu browser para ir para seu lugar. 500 é horrível. Você vai vê-lo em pouco tempo, provavelmente em P ajustou seis ou sete P definido. E isso geralmente significa há algum bug em seu código, porque na verdade nós vamos estar escrevendo código que responde a solicitações da Web. E você só tem alguns erro de lógica ou de sintaxe, eo servidor não pode lidar com isso. Então vamos ver como podemos alavancar e agora entender essas solicitações da seguinte forma. Se eu for para, digamos, google.com. Deixe-me ir para www.google.com. E pelo amor de demonstração, vamos ver, eu preciso ir para definições aqui. Eu estou indo para ir à busca Configurações. E o Google tem cada vez mais irritante recursos, mas características úteis. Então, o Google tem essa coisa como instantâneas resultados onde você começa a digitar, e automaticamente as coisas começam a aparecer. E isso é tudo bem e tecnicamente útil, e nós vamos entender em pouco tempo como isso funciona. Mas, por agora, eu estou girando off resultados imediatos, porque eu quero o meu navegador para tipo de trabalho tão velha escola que eu possa ver o que está acontecendo. Então agora eu estou de volta aqui. E eu quero procurar gatos. E notem que eu estou vendo algumas sugestões, algumas sugestões muito benignos agradecidamente. E agora, se eu pressionar Enter, vamos ver o que acontece. Portanto, há alguns gatos. E o top hit é na Wikipedia. Mas hoje nós nos preocupamos a tecnologia aqui em cima. Assim, a URL para o qual eu tenho foram enviados é este aqui. E há algumas coisas que eu realmente não entendo. Então, eu estou indo para ir em frente, porque Eu meio que sei como funciona o Google, e eu estou indo para destilar esta URL em sua forma mais simples. E agora eu vou bater Enter novamente. E ele ainda funciona. Eu tenho uma página de resultados de tudo sobre gatos. Mas note a simplicidade da minha URL. Acontece que esta é a forma como grande parte das obras da web. A web é apenas um todo bando de computadores executando um software que tomar entrada. Não é obter a entrada estilo string. Não é linha de comando argumentos como estamos acostumados. Eles levam de entrada, esses servidores web, por meio das URLs com bastante frequência. E qualquer hora que você tem procurou alguma coisa, qualquer momento que você entrou em Facebook, a qualquer hora que você tem fez nada interativa com uma página web, o que você está fazendo é efetivamente submeter um formulário, de modo para speak-- caixas de texto, caixas de seleção, pequenos círculos, e outros enfeites que enviam informações sobre você para o servidor. E verifica-se que a web servidor sabe de olhar para esse URL e analisá-lo, como olhar para ele de caráter por caráter procura de qualquer coisa interessante depois de um ponto de interrogação. Porque depois de um ponto de interrogação, ao que parece, vai vir um monte de pares de valores-chave. Quero dizer-chave = valor. E, em seguida, se há multiple-- talvez um e comercial, alguma outra chave = valor, E comercial, chave = valor. Então, nós tipo de visto essa idéia antes que algo tem um valor. É apenas um novo formato aqui. E eu só sei, por convenção, Google usa q para consulta. E então se eu quiser procurar cães, I pode procurar manualmente cães assim. E então eu estou ficando aparentemente alguns resultados de pesquisa envolvendo cães. De modo que parece ser interessante. E, de fato, o que está acontecendo debaixo do capô é este. Deixe-me fazer isso. Esta é um-- vamos ver. Deixe-me voltar mais aqui só por um momento. Vamos ver que não há outro maneiras de enviar informações. Então, se eu estou entrando em Facebook, ou Gmail, ou qualquer outro site popular, parece tipo de mau se o que eu digitei na caixa de pesquisa acaba em minha URL, na barra de endereços do navegador. Por quê? Por que é que levemente preocupante? Sim? AUDIÊNCIA: Digite uma senha. DAVID J. MALAN: Yeah. Então, o que, se o que eu tenho digitado é a minha senha? Eu meio que não quer que ele tão obviamente visível na barra de endereços do navegador. Um, porque o meu companheiro de quarto irritante tende a olhar sobre meu ombro, e ele ou ela agora pode ver, mesmo que foi balas quando eu estou digitando-o, pequenos círculos. Agora é na minha barra de endereço. Além disso, o que é verdade sobre as coisas você tende a digitar na barra de endereços. AUDIÊNCIA: [inaudível] DAVID J. MALAN: O que é isso? AUDIÊNCIA: É é enviada para fora. DAVID J. MALAN: Ele é enviada para fora. E também, ele é lembrado. Uma vez que a próxima vez você digita coisas lá em cima, muitas vezes, e autocompletes lembra o que você digitou antes. E então não há verdadeira história deste que seu irmão ou seu companheiro de quarto, ou quem quer que pode percorrer para praticamente ver cada site você visitou porque é logado que barra de endereços. Além disso, suponha que você queira carregar uma foto no Facebook. Como no mundo você está vai colocar uma foto em um URL? Bem, acontece que você pode fazê-lo em algum maneira, mas certamente não óbvio. E assim há essa outra forma de envio de informações em um envelope, não através de um GET, mas via algo chamado POST. E, em teoria, parece basicamente o mesmo. Em vez de a palavra GET, dizemos POST, e, em seguida, o mesmo tipo de formato. Por exemplo, este é o um screenshot do que pôde olhar como se eu tentar logging no Facebook, que me envia para um arquivo chamado login.php, que é, na verdade, ainda hoje denominado como tal. É o mesmo Mark filename deu a ele muitos anos atrás. É o programa que ele escreveu em PHP via que os usuários podem acessar o site. Mas você precisa enviar alguma entrada adicional. E ao invés de ele ir atrás do o nome do arquivo como fez antes com cats-- q = cats-- ele pode ir mais baixo no pedido, no interior mais profundo do envelope se você vontade, onde ninguém possa vê-lo, e onde ele não acabe na barra do navegador do usuário e, portanto, não me lembro de pessoas para bisbilhotar por aí. E aqui o meu endereço de e-mail e minha senha falso realmente ir. E se o Facebook está usando não HTTP, HTTPS, mas, tudo isto será criptografada, mexidos, ala César ou Vigenere, mas mais fancily para que ninguém pode realmente ver este pedido. E assim, de fato, qualquer tempo que você tem um URL que começa com HTTPS, significa apenas que ele está criptografado. Mas no final do dia, o que é na verdade, dentro destes envelopes? Este foi super baixo nível. E, felizmente, não estamos vai ter necessariamente ir tão baixo nível de cada vez para começar a escrever software interessante. Nós podemos começar a tomar as idéias de uma semana a cinco, assumir que não agora é que esta infra-estrutura nos permite escrever software que opera na web, e vai permitir-nos esta próxima semana para começar olhando para algo chamado HTML. Este é o material que é ainda mais profunda no interior do envelope, mas é o material que estamos vai começar a escrever. E é o material mais curiosamente, estamos indo para escrever programas que começa a gerar automaticamente para que os nossos sites não são codificado, mas tirar a entrada e saída de produzir. Este é talvez o mais simples web A página que você pode fazer no mundo. Eu posso realmente abrir algo estúpido como TextEdit no meu Mac, que só me dá uma janela de texto simples como este. Usuários de PC têm Notepad.ext, que é muito semelhante em espírito. E eu posso literalmente digite fora isto-- DOCTYPE HTML, que parece um pouco enigmática. Mas vamos voltar a isso. HTML, com estes estranho suportes angulares e barras, dentro do qual agora eu vou dizer aqui vem a cabeça de minha página web. Dentro disso, eu apenas sabe, e em breve você vai saber, que eu possa colocar o título de minha página web. E, em seguida, abaixo da cabeçalho da página web é a ir para a chamada corpo da página web. E eu só estou recuando apenas como em C para tipo de manter coisas bem legível estilisticamente. E agora eu estou indo para salvar isto como um arquivo no meu desktop, chamado hello.html. E eu vou dizer que sim, usar HTML. Não alterá-lo para .txt, mesmo embora tudo isso é um arquivo de texto, assim como um programa C escrito com um editor de texto. Embora não no CS50 IDE ao momento, só aqui no meu Mac. E se eu agora ir para o meu desktop, você verá hello.html. Se eu clicar duas vezes este, ele vai abrir Chrome. E mesmo que esse arquivo acontece a viver no meu desktop, que é talvez a mais simples A página web que eu poderia fazer. Observe que o título do guia caminho até superior é Olá mundo. O corpo da página web é de fato Olá mundo. E tudo que eu fiz para chegar a este ponto é implementar, ou é escrever uma nova linguagem, chamada HTML. Não é uma programação linguagem como C. Há não vai ser condições, e loops e funções. É uma linguagem de marcação, em que caso você acabou de dizer o recebimento programa que você quer fazer. Isto significa hey navegador, aqui vem uma página HTML. Hey navegador, vem aqui o chefe da minha página. Hey navegador, vem aqui o corpo de minha página. Hey navegador, é isso para o corpo. Isso é tudo para a página HTML. E com essas definições simples sozinho, veremos em breve que um, podemos representar isso como uma árvore. Mas mais sobre isso mais tarde. Então, isso tudo vai interligar a nossas estruturas de dados mais recentes. Dois, vamos apresentar essa piada estúpida. Este é um real que tatuagem esse cara tinha no pescoço. Provavelmente é engraçado a primeira semana ou dois, e depois disso, talvez não tanto. Mas HTML, e até mesmo a web página eu fiz apenas, mente super- numbingly disappointing-- apenas dizendo Olá mundo no texto preto em um fundo branco. Certamente nós podemos fazer muito melhor. E nós vamos fazê-lo através da introdução de outra linguagem chamada CSS. Isso também não é uma language-- programação sem loops e condições, ou para loops, mas realmente, apenas sintaxe pelo qual podemos dizer, fazem deste texto grande. Faça este texto pequeno. Direito alinhá-lo. Esquerda alinhá-lo. Faz o rosa. Torná-lo roxo. Faça-o azul. Ou fazer qualquer número de outros efeitos visuais. E por isso vamos ver como começar stylizing páginas web de modo que eles olham de uma forma mais perto do que queremos. E, por último, temos de fato arruinada talvez muito de TV e filme para você. Eu pensei que ia acabar aqui com nossos segundos finais em um clipe final que você mostra como hackear a internet funciona. Se pudéssemos diminuir a intensidade da acende uma última vez. [REPRODUÇÃO DE VÍDEO] -De jeito nenhum. Estou hackeadas. -Okorsky? -No-- Não, isso é importante. Eles já queimou o firewall pública NCIS. -Bem, Isolar o nó e despejo los, do outro lado do router. -Estou tentando. Ele está se movendo muito rápido. Ah, isso não é bom. Eles estão usando a nossa ligação [Inaudível] esta base de dados. Cortá-la. -Eu Não posso. É um ponto de ataque. Ele ou ela só é indo atrás de minha máquina. -Não é possível. Há criptografia meu nível DOD. Levaria meses para get-- Ei, o que é isso? Um jogo de vídeo? -No Tony, estamos hackeadas. -Se Eles ficam no computador de Abby, toda a rede de NCIS é o próximo. -Eu Não pode pará-lo. Faça algo McGee. -Eu Nunca vi um código como este. -Oh. -Onde Está o ir? Abby? -Eu Não fiz nada. Eu pensei que você fez. -Não. -Eu fiz. [FIM DE REPRODUÇÃO] DAVID J. MALAN: O melhor parte é duas pessoas digitando no teclado, ao mesmo tempo. Então é isso para CS50. Vamos ficar por aqui para o horário de expediente. E vamos ver você na próxima vez. [Música tocando - "TEMA Seinfeld"] Este é CS50. Eu não quero ser um pirata. COLUNA 2: Yarr David. É um belo gibão você estar vestindo. Lote de orçar em que puff.