Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br
Roteiro 1) Conceitos Iniciais: W3C, WWW, TCP/IP, HTTP 2) Modelo Cliente/Servidor 3) HTML 4) Servidores WEB 5) Referências 2
Para que a Web atinja todo o seu potencial, as tecnologias da Web precisam ser compatíveis entre si e permitir que todos os equipamentos e softwares usados para acessar a Web funcionem juntos. World Wide Web Consortium consórcio internacional responsável pelo desenvolvimento, implantação e regulamentação das linguagens pertinentes a Internet, criado em 1994
O W3C tem a missão de criação de padrões e diretrizes para a Web. Publicou mais de 110 desses padrões, denominados (http://www.w3.org/tr/) Site Oficial: http://www.w3c.org Site Nacional: http://www.w3c.br As organizações fazem parte do W3C para trabalhar e trocar idéias com mais de 400 filiados e, entre elas, estão as empresas de tecnologia mais avançadas do mundo: Microsoft, Sun, Siemens, Canon, Oracle, etc... As especificações desenvolvidas pelo W3C incluem: HTML, CSS, XML, XHTML etc...
WWW World Wide Web (Rede de alcance mundial), também conhecida como Web e WWW, é um sistema de documentos em hipermídia que são interligados e executados na Internet. Desenvolvido por Tim Berners-Lee no início dos anos 90. Objetivo: Estabelecer um novo meio de comunicação que não tivesse os atrasos inerentes aos sistemas até então existentes Permitir troca de informações de maneira transparente para usuários trabalhando com plataformas (sistema operacional e hardware) heterogêneas. Independente de plataforma.
WWW Hipermídia: hipertexto, imagem, áudio e vídeo. WWW é o resultado da combinação de várias tecnologias, por exemplo: TCP/IP: infra-estrutura de rede Arquitetura cliente/servidor: estratégia para implementação dos serviços HTTP: Protocolo de aplicação HTML: padrão de apresentação dos dados
TCP/IP O conjunto de protocolos TCP/IP é um conjunto de protocolos de comunicação entre computadores em rede. Seu nome vem dos dois protocolos mais importantes do conjunto: o TCP e o IP. TCP - Protocolo de Controle de Transmissão Protocolo do nível da camada de transporte (camada 4) do Modelo OSI. Características Confiável: Verifica se os dados são enviados de forma correta, na seqüência apropriada e sem erros, pela rede. Full duplex - transferência simultânea em ambas direções (cliente-servidor) durante toda a sessão.
Características TCP Handshake - Mecanismo de estabelecimento e finalização de conexão que permite a autenticação e encerramento de uma sessão completa. Entrega ordenada Entrega de blocos de dados com um tamanho arbitrário num fluxo (ou stream) de dados. Porém, a circulação dos pacotes ao longo da rede, pode desordenar os pacotes. O TCP garante a reconstrução do stream no destinatário mediante os números de seqüência. Controle de fluxo - O TCP usa o campo janela ou window para controlar o fluxo.
TCP/IP IP - Protocolo de Interconexão Protocolo usado entre duas ou mais máquinas em rede para encaminhamento dos dados. O IP trata o pacote TCP como dados e não interpreta O IP trata o pacote TCP como dados e não interpreta qualquer conteúdo da mensagem do TCP, sendo que os dados TCP viajam pela rede em datagramas IP. Os roteadores que interligam as redes apenas verificam o cabeçalho IP, quando fazem o envio dos datagramas. O TCP no destino interpreta as mensagem do protocolo TCP.
HTTP - Hypertex Transfer Protocol Protocolo da camada de aplicação responsável pelo tratamento de pedidos/respostas entre cliente e servidor na World Wide Web. Opera sobre o protocolo TCP/IP. Neutro com relação a conteúdo. Não utiliza sessões (statless protocol).
Principais métodos HTTP POST: Envia dados para serem processados (por exemplo, dados de um formulário HTML) para o recurso especificado. GET: Solicita algum recurso como um arquivo ou um script ao servidor.
URL - Universal Resource Locator Identificador para servidores e objetos na WWW protocolo ://Endereço do Servidor :porto / recurso e parâmetros http://www.dcc.fua.br/~joao/index.html http://todobr.com.br/cgi-bin/query.cgi?query=java+web&items=10 ftp://arch.aw.com/books/db.pdf
Plataforma Web Características Baseada em cliente (browser), protocolo HTTP e servidor web HTTP é um protocolo de transferência de arquivos (apenas). HTTP não mantém estado da sessão (*) do cliente (*) Sessão representa o momento do uso do sistema web por um usuário no mesmo servidor HTTP. Servidor representa sistema de arquivos virtual e responde a comandos que contém URLs (http://domínio:porta/recurso) Cabeçalhos contém meta-informação de requisição e resposta Só é garantida uma requisição/resposta por conexão. 13
Modelo Genérico Internet HTTP Client Requisição HTTP Resposta do Servidor HTTP Server
15 GET/SET: Requisição e Resposta
Modelos de Arquitetura de Aplic. Web Aplicações do Lado-cliente (JavaScript, applet...) Vantagens: resposta rápida; interface do usuário mais rica e mais amigável é possível; Desvantagens: requer que browser ofereça suporte total à tecnologia usada; ruim para processar dados no servidor, restrições com segurança. Aplicações do Lado-servidor (JSP+Servlet, PHP,..) Vantagens: não depende de suporte do cliente; fácil acesso a dados no servidor; mais controle e segurança. Desvantagens: interface do usuário pouco dinâmica; resposta lenta; 16
HTML HyperText Markup Language (Linguagem de Marcação de Hipertexto) linguagem de marcação utilizada para produzir páginas na Web. Hypertexto Define links entre elementos de documentos Link = relacionamento entre 2 elementos: SITUADOS NO MESMO DOCUMENTO SITUADOS EM DOCUMENTOS DIFERENTES
HTML Exemplo de página HTML <HTML> <HEAD> <TITLE> TITULO QUE APARECE NO BARRA SUPERIOR DA JANELA </TITLE> </HEAD> <BODY> <P> Texto Normal <P> <B> Texto em Negrito </B> <P> <A HREF= http://www.dcc.ufam.edu.br > link para outra página </A> <P> <IMG SRC="mail.gif" HEIGHT=20 WIDTH=20> inserção de figura </BODY> </HTML>
Transferência de Documentos página 1 INTRODUÇÃO hiperlink para outra página página 2 CAPÍTULO 1 bláblábláblábláblá... seção1 página 4 SEÇÃO 1 bláblábláblábláblá... hiperlink para mesma página bláblábláblábláblá bláblábláblábláblá... capítulo1 capítulo2... observação... bláblábláblábláblá... OBSERVAÇÃO bláblábláblábláblá página 3 CAPÍTULO 2 bláblábláblábláblá... solicita página servidor recebe página sistema de arquivos
Arquitetura Cliente-Servidor Inicialmente, WWW previa uma arquitetura cliente-servidor pura:todo processamento feito no servidor. Extensões permitiram processamento nos clientes. (HTML-estático) Java (Applets) JavaScript VBScript ActiveX Plugins requisição resposta CGI Servlets Java/ASP/PHP
Execução no Cliente (Browser) Inferno dos web-designers: compatibilidade entre browsers! Firefox Opera Internet Explorer (IECA) Konqueror
Execução no Servidor Servidores Web IIS Apache Tomcat
IIS Internet Information Server Microsoft Famoso por apresentar diversos problemas de segurança no passado
Apache Servidor web mais utilizado no mundo atualmente (Fonte: Netcraft) Software Livre Escrito em C Executa diversas linguagens script: PhP, Perl, ASP, etc. Possui suporte nativo ao MySQL Permite definição de módulos para extensão do servidor Exemplo: suporte para JSP
Tomcat Implementação de referência para JSP/Servlets (Java) Escrito em Java Devido à sua simplicidade e fácil instalação, é Devido à sua simplicidade e fácil instalação, é comumente utilizado em cursos para desenvolvimento web
Aplicações Web com Java Aplicação Web é o termo usado para designar sistemas web de conteúdo dinâmico. Pode ser no lado cliente ou servidor. Java oferece como soluções para aplicações Web no lado servidor seguindo o padrão J2EE, usando as APIs de servlets e JSP. 26
Modelo MVC O modelo de arquitetura MVC busca impor a divisão dos interesses, isto é, a separação em camadas para os dados (MODELO), a apresentação/interface (VISÃO) e o controle da aplicação (CONTROLADOR). Na plataforma Web, podemos ver isso da seguinte forma: A VISÃO é representada por páginas JSP e HTML O CONTROLADOR é delegado a classes Servlet s (ou JSP sem tags html) O MODELO pode ser utilizado objetos beans (em termpo 27 de request ou de session ).
Implementações do MVC Usando o modelo MVC na Web 28
E. Referências CONSERVER, Tim; PARK, Joyce. PHP - A Bíblia. 2 Ed. Editora Campus. GOODMAN, Danny. JavaScript A Bíblia. 1 Ed. Editora Campus. SILVA, Mauricio. Criando Sites com HTML - Sites de Alta Qualidade com HTML e CSS. 1 Ed. Editora Novatec. http://sites.google.com/a/farroupilha.ifrs.edu.br/programacao-web/