Programação de Servidores
CST Redes de Computadores
Marx Gomes Van der Linden
Programação de Servidores
Aplicações cliente/servidor para web.
Fundamentos de HTML+CSS.
Linguagem de programação de servidor: PHP.
Banco de Dados: MySQL.
Mecanismos de autenticação e fundamentos
de Javascript.
http://marx.vanderlinden.com.br
2
Bibliografia
Aprendendo PHP &
MySQL
Editora Alta Books, 2008.
Learning PHP & MySQL,
O'Reilly
Materiais on-line e
manuais
http://marx.vanderlinden.com.br
3
Avaliação
5 Notas:
Projeto 1 (PHP)
Prova 1 (PHP)
Projeto 2 (MySQL)
Prova 2 (MySQL)
Listas de Exercícios
http://marx.vanderlinden.com.br
4
A Web, modelo estático
http://marx.vanderlinden.com.br
5
HTTP
Hypertext Transfer Protocol
Porta 80
Modelo de Requisição e Resposta
http://marx.vanderlinden.com.br
6
Requisição
Cliente (User Agent) emite uma Requisição,
pedindo um Recurso:
Método (GET ou POST) + Recurso
Cabeçalho
Corpo da Mensagem
GET /index.html HTTP/1.1
Host: www.google.com.br
User-Agent: Mozilla/5.0 (X11; U; Linux i686;
pt-BR; rv:1.9.0.1) Gecko/2008071719
Firefox/3.0.1
Accept-Language: pt-br,pt;q=0.8,enhttp://marx.vanderlinden.com.br
7
us;q=0.5,en;q=0.3
Resposta
Servidor HTTP retorna uma Resposta.
Contém um Código de Status
200 = OK
302 = Redirecionamento
403 = Não autorizado
404 = Não encontrado
etc...
http://marx.vanderlinden.com.br
8
Resposta
HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Date: Sun, 27 Jul 2008 18:47:50 GMT
Expires: -1
Content-Type: text/html; charset=UTF-8
Content-Length: 2739
<html><head><meta http-equiv="content-type
"content="text/html;charset=UTF-8"><title>
Google</title><style>body,td,a,p,.h{font-f
amily:arial,sans-serif}.h{color:#3366cc}.q
{color:#00c}.ts td{padding:0}.ts{border-c
ollapse:collapse}.lnc:link,.lnc:visited{co
http://marx.vanderlinden.com.br
9
9(...)
Apache
Servidor HTTP mais usado
no mundo
(49.12% de todos os websites do mundo)
Software Livre
Modular
Versátil e Configurável
http://marx.vanderlinden.com.br
10
HTML (1/2)
http://marx.vanderlinden.com.br
11
HTML (2/2)
http://marx.vanderlinden.com.br
12
HTML
http://marx.vanderlinden.com.br
13
HTML
Arquivo de texto simples, organizado por tags.
<nomedatag atributo1="valor1"
atributo2="valor2"> Conteúdo
</nomedatag>
Nomes das tags não distinguem maiúsculas e
minúsculas.
Espaços extras não são levados em
consideração.
Deve especificar a estrutura do documento.
http://marx.vanderlinden.com.br
14
HTML + CSS
http://marx.vanderlinden.com.br
15
HTML
http://marx.vanderlinden.com.br
16
CSS
Cascading Style Sheets
Especificam a formatação do documento.
Um arquivo CSS pode ser aproveitado para
vários arquivos HTML.
Uso de CSS facilita a separação entre
conteúdo e formatação.
http://marx.vanderlinden.com.br
17
http://marx.vanderlinden.com.br
18
http://marx.vanderlinden.com.br
19
http://marx.vanderlinden.com.br
20
http://marx.vanderlinden.com.br
21
Sites Estáticos vs. Dinâmicos
Site Estático
Site Dinâmico
Cliente solicita
recursos, sem
especificar
parâmetros.
Servidor envia
arquivos solicitados.
Não há interação com
usuário.
Cliente especifica
parâmetros nas
requisições.
Servidor processa o
arquivo antes de
enviar.
Usuário interage com
o site.
http://marx.vanderlinden.com.br
22
A Web, modelo dinâmico
http://marx.vanderlinden.com.br
23
PHP
PHP: Hypertext Preprocessor
Linguagem interpretada.
Pré-processador de HTML.
Código-fonte embutido no código HTML.
Executada no servidor.
Simples, direta e projetada especialmente para
a web.
Software Livre.
http://marx.vanderlinden.com.br
24
exemplo.php (1/2)
http://marx.vanderlinden.com.br
25
exemplo.php (2/2)
http://marx.vanderlinden.com.br
26
exemplo.php, saída (1/2)
http://(...)/exemplo.php?nome=Cefet&x=3&y=8
http://marx.vanderlinden.com.br
27
exemplo.php, saída (2/2)
http://(...)/exemplo.php?nome=Cefet&x=3&y=8
http://marx.vanderlinden.com.br
28
exemplo.php, final
http://marx.vanderlinden.com.br
29
Armazenamento de Dados
Arquivos de texto vs Bancos de Dados
Redundância
Manutenção
Integridade
Eficiência
http://marx.vanderlinden.com.br
30
Banco de Dados Relacional
Composto por Entidades (ou Tabelas).
Cada tabela tem campos.
Os campos de uma tabela podem fazer
referência a outras tabelas.
Dados são armazenados de maneira eficiente.
Buscas podem ser realizadas de maneira
eficiente.
http://marx.vanderlinden.com.br
31
Banco de Dados Relacional
http://marx.vanderlinden.com.br
32
SQL
Structured Query Language
Linguagem-padrão para manipulação de
informações em bancos de dados.
Definições de dados
Consultas
Modificações, Inserções, Exclusões
Controle de Acesso
http://marx.vanderlinden.com.br
33
SQL - Exemplos
CREATE TABLE My_table (
my_field1
INT,
my_field2
VARCHAR (50),
my_field3
DATE
NOT NULL,
PRIMARY KEY (my_field1, my_field2)
);
INSERT INTO My_table (field1, field2, field3)
VALUES ('test', 'N', NULL);
UPDATE My_table SET field1 = 'updated value'
WHERE field2 = 'N';
http://marx.vanderlinden.com.br
DELETE FROM My_table
WHERE field2 = 'N';
34
SQL - Exemplos
SELECT *
FROM Book
WHERE price > 100.00
ORDER BY title;
SELECT Book.title, count(*) AS Authors
FROM Book
JOIN Book_author ON Book.isbn =
Book_author.isbn
GROUP BY Book.title;
http://marx.vanderlinden.com.br
35
MySQL
Sistema de Banco de Dados
Software Livre
Leve, eficiente e robusto
Integra-se bem com PHP
http://marx.vanderlinden.com.br
36
LAMP
Linux + Apache + MySQL + PHP
http://marx.vanderlinden.com.br
37
WAMP
Windows + Apache + MySQL + PHP
http://marx.vanderlinden.com.br
38