Hoje a gente vai começar uma série de posts contando sobre a história da internet. Eu vou começar lá no início, desde antes do seu nascimento, tudo de um ponto de vista um pouco mais técnico, não simplesmente contando a história “romantizada” como tem aí nos documentários. Nesse primeiro post a gente ai falar desde os mainframes dos anos 40, passando pelos pontos principais, até os anos 2000.

Na minha visão, a internet é uma das maiores, se não a maior, criação da humanidade, pelo menos dentre as invenções modernas. Não desmerecendo todas as outras invenções importantes, até mesmo a do próprio computador, mas a internet proporciona um poder sem precedentes de criar coisas sem a necessidade de uma presença física, e isso é impressionante. A computação, de uma forma geral, proporciona isso e a internet amplifica de uma forma absurda. Antes, a gente precisava se dedicar a um emprego convencional, presencial, de prestação de serviço ou criação de produtos. A internet possibilita que você, sem sair de casa e, obviamente, tendo conhecimento para tanto, consiga desenvolver produtos e serviços que vão ser utilizados por milhares de pessoas no mundo inteiro. Poucas coisas no mundo oferecem essa possibilidade, esse luxo.

Eu sempre fui muito interessado pela historia da internet, como ela nasceu, sua evolução. É muito extensa a história, então eu peguei algumas datas e tecnologias específicas que, para mim, foram fundamentais na construção da internet como a gente conhece hoje, começando nos mainframes dos anos 40.

Diferente do que a maioria das pessoas pode achar, o conceito de rede não é novo. Nos anos 40 a gente já tinha computadores, mas não computadores pessoais todo mundo tem casa hoje, eram máquinas gigantescas, que ocupavam salas imensas, e eram utilizados normalmente pelo exército e por acadêmicos, então normalmente esses computadores estavam dentro de empresas, órgãos governamentais e universidades. Eles eram usados basicamente para processamento de dados, para quebra de criptografia e, no máximo, algum sistema controle. Naquela época os sistemas eram “programados” com cartões perfurados, que eram extremamente difíceis de gerenciar.

O tempo foi passando e, no comecinho dos anos 50, os mainframes começaram a se popularizar, a empresa que mais se destacou nessa área foi a IBM. Como computadores individuais eram muito caros, as empresas que queriam se informatizar optavam pelo uso dos mainframes, que consistem de um computador central gigantesco, conectado via rede a diversos terminais, dispositivos de entrada e saída, com pequenas telas, teclados, entre outros. Percebe-se, então, que o conceito de ter uma rede já existia desde os anos 50. Os mainframes conseguiam gerenciar vários usuários ao mesmo tempo, podendo fazer operações simultâneas. Obviamente, o hardware era extremamente arcaico, provavelmente uma calculadora hoje em dia tem mais processamento e memória do que os mainframes aquela época, mas já era possível desenvolver sistemas de cadastros, encriptação, bancos de dados e mais. Foi ali que começaram a surgir os primeiros protocolos de comunicação entre o servidor, o mainframe, e essas máquinas “burras”, para conseguir capturar os inputs e devolver os outputs.

Conforme o tempo foi passando, a gente vai pros anos 60, quando a IBM criou o GML [Generalized Markup Language ou Linguagem de Marcação Generalizada, posteriormente padronizada pelo ISO como SGML – Standard Generalized Markup Language ou Linguagem Padronizada de Marcação Generalizada], que era um padrão de escrita para a comunicação dos sistemas. Cada mainframe rodava um sistema interno, e esse sistema precisa enviar informação para o outro sistema, então eles utilizavam o GML para fazer a comunicação e trafegar dados por meio de uma rede. Os primeiros sistemas de rede da época utilizavam basicamente o mesmo tipo cabeamento utilizado para a comunicação de telefone, com par trançado ou até cabo coaxial, que consiguia transportar os pulsos elétricos binários entre as placas de rede, que codificavam e decodificavam essas mensagens.

