programação web aula 1: introdução · aula 1: introdução bruno müller junior departamento de...
TRANSCRIPT
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Programação WebAula 1: Introdução
Bruno Müller Junior
Departamento de Informática
UFPR
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
1 Histórico2 Modelo
Navegadores (Cliente)Servidores
Funcionamento de ServidoresCaracterísticas de Servidores
URL3 HTTP
FuncionamentoRequest PhaseExemplo de request com HEAD
Exemplo 2
Response PhaseExemplo de Resposta de GETLinha de estado
Conexão4 Segurança
AspectosPrivacidade e IntegridadeAutenticaçãoAutenticaçãoOutros Problemas
5 Ferramentas6 Disciplina
Organização
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Histórico
Internet1960 - ArpanetDe�nição: Conjunto de computadores conectados em rede.Protocolo Principal: TCP/IP.Endereçamento XXX.XXX.XXX.XXX Exemplo: 10.254.0.4 .Nomes de Domínio (Mapeamento nome em endereços IP).
World Wide Web1989 - Protocolo desenvolvido no CERN (Suíça) pelo grupo deTim Berners-Lee.Busca de arquivos formatados como hipertextos, que sãotextos com links para outros arquivos.Unidades de Informação recebem vários nomes: Páginas,Documentos, Recursos.
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Modelo
Modelo Cliente Servidor na Web:O cliente é responsável para renderização, que em alguns casosimplica em um considerável custo computacional;As tarefas do servidor normalmente requerem pouco podercomputacional. Com esta divisão de tarefas, um mesmoservidor pode responder a muitos clientes.
Figura : www3.ntu.edu.sg/home/ehchua/programming/webprogramming/http_basics.htmlBruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Navegadores (Cliente)
Navegadores (Cliente)
Cliente web que, numa análise minimalista:inicia a comunicação com o servidor Web;aguarda documento enviado pelo servidor;formata documento para apresentação.
outras tarefas incluem realizar cálculos, aguardar digitação dousuário entre outras.
Linguagens/Protocolos: HTML, CSS, Javascript, ...
Primeiro navegador grá�co: Mosaic - 1993.
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Servidores
Servidores
Programas passivos que retornam os documentos solicitadospelos clientes.
Levantamento do uso de servidores (Fev/2016):http://news.netcraft.com/archives/2016/02/22/
february-2016-web-server-survey.html
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Funcionamento de Servidores
Funcionamento de Servidores
Ao ser iniciado, o processo servidor informa ao S.O. que estáapto a receber mensagens de uma porta especí�ca (porexemplo, Apache na porta 80).
Ao chegarem msgs para aquela porta, o S.O. as encaminha aoservidor.Para cada mensagem recebida, o servidor:
analisa o comando HTTP enviado (e dados se houverem);executa os comandos especi�cados, ou seja:
acessa arquivos;dispara processos para tratar a mensagem (como em PHP,rails, Java Web Software, etc.);envia resposta ao cliente.
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Características de Servidores
Características de Servidores
Estrutura de Arquivos:document root: o diretório (no sistema de arquivos doservidor) de onde o servidor web irá retornar a maior parte desuas páginas web. No apache, /var/www/server root: diretório onde estão os arquivos do servidor assimcomo os outros executáveis.mapeamento:http://www.tunias.com/topdocs/petunias.html →/var/www/topdocs/petunias.html.virtual hosts: servidores que suportam mais de um host.proxy server : servidores que retornam documentos de outrasmáquinas web.
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
URL
URL
formato geral: scheme:object-addressscheme é o protocolo de comunicação. Exemplos: http, ftp,gopher, file, mailto, news.Exemplos:
http://fully-quali�ed-name/path-to-document�le://path-to-document
Caracteres especiais:Não pode conter espaços. Para �emular� o espaço, usa-se osímbolo %XX, sendo XX o valor hexadecimal (20 para espaço).Exemplo: San%20Jose = San Jose.Para tratamento de outros símbolos, vejahttp://www.w3.org/Addressing/URL/URI_Overview.html
No protocolo HTTP, quando o arquivo não é especi�cado, oservidor retorna o arquivo index.html (se houver).
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
HTTP
HTTP : Hypertext Transfer ProtocolVersão atual: 1.1, de�nido no RFC 2616, de junho 1999.o protocolo HTTP está na camada de aplicação do modelo OSI.Usa TCP/IP.O protocolo HTTP consiste de duas fases: Request e Response.
Figura : www3.ntu.edu.sg/home/ehchua/programming/webprogramming/http_basics.html
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Funcionamento
Funcionamento
Cada mensagem entre o cliente e o servidor consiste de pelomenos duas partes: header (infos sobre a mensagem) e body
(infos sobre os dados).
Figura : www3.ntu.edu.sg/home/ehchua/programming/webprogramming/http_basics.html
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Request Phase
Request Phase
Formato geral de uma mensagem de requisição:método HTTP;campos do cabeçalho;linha em branco;corpo da mensagem (opcional).
Método DescriçãoGET Retorna o conteúdo do documento especi�cadoHEAD Retorna o cabeçalho do documento espe�cadoPOST Executa o documento especi�cado, usando dados contidosPUT Substitui documento especi�cado com os dados contidos
DELETE Apaga o documento especi�cado
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Exemplo de request com HEAD
Exemplo de request com HEAD
É possível ver como os métodos funcionam usando o programatelnet. Exemplo 1: HEAD:> telnet condor httpTrying 10.254.251.162...Connected to condor.c3local.Escape character is '^]'.HEAD /index.html HTTP/1.1HTTP/1.1 200 OKDate: Mon, 22 Jul 2013 18:19:55 GMTServer: Apache/2.2.22 (Ubuntu)Last-Modified: Wed, 24 Apr 2013 23:40:52 GMTETag: "b2a79-b1-4db23d5136900"Accept-Ranges: bytesContent-Length: 177Vary: Accept-EncodingConnection: closeContent-Type: text/html
Connection closed by foreign host.>
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Exemplo 2
Exemplo 2
Exemplo 2: GET:> telnet condor httpTrying 10.254.251.162...Connected to condor.c3local.Escape character is '^]'.GETHTTP/1.1 200 OKDate: Mon, 22 Jul 2013 18:18:12 GMTServer: Apache/2.2.22 (Ubuntu)Last-Modified: Wed, 24 Apr 2013 23:40:52 GMTETag: "b2a79-b1-4db23d5136900"Accept-Ranges: bytesContent-Length: 177Vary: Accept-EncodingConnection: closeContent-Type: text/html
<html><body><h1>It works!</h1><p>This is the default web page for this server.</p><p>The web server software is running but no content has been added, yet.</p></body></html>Connection closed by foreign host.>
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Response Phase
Response Phase
Corresponde à mensagem de resposta do servidor para ocliente;Formato geral de uma mensagem de resposta:
linha de estado (Status Line);campos do cabeçalho;linha em Branco;corpo da resposta;
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Exemplo de Resposta de GET
Exemplo de Resposta de GET
> telnet condor httpTrying 10.254.251.162...Connected to condor.c3local.Escape character is '^]'.GETHTTP/1.1 200 OKDate: Mon, 22 Jul 2013 18:18:12 GMTServer: Apache/2.2.22 (Ubuntu)Last-Modified: Wed, 24 Apr 2013 23:40:52 GMTETag: "b2a79-b1-4db23d5136900"Accept-Ranges: bytesContent-Length: 177Vary: Accept-EncodingConnection: closeContent-Type: text/html
<html><body><h1>It works!</h1><p>This is the default web page for this server.</p><p>The web server software is running but no content has been added, yet.</p></body></html>Connection closed by foreign host.>
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Linha de estado
Linha de estado
No exemplo, HTTP/1.1 200 OK
Faixas de valores:100-199 Informacional: em processamento200-299 Sucesso300-399 Redirecionamento400-499 Erro do cliente500-599 Erro no servidor
Alguns retornos comuns:200 : OK404 : Not Found
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Conexão
Conexão
Antes da versão 1.1, o servidor fechava a conexão ao enviarresposta;
Default da versão 1.1, é que o servidor �que aberto por umcurto espaço de tempo, o que melhora o desempenho demúltiplas requisições do cliente.
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Segurança
O modelo cliente-servidor adotado na Web apresenta algunsproblemas potenciais tanto no cliente quanto no servidor.No Servidor:
Através de url especí�cas, é possível acessar dados (talvezprivados) no do servidor (por exemplo, acesso a BD);Através de url especí�cas, é possível desencadear a execuçãode alguma tarefa (talvez danosa) no servidor;
No Cliente:O servidor pode enviar dados que implicam na execução detarefas, ou até acesso a dados privados na máquina cliente;
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Aspectos
Aspectos
Considere uma aplicação Web onde o cliente transmite dadospara o servidor. Para um efeito mais dramático, consideredados do cartão de crédito.
Os aspectos de segurança que devem ser observados aqui são:
Privacidade Não pode ser lido no caminho ao servidor.Integridade Não pode ser modi�cado no caminho ao servidor.
Autenticação Tanto comprador quanto vendedor devem estarcertos da identidade do outro;
Legalidade É necessário poder provar legalmente que amensagem foi enviada e recebida.
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Privacidade e Integridade
Privacidade e Integridade
Estes dois aspectos estão relacionados com o envio de dadosque passam por várias máquinas até atingir seu destino. Oobjetivo é impedir a leitura ou a alteração destes dados notrajeto.
A ferramenta básica para garantir estes aspectos é acriptogra�a, onde um lado criptografa a mensagem quesomente o outro lado é capaz de decriptografar.
Ferramenta básica: criptogra�a utilizando criptogra�a dechave pública (public-key encriptation, Di�e e Hellman, 1976).
algoritmo mais usado: RSA (Rivest, Shamir, Adleman, 1977).
sugestão de leitura: The Code Book: The Science of Secrecyfrom Ancient Egypt to Quantum Cryptography, Simon Singh;
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Autenticação
Autenticação
O ambiente cliente-servidor proporciona vários problemas paraque a identidade do cliente e do servidor sejam autenticados.
Ambiente: um servidor sem estado e vários clientes.
Problema: como identi�car o cliente.
Exemplo: aplicação onde cada cliente tem �poderes�diferentes. Exemplo: médico, enfermeira, paciente.
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Autenticação
Autenticação
Se o servidor não mantém estado (ou seja, esquece tudo o queocorreu a cada mensagem respondida), como �lembrar� quemé quem?
Solução adotada: cookies, um adendo ao protocolo HTTPonde o servidor cria um string (o cookie) e envia ao cliente.Cada mensagem do cliente deve anexar o cookie para que oservidor saiba quem é o cliente.
Forma de usar típica: guardar o cookie em uma tabelaindexada pelo cookie, e armazenar naquela entrada asinformações daquele cliente.
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Outros Problemas
Outros Problemas
Tentativas de destruição ou de inviabilizar acesso a dados emservidores:
Virus;Worms;DoS (Denial of Service);Rootkits.
Esta é uma área onde novas tentativas de �ataque� gerampesquisas de defesa. Um ciclo que não parece ter um �m embreve.
Esta disciplina não irá abordar a área de segurança.
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Ferramentas
Ferramentas básicas para programação WebFerramentas do Cliente:
XHTML / XML / SGMLJavascript / Ajax / Jquery
Ferramentas do Servidor:ServletsPHP.NETRails
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Disciplina
Objetivo Prover conhecimentos sobre as principais ferramentasde programação Web.
Método Uma aula teórica e uma prática por semana.Avaliação Trabalhos Práticos.
Bibliogra�a Livro Texto: Programming the World Wide Web,Robert Sebesta. Procurar a edição mais recente.http://www.w3schools.com/
Metaprogramming Ruby: Program Like the RubyPros, Paolo Perrotta.http:
//aprendaaprogramar.rubyonrails.com.br/
Agile Web Development with Rails, Sam Ruby.Máquina disponibilizada �litorina.c3sl.ufpr.br�
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina
Organização
Organização
Semana 1 - 2 XHTML5 / CSS3 / XML
Semana 3 - 4 Ruby
Semana 5 - 6 Javascript / Ajax / Jquery
Semana 7 Java Web Software
Semana 8 - 10 Rails
Semana 10- 15 Dúvidas
Bruno Müller Junior Departamento de Informática UFPR
Programação Web Aula 1: Introdução