SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Destaque

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
 

Destaque (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)
 

Semelhante a 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
 

Semelhante a 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
 

Último

História do Brasil e Geral - Cláudio Vicentino
História do Brasil e Geral - Cláudio VicentinoHistória do Brasil e Geral - Cláudio Vicentino
História do Brasil e Geral - Cláudio VicentinoThayaneLopes10
 
Junho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaJunho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaComando Resgatai
 
Poema - Reciclar é preciso
Poema            -        Reciclar é precisoPoema            -        Reciclar é preciso
Poema - Reciclar é precisoMary Alvarenga
 
Atividade com a música Xote da Alegria - Falamansa
Atividade com a música Xote  da  Alegria    -   FalamansaAtividade com a música Xote  da  Alegria    -   Falamansa
Atividade com a música Xote da Alegria - FalamansaMary Alvarenga
 
Apresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao AssédioApresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao Assédioifbauab
 
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humano
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humanoSlide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humano
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humanoCoachClaumerson
 
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfProjeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfBibliotecas Infante D. Henrique
 
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdfedjailmax
 
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdfTesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdfEditora
 
Evolução - Teorias evolucionistas - Darwin e Lamarck
Evolução - Teorias evolucionistas - Darwin e LamarckEvolução - Teorias evolucionistas - Darwin e Lamarck
Evolução - Teorias evolucionistas - Darwin e Lamarckluanakranz
 
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...IsabelPereira2010
 
Apresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoApresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoPedroFerreira53928
 
Evangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfEvangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfPastor Robson Colaço
 
Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessRodrigoGonzlez461291
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfrarakey779
 
Recurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorRecurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorCasa Ciências
 
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básicoPowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básicoPereira801
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosbiancaborges0906
 
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdfOFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdfAndriaNascimento27
 
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfrarakey779
 

Último (20)

História do Brasil e Geral - Cláudio Vicentino
História do Brasil e Geral - Cláudio VicentinoHistória do Brasil e Geral - Cláudio Vicentino
História do Brasil e Geral - Cláudio Vicentino
 
Junho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaJunho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na Igreja
 
Poema - Reciclar é preciso
Poema            -        Reciclar é precisoPoema            -        Reciclar é preciso
Poema - Reciclar é preciso
 
Atividade com a música Xote da Alegria - Falamansa
Atividade com a música Xote  da  Alegria    -   FalamansaAtividade com a música Xote  da  Alegria    -   Falamansa
Atividade com a música Xote da Alegria - Falamansa
 
Apresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao AssédioApresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao Assédio
 
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humano
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humanoSlide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humano
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humano
 
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfProjeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
 
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
 
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdfTesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
 
Evolução - Teorias evolucionistas - Darwin e Lamarck
Evolução - Teorias evolucionistas - Darwin e LamarckEvolução - Teorias evolucionistas - Darwin e Lamarck
Evolução - Teorias evolucionistas - Darwin e Lamarck
 
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
 
Apresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoApresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimento
 
Evangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfEvangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdf
 
Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadess
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
Recurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorRecurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/Acumulador
 
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básicoPowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anos
 
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdfOFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
 
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
 

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