Um passo adiante começou a ser dado no final de 1969, com projeto do governo americano, conhecido como ARPAnet [Advanced Research Projects Agency Network ou Rede do Departamento de Pesquisas em Projetos Avançados], do DARPA [Defense Advanced Research Projects Agency ou Departamento de Projetos de Pesquisa Avançada de Defesa], que criou as bases de um protocolo de comunicação mundial de longas distancias, o protocolo TCP/IP, que a gente utiliza até hoje. O propósito principal do protocolo TCP, era possibilitar a conexão de centenas de computadores espalhados pelo mundo, independente de qual era a interface de conectividade. Naquela época não existia uma infraestrutura de conectividade muito grande, tinha basicamente os satélites, a rede de telefonia e rádio, nada muito sofisticado, e o protocolo TCP/IP veio como uma forma de conseguir conectar diversas máquinas no mundo inteiro, para prover comunicação entre elas. Eu quero destacar uma propriedade do TCP/IP que é importante de se entender: o TCP [Transmission Control Protocol ou Protocolo de Controle de Transmissão] é um protocolo de telecomunicação que visa transmitir uma mensagem e ele espera que o outro lado receba essa mensagem, é o que a gente chama de resiliente, ele envia a mensagem e espera outra ponta responder se recebeu ou não aquela mensagem; e ele é um protocolo persistente, então, caso essa mensagem não seja recebida pelo destinatário, ele tenta reenviá-la novamente, até obter uma resposta. Já o IP [Internet Protocol ou Protocolo de Rede], serve como forma de endereçamento, para identificar destinatário e remetente. Outros protocolos de telecomunicação foram desenvolvidos em universidades, normalmente para uso interno acadêmico, mas a gente não tinha uma aplicabilidade muito sólida fora disso, tirando alguns poucos tipos de softwares como gerenciadores de email, mensageria de chat e intercomunicação de sistemas que dependiam das APIs internas de cada um deles, mas a gente não tinha nenhum protocolo visando uma universalização da comunicação na internet até então.

Chegando agora nos anos 90, um cara chamado Tim Berners-Lee, que todo mundo que mexe com internet deveria conhecer, lançou um paper envolvendo três pontos determinantes para o futuro da internet: os protocolos HTTP, HTML e WWW. O protocolo HTTP [Hypertext Transfer Protocol ou Protocolo de Transferência de Hipertexto], colocado acima do protocolo TCP/IP, contém informações de endereçamento e é responsável por enviar e receber requisições. O HTTP tem a peculiaridade de conseguir transmitir dados “visíveis” e metadados, que fazem com que o destinatário consiga entender o que o software que está enviando a requisição quer dizer e possa responder com coesão. Via o cabeçalho da requisição a gente consegue, por exemplo, enviar informações de segurança, entre outras, para o sistema, que processa e devolve a resposta da requisição de forma dinâmica. O protocolo HTTP que a gente utiliza ainda hoje passou por varias atualizações ao longo dos anos, mas seu princípio permanece o mesmo. Já o HTML [HyperText Markup Language ou Linguagem de Marcação de Hipertexto] foi baseado no SGML, e é uma forma simplificada de conseguir tramitar dados. O conceito básico do HTML é enviar mensagens num formato simples de ser entendido pela outra ponta. E, por fim, o primeiro navegador de internet, o WWW [World Wide Web], que era um navegador utilizado para poder fazer a implementação final do HTTP com o HTML de forma visual (não tão visual assim). O WWW também possibilitava comunicação com outros tipos de protocolo, como FTS, SMTP, entre outros.

Tim Berners-Lee

Isso teve uma grande repercussão entre os acadêmicos, mas a difusão de fato da internet para o cidadão médio, fora do meio dos cientistas da comunicação, veio em 1993, com a criação do Mosaic, o primeiro navegador gráfico de extrema popularização. O Mosaic foi criado pelo cientista de computação Marc Andreessen, da Universidade de Illinois, e foi uma inovação bizarra em comparação ao que se tinha anteriormente, com milhões de downloads em poucos dias. A ideia principal do projeto era fazer uma implementação visual para acessar a web, e as pessoas se interessaram imediatamente, baixaram, compartilharam, e tudo mais.

Isso fez com que um investidor entrasse em contato com o Andreessen e o convencesse a ir para Palo Alto [cidade do Vale do Silício, na Califórnia – EUA] montar a Netscape, que foi extremamente importante para a história da internet. Ele precisou ser rápido para montar a empresa, porque logo monte de gente viu a ideia e começou a querer fazer igual.

Outro ponto que eu acho interessante falar aqui, que muitas vezes é esquecido, é que em 1994 foi criado o W3C [World Wide Web Consortium], uma organização formada por várias empresas de comunicação e internet do mundo todo. A W3C é quem dita várias regras pra internet e foi criado pelo Tim Berners-Lee. Só para vocês entenderem a importância desse consórcio, os formatos SVG, PNG, XHTML, XML, CSS, entre tantos outro, foram todos aprovados pelo W3C.

O HTML foi fundamentado como um catálogo: a primeira chamada dentro de uma requisição em um site é um índice, à partir da qual se encontram os links para as demais páginas; era um conceito primitivo, mas funcional. Mas faltava alguma coisa, faltava ser mais dinâmico, faltava um pouco de movimentação, coisas que já existiam nas primeiras versões de sistemas operacionais gráficos da Apple e no Windows, e que impactavam bastante o usuário de uma forma geral, possibilitando a interação com componentes e botões, não simplesmente com textos e imagens estáticas. Então, em 1995, foi lançado o LiveScript, que depois viria a se tornar o JavaScript, que era uma linguagem que permitia que coisas simples fossem feitas, como alertas e outras funções primitivas. Quem pegou o JavaScript nessa época não esperava que ele viraria alguma coisa muito maior, porque era uma linguagem muito rudimentar e simples.

