SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Java NET:
Interaja com a Internet
Ricardo Terra
rterrabh [at] gmail.com
Java NET: Interaja com a Internet 1
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
CV
Nome: Ricardo Terra
Email: rterrabh [at] gmail.com
www: ricardoterra.com.br
Twitter: rterrabh
Lattes: lattes.cnpq.br/ 0162081093970868
Ph.D. (UFMG/UWaterloo),
Post-Ph.D. (INRIA/Université Lille 1)
Background
Acadêmico: UFLA (desde 2014), UFSJ (1 ano), FUMEC (3 anos), UNIPAC (1 ano), FAMINAS (3 anos)
Profissional: DBA Eng. (1 ano), Synos (2 anos), Stefanini (1 ano)
Java NET: Interaja com a Internet 2Maio, 2011
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Objetivo do Mini-curso
§  Entendendo o Funcionamento da Web
§  HTTPS
§  Entendendo File e Stream
§  API Java Net
§  Baixar o conteúdo de um recurso (página, imagem etc)
§  Submeter formulários
§  Ataque por Força Bruta
§  Desenvolvimento de Aplicações
§  MyDownload
§  MyPageChecker
3
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Entendendo o
Funcionamento da Web
Java NET: Interaja com a Internet 4
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Funcionamento da Web – HTTP e HTML
§  A maioria das conversas que ocorre na web entre clientes e
servidores são mantidas através do protocolo HTTP, que
possibilita conversas de requisição e resposta
§  O cliente envia uma requisição HTTP e o servidor retorna uma
resposta HTTP
§  Enfim, se você é um servidor web você fala HTTP
§  Portanto, uma conversação HTTP é uma sequência de
requisição/resposta
§  Isto é, o cliente pede uma coisa, o servidor responde, o cliente pede
outra coisa, o servidor responde...
5
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Funcionamento da Web
§  Requisição e resposta:
6
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Cliente e Servidor / HTTP e HTML
§  Quando um servidor responde a uma solicitação, ele geralmente
envia algum tipo de conteúdo para o browser, para que esse
possa exibí-lo
§  O formato HTML é o formato mais comum enviado como resposta
para um cliente pelo Servidor, pois esse é facilmente lido pelo
browser no cliente
§  Informação presente no content-type no cabeçalho HTTP
§  text/html!
§  text/plain!
§  application/pdf!
§  image/jpeg!
§  ... !
7
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Cliente e Servidor / HTTP e HTML
§  O HTTP é um protocolo da camada de aplicação que tem
características específicas para a web, mas ele depende de toda
a arquitetura TCP/IP para garantir que tanto a solicitação e
quanto a resposta sejam transmitidas entre o cliente e o servidor
TOPO DO TCP/IP
8
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Requisição e resposta
§  Principais elementos do fluxo de requisição:
§  método HTTP
§  endereço da página (URL) que está sendo acessada
§  parâmetros do formulário
§  Principais elementos do fluxo de resposta:
§  cabeçalho
§  código de status
§  Método HTTP
§  tipo do conteúdo (texto, imagem, HTML...)
§  conteúdo (o texto, a imagem, o HTML...)
9
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Requisição e resposta
§  Requisição HTTP
§  A primeira coisa que você encontrará é o nome do método HTTP
§  O nome do método informa ao servidor o tipo de solicitação que está
sendo feita e como o resto da mensagem será formatada.
§  O protocolo HTTP possui diversos métodos, mas usaremos e
aprenderemos os mais comuns: GET e POST
10
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Requisição e resposta
§  Método GET
§  É o método mais simples do HTTP e seu principal trabalho é pedir
um recurso
§  Pode ser qualquer tipo de recurso: uma página, uma imagem, um PDF,
etc
§  O caminho até o recurso e quaisquer parâmetros adicionados à
URL serão incluídos na própria barra de endereços
§  Podemos usar o GET para formulários, porém com desvantagens:
§  O total de caracteres do GET é limitado
§  Os dados que você envia utilizando HTTP GET são anexados à URL,
portanto, seja o que for que você estiver transmitindo, ficará exposto
11
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Requisição e resposta
§  Método POST
§  É um método mais poderoso. É um GET++. Com o POST, você
pode solicitar algo e, ao mesmo tempo, enviar os dados de um
formulário para o servidor
§  Os dados a serem enviados ao servidor estão localizados na carga
útil (payload) da mensagem e podem ser bem extensos
Pacote IPv4
§  Por isto, o POST é considerado mais seguro que o GET
12
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Requisição e resposta
§  Enfim, para acesso a recursos utiliza-se GET e aplicações que
utilizam formulários utiliza-se POST
13
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Requisição e resposta
§  Resposta HTTP
§  uma resposta HTTP é composta de um cabeçalho (header) e o
corpo
§  o cabeçalho informa ao browser o método que está sendo utilizado, se
a solicitação obteve êxito (código) e o tipo de conteúdo está incluído no
corpo
§  corpo possui o conteúdo (por exemplo, HTML) que o browser exibirá
§  o código pode ser:
§  1xx: Informativa: requisição recebida, processo em continuidade…
§  2xx: Sucesso: a ação foi recebida, entendida e aceita com sucesso
§  3xx: Redirecionamento: ação futura ainda deve ser tomada para
completar a requisição
§  4xx: Erro no cliente: requisição contém sintaxe incorreta ou não pode
ser resolvida
§  5xx: Erro no servidor: O servidor falhou ao responder uma aparente
requisição válida
14
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 15Java NET: Interaja com a Internet
HTTPS
§  E o HTTPS? Se utilizarmos, nossa aplicação é segura?!
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Entendendo File e Stream
Java NET: Interaja com a Internet 16
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
API Java Net
§  Antes de entrarmos na API Java Net, os seguintes pré-requisitos
devem ser abordados:
§  Classe File
§  Streams
§  Assim, esta seção apresenta uma visão geral desses assuntos
17
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Classe java.io.File!
§  Classe responsável em realizar métodos em arquivos físicos.
Para se construir um objeto do tipo File, deve saber o nome
completo do arquivo. Caso o arquivo esteja na raiz do
workspace pode apenas passar o nome do arquivo
§  Caso se passe o nome de um arquivo que não existe, este é
criado na primeira necessidade
§  Exemplo:
§  new File("C:pastameuArquivo.txt")!
§  new File("meuArquivoNoWorkspace.txt")!
§  new File(”/dev/etc/xpto.txt”)!
§  new File(”/bin")!
Java NET: Interaja com a Internet 18
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Classe java.io.File
§  Trabalhando com um arquivo:
File fileTexto = new File("arquivoTexto.txt");!
!System.out.println("Nome do arquivo: " + fileTexto.getName());!
!System.out.println("O arquivo existe? " + fileTexto.exists());!
!System.out.println(”Diretório? " + fileTexto.isDirectory());!
!if (fileTexto.isFile()) {!
! !System.out.println("É um arquivo do diretório: " !
! ! !+ fileTexto.getAbsolutePath());!
!}!
!System.out.println("Posso ler? " + fileTexto.canRead());!
! S y s t e m . o u t . p r i n t l n ( " P o s s o e s c r e v e r ? " +
fileTexto.canWrite());!
§  Enfim, classe File não manipula arquivos...
§  Então, quem manipula?! Streams...
!
Java NET: Interaja com a Internet 19
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Streams
§  Java fornece uma interface consistente ao programador,
independente do dispositivo real que é acessado
§  Essa abstração é chamada stream e o dispositivo real
pode ser:
§  arquivo (file)
§  impressora
§  socket
§  Internet
§  …
§  Em outras palavras, você trabalha com qualquer
dispositivo do mesmo modo (com certas limitações)
Java NET: Interaja com a Internet 20
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Streams
§  Basicamente, existem dois principais tipos de streams:
§  stream de texto
§  Manipula caracteres
§  Leitura: Reader!
§  Escrita: Writer!
§  stream binário
§  Manipula bytes
§  Leitura: InputStream!
§  Escrita: OutputStream
Java NET: Interaja com a Internet 21
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Streams!
Java NET: Interaja com a Internet 22
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Streams
§  Devido ao foco do curso, não colocarei exemplos de uso
§  O conhecimento necessário será absorvido durante as
explicações da próxima seção (on-the-fly)
Java NET: Interaja com a Internet 23
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
API Java Net
Java NET: Interaja com a Internet 24
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
API Java Net
§  API completa desenvolvida pela Oracle / Sun para acessos
à Internet
§  Com essa API podemos:
§  Buscar recursos web (página HTML, por exemplo)
§  Submeter formulários
§  Nos próximos slides veremos alguns exemplos básicos da
utilização dessa API
Java NET: Interaja com a Internet 25
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
API Java Net
§  Acessando um site
§  Lendo do InputStream da URLConnection!
§  Projeto JavaNet: com.terra.exemplos.RecursoHTML!
§  O conteúdo retornado é uma HTML, isto é, texto!
§  Logo, qual o papel de um browser?
Java NET: Interaja com a Internet 26
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
API Java Net
§  Só com o que já sabemos, podemos baixar qualquer
conteúdo e salvá-lo em disco (espécie de um programa de
download)
§  Baixando um recurso (imagem ou pdf, por exemplo):
§  Lendo do InputStream da URLConnection
§  Escrevendo no OutputStream de um arquivo!
§  Projeto JavaNet: com.terra.exemplos.SalvarRecurso!
Java NET: Interaja com a Internet 27
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
API Java Net
§  Submetendo um formulário
§  Descobrir url do formulário e nome dos seus campos
§  Antes da submissão
§  Uso de URLEncoder para passagem de parâmetros
§  Escrita no OutputStream da URLConnection!
§  Depois da submissão
§  Lendo do InputStream da URLConnection!
§  Projeto JavaNet: com.terra.exemplos.Formulario!
Java NET: Interaja com a Internet 28
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Ataque por Força Bruta
Java NET: Interaja com a Internet 29
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Força Bruta
§  Tentar todas as possibilidades...
30
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Força Bruta
§  Exemplo Motivador: SINEF
§  Técnicas para evitar
§  Limite de Tentativas
§  Você utilizou 5 tentativas. Usuário bloqueado.
§  Tempo de Ociosidade
§  Você utilizou 5 tentativas. Usuário bloqueado por 30 minutos.!
§  Imagem
31
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Força Bruta
§  Como fazer?
§  Descobrir o formulário e o nome do seus campos
§  Bolar um algoritmo para gerar todas as combinações
§  Ir tentando…
§  Tome cuidado que é possível descobrí-lo pelo seu IP
§  Não use para o mal:
§  www.peladeiro.com.br
§  qualquer outro... deixo com vocês...
Java NET: Interaja com a Internet 32
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Desenvolvimento de Aplicações
Java NET: Interaja com a Internet 33
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Desenvolvimento de Aplicações
§  Acho que já foi possível notar que o mais legal da API
Java Net não é acessar à Internet, mas sim, as aplicações
que pode gerar
§  Nesta seção, faremos a criação de dois aplicativos:
§  MyDownload
§  Programa para fazer download pela Internet
§  MyPageChecker
§  Programa para verificar se houve alterações em
uma determinada página
Java NET: Interaja com a Internet 34
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Desenvolvimento de Aplicações
§  MyDownload
§  Programa para fazer download pela Internet
§  Algo como:
§  Pacotes:
§  com.terra.mydownload.{thread,gui,main}!
Java NET: Interaja com a Internet 35
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Desenvolvimento de Aplicações
§  MyPageChecker
§  Programa para verificar se houve alterações em uma
determinada página
§  Algo como:
§  Pacotes:
§  com.terra.mypagechecker.{thread,gui,main}!
Java NET: Interaja com a Internet 36
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011
Considerações Finais
Java NET: Interaja com a Internet 37
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Considerações Finais
§  Use para o BEM!!!
38
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Dúvidas?
???
39
Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet
Ricardo Terra
rterrabh [at] gmail.com
Apresentação e projeto Java disponíveis em:
www.ricardoterra.com.br/palestras
Principais referências bibliográficas:
HORSTMANN, C; CORNELL, G. Core Java: Volume 1 – Fundamentos.
8 ed. São Paulo: Pearson, 2010.
DEITEL, P; DEITEL, H. Java: Como Programar. 8 ed. São Paulo:
Pearson, 2010.
Obrigado!
40

Contenu connexe

Tendances

TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...Rogério Moraes de Carvalho
 
Palestra: LINQ via C#
Palestra: LINQ via C# Palestra: LINQ via C#
Palestra: LINQ via C# Thiago Vidal
 
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...Rogério Moraes de Carvalho
 
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...Rogério Moraes de Carvalho
 
Aula c++ estruturas de dados
Aula c++   estruturas de dadosAula c++   estruturas de dados
Aula c++ estruturas de dadosJean Martina
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcionalPéricles Miranda
 
Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Thyago Maia
 
Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1Thyago Maia
 
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalGustavo Coutinho
 
Introdução à Linguagem de Programação GO
Introdução à Linguagem de Programação GOIntrodução à Linguagem de Programação GO
Introdução à Linguagem de Programação GOJose Augusto Cintra
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Valmon Gaudencio
 

Tendances (20)

TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
 
Palestra: LINQ via C#
Palestra: LINQ via C# Palestra: LINQ via C#
Palestra: LINQ via C#
 
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
 
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
 
Aula c++ estruturas de dados
Aula c++   estruturas de dadosAula c++   estruturas de dados
Aula c++ estruturas de dados
 
Educação e certificação na Plataforma .NET
Educação e certificação na Plataforma .NETEducação e certificação na Plataforma .NET
Educação e certificação na Plataforma .NET
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
 
Poo frank
Poo frankPoo frank
Poo frank
 
Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1
 
Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1
 
Introdução ao C#
Introdução ao C#Introdução ao C#
Introdução ao C#
 
Linguagem de programação C# 4 e 5
Linguagem de programação C# 4 e 5Linguagem de programação C# 4 e 5
Linguagem de programação C# 4 e 5
 
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
 
Introdução à Linguagem de Programação GO
Introdução à Linguagem de Programação GOIntrodução à Linguagem de Programação GO
Introdução à Linguagem de Programação GO
 
Paradigma funcional
Paradigma funcionalParadigma funcional
Paradigma funcional
 
Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1
 
Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2
 
Linguagem de programação Java 6, 7 e 8
Linguagem de programação Java 6, 7 e 8Linguagem de programação Java 6, 7 e 8
Linguagem de programação Java 6, 7 e 8
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Object pascal
Object pascalObject pascal
Object pascal
 

En vedette

Segurança da Internet
Segurança da InternetSegurança da Internet
Segurança da InternetRicardo Terra
 
Software Architecture
Software ArchitectureSoftware Architecture
Software ArchitectureRicardo Terra
 
Matemática Computacional
Matemática ComputacionalMatemática Computacional
Matemática ComputacionalRicardo Terra
 
English---and LaTeX---Writing Tips
English---and LaTeX---Writing TipsEnglish---and LaTeX---Writing Tips
English---and LaTeX---Writing TipsRicardo Terra
 
Which Programming Language is the best one?
Which Programming Language is the best one?Which Programming Language is the best one?
Which Programming Language is the best one?Ricardo Terra
 
Casamento de Padrões
Casamento de PadrõesCasamento de Padrões
Casamento de PadrõesRicardo Terra
 
Engenharia de Software: POC
Engenharia de Software: POCEngenharia de Software: POC
Engenharia de Software: POCRicardo Terra
 
Apostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTApostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTRicardo Terra
 
Análise Estática de Código: Aplicações
Análise Estática de Código: AplicaçõesAnálise Estática de Código: Aplicações
Análise Estática de Código: AplicaçõesRicardo Terra
 
Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Ricardo Terra
 
Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Ricardo Terra
 
Apostila Tecnologia da Informação (TI)
Apostila Tecnologia da Informação (TI)Apostila Tecnologia da Informação (TI)
Apostila Tecnologia da Informação (TI)Ricardo Terra
 

En vedette (16)

Segurança da Internet
Segurança da InternetSegurança da Internet
Segurança da Internet
 
Aula Zero
Aula ZeroAula Zero
Aula Zero
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Matemática Computacional
Matemática ComputacionalMatemática Computacional
Matemática Computacional
 
English---and LaTeX---Writing Tips
English---and LaTeX---Writing TipsEnglish---and LaTeX---Writing Tips
English---and LaTeX---Writing Tips
 
Refactoring
RefactoringRefactoring
Refactoring
 
Which Programming Language is the best one?
Which Programming Language is the best one?Which Programming Language is the best one?
Which Programming Language is the best one?
 
Casamento de Padrões
Casamento de PadrõesCasamento de Padrões
Casamento de Padrões
 
Engenharia de Software: POC
Engenharia de Software: POCEngenharia de Software: POC
Engenharia de Software: POC
 
Apostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTApostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLT
 
Apostila C ANSI
Apostila C ANSIApostila C ANSI
Apostila C ANSI
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Análise Estática de Código: Aplicações
Análise Estática de Código: AplicaçõesAnálise Estática de Código: Aplicações
Análise Estática de Código: Aplicações
 
Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)
 
Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)
 
