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
Download

Programação de Servidores - Marx Gomes Van der Linden