0% acharam este documento útil (0 voto)
61 visualizações27 páginas

Programação Web Aula 1: Introdução: Bruno Müller Junior

Este documento fornece um resumo introdutório sobre programação web, cobrindo: 1) O histórico da internet e da world wide web; 2) O modelo cliente-servidor da web e como navegadores e servidores funcionam; 3) Uma introdução ao protocolo HTTP, incluindo requests e responses.

Enviado por

Timo Gandalo
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
61 visualizações27 páginas

Programação Web Aula 1: Introdução: Bruno Müller Junior

Este documento fornece um resumo introdutório sobre programação web, cobrindo: 1) O histórico da internet e da world wide web; 2) O modelo cliente-servidor da web e como navegadores e servidores funcionam; 3) Uma introdução ao protocolo HTTP, incluindo requests e responses.

Enviado por

Timo Gandalo
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 27

Histórico Modelo HTTP Segurança Ferramentas Disciplina

Programação Web
Aula 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órico
2 Modelo
Navegadores (Cliente)
Servidores
Funcionamento de Servidores
Características de Servidores
URL
3 HTTP
Funcionamento
Request Phase
Exemplo de request com HEAD
Exemplo 2
Response Phase
Exemplo de Resposta de GET
Linha de estado
Conexão
4 Segurança
Aspectos
Bruno Müller Junior Departamento de Informática UFPR
Privacidade e Integridade
Programação Web Aula 1: Introdução
Histórico Modelo HTTP Segurança Ferramentas Disciplina

Histórico

Internet
1960 - Arpanet
Deniçã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 Web


1989 - Protocolo desenvolvido no CERN (Suíça) pelo grupo de
Tim Berners-Lee.
Busca de arquivos formatados como hipertextos, que são
textos 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 casos
implica em um considerável custo computacional;
As tarefas do servidor normalmente requerem pouco poder
computacional. Com esta divisão de tarefas, um mesmo
servidor pode responder a muitos clientes.

Figura
Bruno Müller Junior : www3.ntu.edu.sg/home/ehchua/programming/webprogramming/http_basics.html
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 do


usuá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 solicitados


pelos 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 (por
exemplo, Apache na porta 80).

Ao chegarem msgs para aquela porta, o S.O. as encaminha ao


servidor.

Para cada mensagem recebida, o servidor:


analisa o comando HTTP enviado (e dados se houverem);
executa os comandos especicados, 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 do
servidor) de onde o servidor web irá retornar a maior parte de
suas páginas web. No apache, /var/www/
server root : diretório onde estão os arquivos do servidor assim
como 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 outras
má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-address


scheme é o protocolo de comunicação. Exemplos: http, ftp,
gopher, file, mailto, news.
Exemplos:
http://fully-qualied-name/path-to-document
le://path-to-document
Caracteres especiais:
Não pode conter espaços. Para emular o espaço, usa-se o
símbolo %XX, sendo XX o valor hexadecimal (20 para espaço).
Exemplo: San%20Jose = San Jose.
Para tratamento de outros símbolos, veja
http://www.w3.org/Addressing/URL/URI_Overview.html
No protocolo HTTP, quando o arquivo não é especicado, o
servidor 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 Protocol


Versão atual: 1.1, denido 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 pelo


menos 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ção
GET Retorna o conteúdo do documento especicado
HEAD Retorna o cabeçalho do documento especado
POST Executa o documento especicado, usando dados contidos
PUT Substitui documento especicado com os dados contidos
DELETE Apaga o documento especicado

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 programa