Apostila Tecnologia da Informação (TI)
Apostila Tecnologia da Informação (TI)Apostila Tecnologia da Informação (TI)
Apostila Tecnologia da Informação (TI)
 

Similaire à Java Net: Interagindo com a Internet

Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
Aula 01 - Programação Web - PHP
Aula 01  - Programação Web - PHPAula 01  - Programação Web - PHP
Aula 01 - Programação Web - PHPDalton Martins
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONMario Guedes
 
Introdução de web
Introdução de webIntrodução de web
Introdução de webSedu
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSPledsifes
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTMario Guedes
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTArrayOf.io
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Helder da Rocha
 
PHP e Ajax com XAJAX
PHP e Ajax com XAJAXPHP e Ajax com XAJAX
PHP e Ajax com XAJAXRafael Dohms
 
Html E Websemantica Trabalho
Html E Websemantica TrabalhoHtml E Websemantica Trabalho
Html E Websemantica TrabalhoAdagenor Ribeiro
 
24 Horas de PASS - File table, full text search e semantic search
24 Horas de PASS - File table, full text search e semantic search24 Horas de PASS - File table, full text search e semantic search
24 Horas de PASS - File table, full text search e semantic searchMarcos Freccia
 

Similaire à Java Net: Interagindo com a Internet (20)

