Aula 01 - Introdução à Web
Uma visão geral do modelo cliente-servidor e das tecnologias que compõe a web
Arquitetura da Web

- A ideia por trás da WEB surgiu dentro do CERN (Organização Europeia para Investigação Nucelar), na Suíça
- O objetivo principal era tornar a troca de documentos e informações mais fácil através da já operacional Internet
- Tim Berners-Lee(cientista da computação britânico) foi idealizador da proposta e responsável pela criação de um trio de tecnologias que iriam atuar em conjunto na proposta da web:
- Um servidor de documentos de hipertexto
- Um cliente para acesso (navegador)
- Uma linguagem padronizada para os documentos (HTML)
- Uma linguagem padronizada a troca de documentos (HTTP - HyperText Transfer Protocol)
- A ideia por trás da web surgiu da união da internet com o conceito de hipertextos, originário do projeto para a criação doMemex
- Outras ideias parecidas anteriores à Web não tiveram o mesmo sucesso pois eram proprietárias e exigiam ligação bidirecional de hiperlinks
- Web 1.0
- Marcada pela implementação de páginas "somente leitura", entre 1989 e 2005. As páginas construídas durante este período eram majoritariamente desenhadas com pouca ou nenhuma interação com o usuário em páginas estáticas. De modo geral, permitia apenas a busca e leitura de conteúdo. Outra característica desse período é ter pouca ou nenhuma meta informação que possa ser processada por máquinas.
- Centrada na busca de conteúdo
- Sem interatividade
- Paginas estáticas
- Web 2.0
- Definido por Dale Dougherty em 2004 como a Web da leitura e escrita. Foram introduzidos recursos que permitiram aos usuários contribuir com conteúdo, colocando-os no centro das interações pela Web. É nesse período que surgem diversas ferramentas de colaboração e redes sociais, capazes de integrar os usuários através da interação dinâmica com as páginas web.
- Centrada em comunidades e negócios
- Conteúdo produzido pelos usuários
- Interatividade
- Web 3.0
- Termo sugerido por John Mark em 2006 (dois anos depois da criação do termo Web 2.0) caracteriza uma era de automação e integração entre aplicações web, principalmente através da definição de estruturas de dados e padrões que permitam melhorar o uso e reuso da informação. A Web 3.0 também é conhecida como Web Semântica, termo utilizado pelo criador da Web Tim Berners-Lee ainda em 2001 para se referir a uma web capaz de permitir integração de máquinas e humanos no controle e organização das informações.
- Padronização de dados e implementações
- Interoperabilidade entre aplicações
- Separação da web em camadas
- Uso massivo da plataforma web por aplicações em geral, fora do espaço tradicional (navegadores)
- Web 4.0
- Também conhecida como Web Ubíqua, a Web 4.0 apresenta os conceitos relacionados à Internet das Coisas (IoT - Internet of Things) e a simbiose entre dispositivos e seres humanos. Dispositivos domésticos, softwares e ambientes são interconectados como forma de prover a experiência mais inteligente possível na troca de informações.
- Computação Ubíqua
- Interação entre dispositivos
- Big data e Inteligência Artificial
- Web 5.0 e além
- Há pouca definição para o que seria considerado esta nova fase da Web. No entanto, alguns autores sugerem que as interações trazidas pela etapa anterior serão agora facilitadas pela interação emocional entre humanos e computadores. Tecnologias baseadas em neurociência e inteligência artificial serão responsáveis por levar sentimentos às experiências de troca de informação.















- A troca de informação é realizada por intermédio de um ponto central
- A atualização dos dados e administração é facilitada quando comparada com outros paradigmas
- Permite interoperabilidade dado que servidores podem conectar-se à outros servidores


- Modelo requisição/resposta
Programação para a Web

A diferença entre frontend e backend está relacionada com o modelo cliente servidor. Tradicionalmente, todo serviço que fica do lado do servidor é chamado de backend, enquanto tudo aquilo que é enviado e processado no cliente é chamado de frontend.

- HTML
- Responsável pela estrutura das páginas
- CSS
- Adiciona estilo ao documento HTML
- Javascript
- Linguagem utilizada para criar estruturas de programação
<html>
<head>
<meta charset="UTF-8">
<title>Título da Página</title>
</head>
<body>
Olá Mundo!
</body>
</html>
body{
background-color: #000000;
margin: auto;
}
.dialogo{
font-size: 0.9rem;
}
document.getElementById('dialogo').innerHTML = "Olá Mundo!"
if(dialog.hasMessage()){
dialog.goToNext()
}
Ferramentas para o Desenvolvedor
- Editor de texto
- Mozilla Firefox é um navegador livre e multi-plataforma desenvolvido pela Mozilla Foundation com ajuda de centenas de colaboradores. Sua primeira versão foi lançada em 2004.
- Editor de Imagem e Vetor
- Desenvolvido pela Google e introduzido em 2008. É compilado a partir de um projeto de código fonte aberto chamado Chromium. É atualmente o navegador web mais utilizado do mundo.
- Servidor Web
- Apesar de a maioria dos navegadores serem capazes de reconhecer e ler documentos diretamente do sistema de arquivos, em alguns casos é necessário utilizar um servidor web para que algumas funcionalidades sejam corretamente testadas em ambiente de desenvolvimento. Dessa forma, existem diversas alternativas que vão desde o uso de servidores dedicados, vps ou servidor doméstico, até a instalação de serviços no próprio computador do desenvolvedor. Para isso podemos utilizar softwares como o lighthttp, easy-php, xampp, ou facilmente iniciar um novo serviço usando o framework node.js ou python.
- Navegador
- Navegador desenvolvido pela Opera Software e bastante usado pelos notáveis recursos, que também foram implementados em outros navegadores, como sessões de navegação, bloqueador de propagandas e acelerador de carregamento. O Opera também possui uma VPN própria integrada.

O inspector é uma das principais ferramentas aliadas do programador quando desenvolve interfaces para o navegador. É através dele que temos acesso a tudo que o navegador é capaz de interpretar sobre a página, seus erros e suas requisições. Além disso, o Inspector permite executar código javascript e alterar a estrutura e estilização da página em tempo de execução (enquanto a página está aberta), tornando-se uma ferramenta perfeita para o aprendizado.
Atalhos em cada navegador
Para abrir o inspector através de atalhos:
- No Firefox, Chromium, Google Chrome e Opera, use
F12
- Mozilla Developer Docs: um dos melhores repositórios de documentação para web, também disponível em português. O MDZ é um dos esforços da Mozilla para a padronização das tecnologias utilizadas na Web.
- W3Schools.com: Uma ótimo local para consulta e aprendizado guiado das tecnologias web. Disponível apenas em inglês.