telnet. Exemplo 1: HEAD:
> telnet condor http
Trying 10.254.251.162...
Connected to condor.c3local.
Escape character is '^]'.
HEAD /index.html HTTP/1.1
HTTP/1.1 200 OK
Date: Mon, 22 Jul 2013 18:19:55 GMT
Server: Apache/2.2.22 (Ubuntu)
Last-Modified: Wed, 24 Apr 2013 23:40:52 GMT
ETag: "b2a79-b1-4db23d5136900"
Accept-Ranges: bytes
Content-Length: 177
Vary: Accept-Encoding
Connection: close
Content-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 http
Trying 10.254.251.162...
Connected to condor.c3local.
Escape character is '^]'.
GET
HTTP/1.1 200 OK
Date: Mon, 22 Jul 2013 18:18:12 GMT
Server: Apache/2.2.22 (Ubuntu)
Last-Modified: Wed, 24 Apr 2013 23:40:52 GMT
ETag: "b2a79-b1-4db23d5136900"
Accept-Ranges: bytes
Content-Length: 177
Vary: Accept-Encoding
Connection: close
Content-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 o


cliente;

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 http


Trying 10.254.251.162...
Connected to condor.c3local.
Escape character is '^]'.
GET
HTTP/1.1 200 OK
Date: Mon, 22 Jul 2013 18:18:12 GMT
Server: Apache/2.2.22 (Ubuntu)
Last-Modified: Wed, 24 Apr 2013 23:40:52 GMT
ETag: "b2a79-b1-4db23d5136900"
Accept-Ranges: bytes
Content-Length: 177
Vary: Accept-Encoding
Connection: close
Content-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 processamento
200-299 Sucesso
300-399 Redirecionamento
400-499 Erro do cliente
500-599 Erro no servidor

Alguns retornos comuns:


200 : OK
404 : 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 enviar


resposta;

Default da versão 1.1, é que o servidor que aberto por um


curto espaço de tempo, o que melhora o desempenho de
mú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 alguns


problemas potenciais tanto no cliente quanto no servidor.

No Servidor:
Através de url especícas, é possível acessar dados (talvez
privados) no do servidor (por exemplo, acesso a BD);
Através de url especícas, é possível desencadear a execução
de alguma tarefa (talvez danosa) no servidor;

No Cliente:
O servidor pode enviar dados que implicam na execução de
tarefas, 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 dados


para o servidor. Para um efeito mais dramático, considere
dados 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 modicado no caminho ao servidor.
Autenticação Tanto comprador quanto vendedor devem estar
certos da identidade do outro;
Legalidade É necessário poder provar legalmente que a
mensagem 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 dados


que passam por várias máquinas até atingir seu destino. O
objetivo é impedir a leitura ou a alteração destes dados no
trajeto.

A ferramenta básica para garantir estes aspectos é a


criptograa, onde um lado criptografa a mensagem que
somente o outro lado é capaz de decriptografar.

Ferramenta básica: criptograa utilizando criptograa de


chave pública (public-key encriptation, Die e Hellman, 1976).

algoritmo mais usado: RSA (Rivest, Shamir, Adleman, 1977).

sugestão de leitura: The Code Book: The Science of Secrecy


from 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 para


que a identidade do cliente e do servidor sejam autenticados.

Ambiente: um servidor sem estado e vários clientes.

Problema: como identicar 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 que


ocorreu a cada mensagem respondida), como lembrar quem
é quem?

Solução adotada: cookies, um adendo ao protocolo HTTP


onde o servidor cria um string (o cookie) e envia ao cliente.
Cada mensagem do cliente deve anexar o cookie para que o
servidor saiba quem é o cliente.

Forma de usar típica: guardar o cookie em uma tabela


indexada pelo cookie, e armazenar naquela entrada as
informaçõ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 em


servidores:
Virus;
Worms;
DoS (Denial of Service);
Rootkits.

Esta é uma área onde novas tentativas de ataque geram


pesquisas de defesa. Um ciclo que não parece ter um m em
breve.

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 Web

Ferramentas do Cliente:
XHTML / XML / SGML
Javascript / Ajax / Jquery

Ferramentas do Servidor:
Servlets
PHP
.NET
Rails

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 ferramentas


de programação Web.
Método Uma aula teórica e uma prática por semana.
Avaliação Trabalhos Práticos.
Bibliograa Livro Texto: Programming the World Wide Web,
Robert Sebesta. Procurar a edição mais recente.
http://www.w3schools.com/
Metaprogramming Ruby: Program Like the Ruby
Pros, 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

Você também pode gostar