REST and JEE
REST and JEEREST and JEE
REST and JEE
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
Aula 01 - Programação Web - PHP
Aula 01  - Programação Web - PHPAula 01  - Programação Web - PHP
Aula 01 - Programação Web - PHP
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSON
 
Introdução de web
Introdução de webIntrodução de web
Introdução de web
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o REST
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o REST
 
8159540 Tutorial De Ajax
8159540 Tutorial De Ajax8159540 Tutorial De Ajax
8159540 Tutorial De Ajax
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
HTML5
HTML5HTML5
HTML5
 
servlet-requisicoes
servlet-requisicoesservlet-requisicoes
servlet-requisicoes
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)
 
Professor rogerio-apostila
Professor rogerio-apostilaProfessor rogerio-apostila
Professor rogerio-apostila
 
PHP e Ajax com XAJAX
PHP e Ajax com XAJAXPHP e Ajax com XAJAX
PHP e Ajax com XAJAX
 
Encet 2008-ajax java
Encet 2008-ajax javaEncet 2008-ajax java
Encet 2008-ajax java
 
Html E Websemantica Trabalho
Html E Websemantica TrabalhoHtml E Websemantica Trabalho
Html E Websemantica Trabalho
 
24 Horas de PASS - File table, full text search e semantic search
24 Horas de PASS - File table, full text search e semantic search24 Horas de PASS - File table, full text search e semantic search
24 Horas de PASS - File table, full text search e semantic search
 
