Top Banner
27

Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programação

Nov 12, 2018

Download

Documents

letuong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programação

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

Page 2: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 3: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 4: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 5: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 6: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 7: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 8: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 9: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 10: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 11: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 12: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 13: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 14: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 15: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 16: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 17: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 18: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 19: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 20: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 21: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 22: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 23: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 24: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 25: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 26: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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

Page 27: Programação Web Aula 1: Introdução · Aula 1: Introdução Bruno Müller Junior Departamento de Informática UFPR Bruno Müller JuniorDepartamento de Informática UFPR Programaçã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