A Internet: HTTP e HTML O meu nome é Jasmine e sou gestora do programa na equipa de engenharia da XBOX One. Uma das nossas maiores características chama-se XBOX Live. É um serviço online que faz a ligação entre gamers de todo o mundo, e contamos com a Internet para que isso aconteça. Isto não é uma tarefa fácil e há muitas coisas a acontecer nos bastidores. A internet está a mudar totalmente a forma como as pessoas interagem e se ligam. Mas como é que funciona? Como é que os computadores de todo o mundo de facto comunicam uns com os outros? Vejamos a navegação na Internet. Primeiro, abre-se um navegador web. É a aplicação que utilizamos para aceder às páginas web. Depois, escreves o endereço web, ou URL, que significa Localizador Uniforme de Recursos, da página web que queres visitar, como tumblr.com. Olá, eu sou David Karp, o fundador da Tumblr e nós somos e estamos aqui hoje para falar sobre como os navegadores web que usamos todos os dias realmente funcionam. Provavelmente já te perguntaste o que realmente acontece quando escreves um endereço no teu navegador da Internet e depois carregas no 'enter'. E é realmente tão fixe quanto podes imaginar. Nesse momento, o teu computador começa a falar com outro computador, chamado servidor, que normalmente está a milhares de quilómetros de distância, e em milissegundos, o teu computador pede a esse servidor um sítio web, e ele começa a responder-lhe numa língua chamada HTTP. HTTP significa HyperText Transfer Protocol (Protocolo de Transferência de Hipertexto). Podemos pensar nisto como a língua que um computador usa para pedir um documento a outro. E, na verdade, ela é bastante simples. Se interceptares a conversa entre o teu computador e um servidor web na internet, ela será composta principalmente de algo a que chamamos pedidos "GET". Estes pedidos são mesmo muito simples, com a palavra "GET" e o nome do documento pedido. Se estiveres a tentar entrar no Tumblr e carregar a nossa página de login, o que estás a fazer é enviar um pedido ao servidor do Tumblr que diz "GET /login". Isso diz ao servidor do Tumblr que queres todo o HTML da página de login do site. Então, HTML significa Hyper Text Markup Language e podes encará-lo como a língua usada para dizer a um navegador web qual deve ser o aspeto da página. Se pensares em algo como a Wikipedia, que é realmente apenas um grande documento simples o HTML é a linguagem que se utiliza para fazer o título ficar grande e a negrito, para fazer a fonte para por o tipo de letra certo, para ligar um certo texto a outras páginas, para por algum texto em negrito, outro em itálico, para colocar uma imagem no meio da página, para alinhar a imagem para a direita, para alinhar a imagem para a esquerda. O texto de uma página web está escrito directamente no HTML, mas outras partes, como imagens ou vídeos, estão em ficheiros separados com as suas próprias URLs que é preciso pedir. O navegador envia pedidos HTTP separados para cada um deles e mostra-os à medida que vão aparecendo. Se uma página web tem muitas imagens diferentes, cada uma delas gera um pedido HTTP separado, fazendo com que a página carregue mais lentamente. No entanto, quando navegas na web, às vezes não estás so a pedir páginas com pedidos GET. Por vezes envias informação, como quando preenches um formulário ou escrever uma consulta de pesquisa. O teu navegador envia esta informação em texto simples para o servidor web utilizando um pedido HTTP POST. Digamos que vamos entrar no Tumblr. Bom, a primeira coisa que é feita é um pedido POST, que é uma publicação na página de login do Tumblr, contendo alguns dados anexos a ele. Tem o teu e-mail, a tua palavra-passe... Isso vai para o servidor do Tumblr, que calcula que, sim senhor, és o David. Ele envia uma página de volta ao teu navegador que diz: "Sucesso! Sessão iniciada como David." Mas, juntamente com essa página web, junta também pequenos dados cookie invisíveis que o teu navegador vê e sabe que deve guardar. E é realmente importante, porque é na verdade a única forma de um website se lembrar de quem és. Todos esses dados cookie são, na realidade, um cartão de identificação para a Tumblr. É um número que te identifica como sendo o David. O teu navegador guarda esse número e da próxima vez que atualizares o Tumblr ou que fores a tumblr.com, o teu navegador web sabe automaticamente que deve juntar esse número de identificação ao pedido que enviar para os servidores da Tumblr. Os servidores da Tumblr vêem o pedido vindo do teu navegador, o número de identificação, e sabem: "Ok, isto é um pedido do David". A Internet está completamente aberta. Todas as suas ligações são partilhadas e a informação é enviada em texto simples. Isto permite aos hackers bisbilhotarem quaisquer informações pessoais que envies pela internet. No entanto, os websites seguros impedem-no, pedindo ao seu navegador web para comunicar num canal seguro utilizando uma coisa chamada Secure Sockets Layer e a sua sucessora, Transport Layer Security. Podemos pensar no SSL e TLS como uma camada de segurança que envolve as nossas comunicações para as proteger de bisbilhotices ou violações. O SSL e o TLS estão activos quando vemos pequenos cadeados na barra de endereços do navegador ao lado do HTTPS. Os protocolos HTTPS garantem que os nossos pedidos HTTP estão seguros e protegidos. Quando uma página web pede ao teu navegador para entrar numa ligação segura, ele envia primeiro um certificado digital, que é como um bilhete de identidade oficial que atesta que é o site é quem afirma ser. Os certificados digitais são emitidos pelas autoridades de certificação, que são entidades de confiança que verificam as identidades das páginas web e emitem certificados para elas, tal como um governo pode emitir BIs ou passaportes. Se uma página web tentar iniciar uma ligação segura sem um certificado digital emitido corretamente O teu navegador irá avisar-te. E pronto, isto é o básico da navegação na internet! A parte da Internet que vemos no dia a dia. Para resumir, HTTP e DNS gerem o envio e recepção de HTML, ficheiros multimédia, ou qualquer coisa na web. O que torna isto possível, nos bastidores, são as redes TCP/IP e routers, que decompõem e transportam informação em pequenos pacotes. Esses pacotes em si são constituídos por binários, sequências de 1s e 0s que são fisicamente enviadas através de fios eléctricos, cabos de fibra óptica e redes sem fios. Felizmente, depois de teres aprendido como funciona uma camada da Internet, podes contar com ela sem teres de te lembrar de todos os detalhes. E podemos confiar que todas essas camadas irão trabalhar juntas para fornecer sucessivamente informação à escala e de forma fiável.