o que é ajax
o que é ajaxo que é ajax
o que é ajax
 
A Web é uma API
A Web é uma APIA Web é uma API
A Web é uma API
 

Dernier

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 

Dernier (20)

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 

Java Net: Interagindo com a Internet

  • 1. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Java NET: Interaja com a Internet Ricardo Terra rterrabh [at] gmail.com Java NET: Interaja com a Internet 1
  • 2. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 CV Nome: Ricardo Terra Email: rterrabh [at] gmail.com www: ricardoterra.com.br Twitter: rterrabh Lattes: lattes.cnpq.br/ 0162081093970868 Ph.D. (UFMG/UWaterloo), Post-Ph.D. (INRIA/Université Lille 1) Background Acadêmico: UFLA (desde 2014), UFSJ (1 ano), FUMEC (3 anos), UNIPAC (1 ano), FAMINAS (3 anos) Profissional: DBA Eng. (1 ano), Synos (2 anos), Stefanini (1 ano) Java NET: Interaja com a Internet 2Maio, 2011
  • 3. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Objetivo do Mini-curso §  Entendendo o Funcionamento da Web §  HTTPS §  Entendendo File e Stream §  API Java Net §  Baixar o conteúdo de um recurso (página, imagem etc) §  Submeter formulários §  Ataque por Força Bruta §  Desenvolvimento de Aplicações §  MyDownload §  MyPageChecker 3
  • 4. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Entendendo o Funcionamento da Web Java NET: Interaja com a Internet 4
  • 5. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Funcionamento da Web – HTTP e HTML §  A maioria das conversas que ocorre na web entre clientes e servidores são mantidas através do protocolo HTTP, que possibilita conversas de requisição e resposta §  O cliente envia uma requisição HTTP e o servidor retorna uma resposta HTTP §  Enfim, se você é um servidor web você fala HTTP §  Portanto, uma conversação HTTP é uma sequência de requisição/resposta §  Isto é, o cliente pede uma coisa, o servidor responde, o cliente pede outra coisa, o servidor responde... 5
  • 6. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Funcionamento da Web §  Requisição e resposta: 6
  • 7. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Cliente e Servidor / HTTP e HTML §  Quando um servidor responde a uma solicitação, ele geralmente envia algum tipo de conteúdo para o browser, para que esse possa exibí-lo §  O formato HTML é o formato mais comum enviado como resposta para um cliente pelo Servidor, pois esse é facilmente lido pelo browser no cliente §  Informação presente no content-type no cabeçalho HTTP §  text/html! §  text/plain! §  application/pdf! §  image/jpeg! §  ... ! 7
  • 8. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Cliente e Servidor / HTTP e HTML §  O HTTP é um protocolo da camada de aplicação que tem características específicas para a web, mas ele depende de toda a arquitetura TCP/IP para garantir que tanto a solicitação e quanto a resposta sejam transmitidas entre o cliente e o servidor TOPO DO TCP/IP 8
  • 9. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Requisição e resposta §  Principais elementos do fluxo de requisição: §  método HTTP §  endereço da página (URL) que está sendo acessada §  parâmetros do formulário §  Principais elementos do fluxo de resposta: §  cabeçalho §  código de status §  Método HTTP §  tipo do conteúdo (texto, imagem, HTML...) §  conteúdo (o texto, a imagem, o HTML...) 9
  • 10. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Requisição e resposta §  Requisição HTTP §  A primeira coisa que você encontrará é o nome do método HTTP §  O nome do método informa ao servidor o tipo de solicitação que está sendo feita e como o resto da mensagem será formatada. §  O protocolo HTTP possui diversos métodos, mas usaremos e aprenderemos os mais comuns: GET e POST 10
  • 11. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Requisição e resposta §  Método GET §  É o método mais simples do HTTP e seu principal trabalho é pedir um recurso §  Pode ser qualquer tipo de recurso: uma página, uma imagem, um PDF, etc §  O caminho até o recurso e quaisquer parâmetros adicionados à URL serão incluídos na própria barra de endereços §  Podemos usar o GET para formulários, porém com desvantagens: §  O total de caracteres do GET é limitado §  Os dados que você envia utilizando HTTP GET são anexados à URL, portanto, seja o que for que você estiver transmitindo, ficará exposto 11
  • 12. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Requisição e resposta §  Método POST §  É um método mais poderoso. É um GET++. Com o POST, você pode solicitar algo e, ao mesmo tempo, enviar os dados de um formulário para o servidor §  Os dados a serem enviados ao servidor estão localizados na carga útil (payload) da mensagem e podem ser bem extensos Pacote IPv4 §  Por isto, o POST é considerado mais seguro que o GET 12
  • 13. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Requisição e resposta §  Enfim, para acesso a recursos utiliza-se GET e aplicações que utilizam formulários utiliza-se POST 13
  • 14. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Requisição e resposta §  Resposta HTTP §  uma resposta HTTP é composta de um cabeçalho (header) e o corpo §  o cabeçalho informa ao browser o método que está sendo utilizado, se a solicitação obteve êxito (código) e o tipo de conteúdo está incluído no corpo §  corpo possui o conteúdo (por exemplo, HTML) que o browser exibirá §  o código pode ser: §  1xx: Informativa: requisição recebida, processo em continuidade… §  2xx: Sucesso: a ação foi recebida, entendida e aceita com sucesso §  3xx: Redirecionamento: ação futura ainda deve ser tomada para completar a requisição §  4xx: Erro no cliente: requisição contém sintaxe incorreta ou não pode ser resolvida §  5xx: Erro no servidor: O servidor falhou ao responder uma aparente requisição válida 14
  • 15. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 15Java NET: Interaja com a Internet HTTPS §  E o HTTPS? Se utilizarmos, nossa aplicação é segura?!
  • 16. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Entendendo File e Stream Java NET: Interaja com a Internet 16
  • 17. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet API Java Net §  Antes de entrarmos na API Java Net, os seguintes pré-requisitos devem ser abordados: §  Classe File §  Streams §  Assim, esta seção apresenta uma visão geral desses assuntos 17
  • 18. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Classe java.io.File! §  Classe responsável em realizar métodos em arquivos físicos. Para se construir um objeto do tipo File, deve saber o nome completo do arquivo. Caso o arquivo esteja na raiz do workspace pode apenas passar o nome do arquivo §  Caso se passe o nome de um arquivo que não existe, este é criado na primeira necessidade §  Exemplo: §  new File("C:pastameuArquivo.txt")! §  new File("meuArquivoNoWorkspace.txt")! §  new File(”/dev/etc/xpto.txt”)! §  new File(”/bin")! Java NET: Interaja com a Internet 18
  • 19. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Classe java.io.File §  Trabalhando com um arquivo: File fileTexto = new File("arquivoTexto.txt");! !System.out.println("Nome do arquivo: " + fileTexto.getName());! !System.out.println("O arquivo existe? " + fileTexto.exists());! !System.out.println(”Diretório? " + fileTexto.isDirectory());! !if (fileTexto.isFile()) {! ! !System.out.println("É um arquivo do diretório: " ! ! ! !+ fileTexto.getAbsolutePath());! !}! !System.out.println("Posso ler? " + fileTexto.canRead());! ! S y s t e m . o u t . p r i n t l n ( " P o s s o e s c r e v e r ? " + fileTexto.canWrite());! §  Enfim, classe File não manipula arquivos... §  Então, quem manipula?! Streams... ! Java NET: Interaja com a Internet 19
  • 20. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Streams §  Java fornece uma interface consistente ao programador, independente do dispositivo real que é acessado §  Essa abstração é chamada stream e o dispositivo real pode ser: §  arquivo (file) §  impressora §  socket §  Internet §  … §  Em outras palavras, você trabalha com qualquer dispositivo do mesmo modo (com certas limitações) Java NET: Interaja com a Internet 20
  • 21. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Streams §  Basicamente, existem dois principais tipos de streams: §  stream de texto §  Manipula caracteres §  Leitura: Reader! §  Escrita: Writer! §  stream binário §  Manipula bytes §  Leitura: InputStream! §  Escrita: OutputStream Java NET: Interaja com a Internet 21
  • 22. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Streams! Java NET: Interaja com a Internet 22
  • 23. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Streams §  Devido ao foco do curso, não colocarei exemplos de uso §  O conhecimento necessário será absorvido durante as explicações da próxima seção (on-the-fly) Java NET: Interaja com a Internet 23
  • 24. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 API Java Net Java NET: Interaja com a Internet 24
  • 25. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 API Java Net §  API completa desenvolvida pela Oracle / Sun para acessos à Internet §  Com essa API podemos: §  Buscar recursos web (página HTML, por exemplo) §  Submeter formulários §  Nos próximos slides veremos alguns exemplos básicos da utilização dessa API Java NET: Interaja com a Internet 25
  • 26. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 API Java Net §  Acessando um site §  Lendo do InputStream da URLConnection! §  Projeto JavaNet: com.terra.exemplos.RecursoHTML! §  O conteúdo retornado é uma HTML, isto é, texto! §  Logo, qual o papel de um browser? Java NET: Interaja com a Internet 26
  • 27. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 API Java Net §  Só com o que já sabemos, podemos baixar qualquer conteúdo e salvá-lo em disco (espécie de um programa de download) §  Baixando um recurso (imagem ou pdf, por exemplo): §  Lendo do InputStream da URLConnection §  Escrevendo no OutputStream de um arquivo! §  Projeto JavaNet: com.terra.exemplos.SalvarRecurso! Java NET: Interaja com a Internet 27
  • 28. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 API Java Net §  Submetendo um formulário §  Descobrir url do formulário e nome dos seus campos §  Antes da submissão §  Uso de URLEncoder para passagem de parâmetros §  Escrita no OutputStream da URLConnection! §  Depois da submissão §  Lendo do InputStream da URLConnection! §  Projeto JavaNet: com.terra.exemplos.Formulario! Java NET: Interaja com a Internet 28
  • 29. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Ataque por Força Bruta Java NET: Interaja com a Internet 29
  • 30. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Força Bruta §  Tentar todas as possibilidades... 30
  • 31. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Força Bruta §  Exemplo Motivador: SINEF §  Técnicas para evitar §  Limite de Tentativas §  Você utilizou 5 tentativas. Usuário bloqueado. §  Tempo de Ociosidade §  Você utilizou 5 tentativas. Usuário bloqueado por 30 minutos.! §  Imagem 31
  • 32. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Força Bruta §  Como fazer? §  Descobrir o formulário e o nome do seus campos §  Bolar um algoritmo para gerar todas as combinações §  Ir tentando… §  Tome cuidado que é possível descobrí-lo pelo seu IP §  Não use para o mal: §  www.peladeiro.com.br §  qualquer outro... deixo com vocês... Java NET: Interaja com a Internet 32
  • 33. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Desenvolvimento de Aplicações Java NET: Interaja com a Internet 33
  • 34. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Desenvolvimento de Aplicações §  Acho que já foi possível notar que o mais legal da API Java Net não é acessar à Internet, mas sim, as aplicações que pode gerar §  Nesta seção, faremos a criação de dois aplicativos: §  MyDownload §  Programa para fazer download pela Internet §  MyPageChecker §  Programa para verificar se houve alterações em uma determinada página Java NET: Interaja com a Internet 34
  • 35. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Desenvolvimento de Aplicações §  MyDownload §  Programa para fazer download pela Internet §  Algo como: §  Pacotes: §  com.terra.mydownload.{thread,gui,main}! Java NET: Interaja com a Internet 35
  • 36. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Desenvolvimento de Aplicações §  MyPageChecker §  Programa para verificar se houve alterações em uma determinada página §  Algo como: §  Pacotes: §  com.terra.mypagechecker.{thread,gui,main}! Java NET: Interaja com a Internet 36
  • 37. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011 Considerações Finais Java NET: Interaja com a Internet 37
  • 38. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Considerações Finais §  Use para o BEM!!! 38
  • 39. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Dúvidas? ??? 39
  • 40. Ricardo Terra (rterrabh [at] gmail.com) Maio, 2011Java NET: Interaja com a Internet Ricardo Terra rterrabh [at] gmail.com Apresentação e projeto Java disponíveis em: www.ricardoterra.com.br/palestras Principais referências bibliográficas: HORSTMANN, C; CORNELL, G. Core Java: Volume 1 – Fundamentos. 8 ed. São Paulo: Pearson, 2010. DEITEL, P; DEITEL, H. Java: Como Programar. 8 ed. São Paulo: Pearson, 2010. Obrigado! 40