Também em 1995 teve o estouro da “Guerra dos Navegadores”. Esse caso foi extremamente emblemático, quem já viu alguma coisa sobre a história da internet provavelmente já ouviu falar. Basicamente o que aconteceu é que nosso “amigo, o tio Bill” [Bill Gates] botou na cabeça que ele era o dono da porra toda e ele queria matar o Netscape (e acabou meio que conseguindo). Nessa época, foi criada a MSN, a Microsoft Network, que era a “ideia maluca” do Bill para a Microsoft mandar na internet, cobrar pedágio e o caralho a quatro. Para combater a ameaça da Netscape e tentar impor a hegemonia da Microsoft, ele criou o famigerado, tão conhecido e igualmente abominado Internet Explorer, que já ia instalado nos computadores com Windows. Nas primeiras versões, o Internet Explorer era relativamente bom, considerado o que tinha na época, mas eu tenho um trauma gigantesco com relação ao dito. Eu convivi com esse “monstrengo” desde a versão 2, mas quanto eu entrei no mercado de desenvolvimento web de fato, já estava na versão 5. O Internet Explorer 6 foi a maior praga que existiu na internet, por sorte depois vieram coisas melhores, como o Mozilla Firefox [“sucessor” e herdeiro do código do finado Netscape] e, depois, o Chrome, que meio que enterrou de vez esse projeto tenebroso da Microsoft. Tem um documentário excelente do Discovery Chanel, “A Internet”, que conta em detalhes como é que foi a guerra dos navegadores e eu recomendo muito que vocês vejam.

Quando eu comecei de fato a usar a internet ainda existia o Netscape, mas o Internet Explorer era hegemônico dentro do mercado nos anos 2000, então a gente teve que conviver com essa praga. O grande mal do Internet Explorer é que a Microsoft era extremamente arrogante e ignorante, e criava uma série de funcionalidades que não tinham um padrão comparado aos outros navegadores. Na cabeça da Microsoft era “a gente é foda e foda-se o resto”. Isso só melhorou muitos anos depois, com a popularização do Chrome, aí as coisas começaram a se padronizar de uma forma mais coesa, principalmente depois do ECMAScript 2015. Antes disso era uma loucura escrever CSS e JavaScript, porque você perdia mais tempo fazendo fixes pro Internet Explorer do que propriamente fazendo o que você tinha que fazer.

Continuando, em 1996, a gente teve a criação do XML [Extensible Markup Language ou Linguagem de Marcação Extensiva], uma evolução baseada no SGML e no HTML, feita como uma forma de tramitação de dado entre sistemas, inclusive sistemas de internet. O XML criou uma infraestrutura única para diversas linguagens, inclusive linguagens desconhecidas e de pouco uso. Já chegando perto dos anos 2000, nós tivemos a criação do maravilhoso, fenomenal JSON [JavaScript Object Notation], que é o padrão mais utilizado hoje para tramitação de dados e que substituiu quase em 100% o XML, principalmente na internet.

Chegando aos anos 2000, a gente tem o XMLHttpRequest que, para mim, junto do JSON, é a grande virada de chave da internet. Essa foi a primeira vez que a gente começou a ver conteúdos dinâmicos em um nível nunca antes visto e que culminaria na situação que a gente tem hoje, de frameworks front-end e tudo mais (eu poderia até a entrar na seara de linguagens de back-end, mas as “pessoas normais” não sabiam que essa movimentação estava acontecendo porque, na prática, todo mundo só recebia HTML, CSS e JavaScript, então a diferença de estar rodando em PHP, .Net ou qualquer outra, não faz nenhuma diferença).

Esse post já está ficando longo, mas eu preciso comentar mais umas coisinhas que eu acho fundamental destacar, dentre todas as coisas que eu falei até agora:

  • A gente ainda utiliza o protocolo TCP/IP (numa versão mais recente, obviamente) como base estrutural da internet;
  • Nós também utilizamos o HTTP como protocolo de comunicação, as versões mais utilizada são a 1.1 e a 2, e, embora o Google esteja com a versão 3, o suporte ao HTTP3 ainda não é muito grande;
  • O HTML ainda é a forma mais usada para enviar documentos do servidor para serem renderizados no navegador;
  • Os navegadores passaram por uma série de modificações, ficaram muito mais potentes, principalmente depois do surgimento do Google Chrome;
  • O JavaScript é a linguagem de programação mais utilizada do mundo.

No próximo post dessa série eu vou continuar contando sobre as evoluções da internet que aconteceram a partir dos anos 2000, mas agora eu vou ficando por aqui, a gente se vê na próxima. Valeu!

Eu já contei outras histórias aqui no blog. Vou deixar algumas recomendações aqui:

O conteúdo deste post é baseado no vídeo “Protocolos e Navegadores”: