A Internet e o Protoloco HTTP
• As
aplicações
desenvolvidas
para
internet são, em sua grande maioria,
acessadas via os navegadores web (web
browsers), o que quer dizer
que elas
utilizam o protocolo HTTP ou (HTTPS –
HTTP sobre SSL – Secure Socket Layer)
para a comunicação e o tráfego de dados
na rede.
Protoloco HTTP
• Este protocolo é baseado no modelo de solicitação e resposta. O cliente é quem sempre faz uma solicitação a um servidor, que, por sua vez, processa e gera uma resposta de volta ao cliente.
• Neste ponto a conexão entre cliente e servidor é fechada, ou seja, não existe uma sessão permanente entre esses dois pontos de comunicação. O cliente abre uma conexão com o servidor, envia a requisição, recebe a resposta e fecha a conexão.
Requisição e Resposta HTTP
• Todo comunicação com o servidor se inicia com uma solicitação (requisição) do cliente (navegador) ao servidor. Após o servidor processar a solicitação, ele devolve uma resposta ao cliente. A solicitação é iniciada quando uma URL é digitada na barra de endereços, um link clicado ou um form é submetido.
Linha de Status - Códigos de Retorno
• Os principais códigos de retorno que aparecem na linha
de status são:
– 200 (Document follows) - pedido bem sucedido. A
informação requisitada será retornada.
– 401 (Unautorized) - a informação requisitada é de acesso
restrito, sendo necessário se autenticar.
– 403 (Forbidden) - acesso proibido.
– 404 (Not found) - a informação requisitada não foi
encontrada ou teve permissão de acesso negada. A primeira opção é muito freqüente na Internet e pode ocorrer por erro de digitação de uma URL.
– 500 (Server Error) - erro no servidor Web. Comum
Requisição e Resposta HTTP
• Os dois principais, e mais usados,
tipos de requisições são o GET e
POST.
Eles
possuem
algumas
diferenças básicas, porém muito
importantes:
GET
• Só pode enviar até 255 caracteres de
informações.
• As informações vão como parte da URL
(não indicado para senha).
• O browser ou proxy faz o cache da página
pela URL.
• Feito quando uma URL é digitada, via um
link ou por um form de método GET.
POST
• Pode enviar conteúdo ilimitado de
informações.
• Pode enviar texto e binário (ex: arquivos)
• O browser ou proxy não fazem o cache
da página pela URL.
Páginas Seguras
• As páginas seguras, tem um endereço diferente das páginas normais. Este endereço deve ser utilizado para que a página possa ser acessada corretamente. O endereço é iniciado com https://
ao invés de http:// como é o endereço normal.
• Em, geral, as páginas SSL são pequenas porções de um determinado site e por isso o endereço específico não é divulgado. Ao invés disso, o endereço é utilizado como um link do site normal para o SSL.
SSL- Mecanismos
O SSL é composto por quatro mecanismos de segurança:
– Autenticação - Identifica a fonte dos dados;
– Integridade - Garante que dados não foram indevidamente alterados;
– Criptografia - Garante a privacidade dos dados; – Troca de chaves criptográficas - Aumenta a
segurança do mecanismo de criptografia utilizado.
• HyperText Transfer Protocol Secure é uma implementação do protocolo
HTTP sobre uma camada SSL ou do TLS, essa camada adicional permite que os dados sejam transmitidos através de uma conexão criptografada e que se verifique a autenticidade do servidor e do cliente através de certificados digitais.
• O protocolo HTTPS é normalmente utilizado quando se deseja evitar que a informação transmitida entre o cliente e o servidor seja visualizada por terceiros, como por exemplo no caso de compras online. A existência na barra de tarefas (mais sobre o lado direito) de um cadeado demonstra a certificação de página segura (SSL).
• Nas URLs dos sites o início ficaria 'https://'. Geralmente os navegadores mais novos indicam um site seguro, geralmente através das barras de endereço que ficam verde.
HTML
• HTML (Hyper Text Markup Language) é o código interno de uma página na internet.
• É uma linguagem marcada por tags. É bem simples!
• O navegador interpreta estas tags do HTML e processa uma resposta visual ao internauta, que é a página HTML.
Programação Java para Web
• A tecnologia Java nos permite escrever aplicações robustas e seguras para rodar no ambiente
internet. Isto é possível através da tecnologia de Java Servlets e JavaServer Pages (JSP).
• SERVLETS - são classes Java que atendem às requisições HTTP.
• JSP são documentos HTML com código Java
embutido. Eles são usados, principalmente, como interface visual com o cliente web.
A arquitetura das aplicações web
seguem, geralmente, o modelo de
Servidor Java
• O Servidor Java é o local onde ficam armazenados os Servlets, JSPs e as classes de negócio da sua aplicação.
• O Servidor Java atende às solicitações feitas a ele, invocando os recursos solicitados, como os Servlets, JSPs, HTMLs, imagens e etc, assim como um webserver, porém estendendo a funcionalidade dos webservers, servindo as aplicações em Java.
• Esses servidores são, geralmente, conhecidos como Servlet Containers, ou Web Containers.
Servidor Java
• Existem vários Servidores Java, um deles,
muito bom e gratuito, é o Apache
Tomcat.
• Outros servidores mais completos que
implementam toda a especificação J2EE
podem ser encontrados. Alguns deles:
– JBoss, IBM Web Sphere, Bea Web Logic, Oracle OC4J, entre outros.
Extensões da Tecnologia WWW
HTML HTTP CGI JAVASCRIPT APPLETS em JAVA PLUG-INS Estrutura básica do ambiente WWW. - CGI no Servidor - HTML no Cliente ASP.NET Extensões de Cliente e Servidor SERVLETS em JAVA JSP ACTIVEXExtensões Cliente / Servidor
• Cliente: (X)HTML, JavaScript, VBScript, ActiveX, Applet, Plugins, ...
• Servidor: CGI, JSP, Servlet, ASP.NET, PHP,Cold Fusion, ...
requisição
resposta
(X)HTML, JavaScript,
VBScript, ActiveX, Applet, Plugins, ...
CGI, JSP, Servlet, ASP.NET, PHP, Cold Fusion, ...
Lado do Cliente - JavaScript
• O JavaScript é uma linguagem de computador interpretada desenvolvida originalmente para uso em páginas web carregadas no lado do cliente.
• Ainda que seu nome seja similar ao da linguagem Java, o JavaScript foi desenvolvido pela Netscape e não possui semelhanças com o Java.
• Em conjunto com a tecnologia de Document
Object Model, o JavaScript tornou-se um
método bastante poderoso de manipulação de páginas web.
JavaScript
• Linguagem interpretada pelo navegador, incorporada na forma de texto ao código fonte das páginas HTML, com objetivo de adicionar capacidade de processamento no lado do cliente. <HTML>
<HEAD>
<TITLE> EXEMPLO DE JAVASCRIPT</TITLE>
<SCRIPT LANGUAGE="JavaScript"> function calculo(form) { form.meses.value = eval(form.anos.value*12); } </SCRIPT> </HEAD> <BODY> Formulario de Consulta <FORM> <P>Idade em Anos:
<INPUT TYPE="text" NAME="anos" SIZE=15></P> <P><INPUT TYPE="button" VALUE="CALCULAR"
onClick="calculo(this.form)"> <P>Idade em Meses:
<INPUT TYPE = "text" NAME="meses" SIZE=15></P> </FORM>
</BODY> </HTML>
Lado do Cliente - Applet
• A plataforma Java, desenvolvida pela Sun Microsystems. Ela
permite que páginas web tenham pequenos programas (chamados applets) diretamente dentro da informação enviada que será rodada no computador do usuário.
• Esses applets são executados na própria máquina cliente, fornecendo telas mais rica para o usuário. Essa tecnologia nunca ganhou a popularidade que a Sun esperava, por uma variedade de razões, incluindo falta de integração com outros conteúdos e o fato de que a JVM (máquina virtual necessária para a execução do conteúdo) ter que ser instalada antes do uso.
Lado do Cliente - AJAX
• O AJAX é uma tecnologia baseada em JavaScript fornecendo métodos com os quais pequenas partes de uma página web podem ser atualizadas com informações do servidor sem a necessidade de atualização de toda a página.
• O AJAX é visto como um importante aspecto do que chama-se Web 2.0 permitindo que as aplicações da internet se aproximem da funcionalidade das aplicações desktop.
Lado do Servidor - Servlets
• Extensão de servidor escrita em Java
– Servlets são aplicações em java que são executadas no servidor
– Podem ser usados para estender qualquer tipo de aplicação do modelo pedido-resposta
– Toda servlet implementa a interface
javax.servlet.Servlet (tipicamente estende
GenericServlet) • Servlets HTTP
– Extensões para os servidores Web
– Estendem javax.servlet.http.HttpServlet
– Lidam com características típicas do HTTP como os métodos GET, POST, Cookies, etc.
Lado do Servidor - JSPs
• JSPs são arquivos texto HTML ou então XHTML, contendo tags JSP específicos.
• Tecnologia baseada em Java Servlets.
• Facilita o desenvolvimento de conteúdo dinâmico para a Web, permite gerar documento dinâmico do tipo HTML ou XHTML.
• Toda página JSP dá origem a um Servlet . Quando a JSP é solicitada pela primeira vez, ela é traduzida em um Servlet Java (bytecode). Este servlet é utilizado para enviar respostas de volta para o cliente.