Skip to content


Engatinhando com AJAX e PHP. Parte 1

Esse é meu primeiro tutorial sobre AJAX e espero que não seja o único. :)

[update 03/10/07]
Parte 2 do tutorial AJAX + PHP
Parte 3 do tutorial AJAX + PHP
[/update]

Como esse tutorial é bem básico, para quem está começando com AJAX, eu vou esplicar explicar coisas bem básicas. Desde como funciona o protocolo HTTP e um exemplo de AJAX.

Para que você possa usufruir ao máximo do tutorial, você necessita de conhecimentos de HTML, JavaScript e PHP.

Vamos ver aqui então: Como funciona um HTTP request, um HTTP response, técnicas utilizadas e como comunicar o cliente com o servidor.

HTTP Resquests

O formato de um HTTP request é assim:
<requeste-line>
<headers>
<blank line>
[<request-body>]

A primeira linha(<requeste-line>) necessita da indicação do tipo do request, diretório de acesso eda versão do HTTP. Já no <headers> indica informações adicionais para o server. Depois a <blank line>, é seguida do <request-body> que é opcional.

Não vou ficar explicando muito aqui, pois não é o foco do nosso tutorial. Agora vou mostrar um exemplo prático de como o browser envia o HTTP request:
GET /?cod=1 HTTP/1.1
Host: www.felipetonello.com
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20060601 Firefox/2.0 (Ubuntu-edgy)
Connection: Keep-Alive

Explicando resumidamente: Na primeira linha vimos que usamos o tipo GET seguido da / quer dizer que irá acessar ao diretório root do server com o parametro cod=1 e em seguida da versão do HTTP. Depois os cabeçalhos que são auto-explicativo.
Quem usa PHP a um tempo conhece bem esses headers.

Então vimos como o browser se comunica com os servidores por meio do HTTP(Hypertext Transfer Protocol).

HTTP Responses

Agora vamos ver como o servidor responde, quando recebe um request, por meio do HTTP.
<status-line>
<headers>
<blank line>
[<response-body>]

O formato é bem parecido, apenas muda a primeira e ultima linha. Na primeira linha ele retorna a versão do HTTP e o status da resposta. Já na ultima ele retorna o corpo da resposta. Exemplo:
HTTP/1.1 200 OK
Date: Sat, 11 Nov 2006 23:59:59 GMT
Content-Type: text/html;charset=UTF-8
Content-Length: 122


<html>
<head>
<title>Felipe Tonello</title>
</head>
<body>
<!-- Aqui vem o corpo -->
</body>
</hmtl>

Na primeira linha temos a versão do HTTP em seguida do status(200). Os cabeçalhos e depois a resposta que no caso foi como um text/html.
Os status mais comuns são:

  • 200 (OK): arquivo encontrado com sucesso.
  • 304 (NOT MODIFIED): O arquivo não foi modificado desde o ultimo request. Isso é mais utilizado em browsers com mecanismos de cache.
  • 401 (UNAUTHORIZED): Cliente não tem autorização para acessar o arquivo. Normalmente isso irá fazer com que o browser pergunte por usuário e senha para logar no servidor.
  • 403 (FORBIDDEN): O Cliente falhou na autorização. Normalmente acontece quando você falha na autorização depois de um erro 401.
  • 404 (NOT FOUND): Quando o arquivo não existe na localização informada.

Nesse tutorial vocês entenderam como funciona o protocolo HTTP para se comunidar entre servidor e cliente.
Para não ficar muito grande vou separar em 2 partes. Na proxima parte vamos ver um exemplo de comunicação cliente-servidor usando AJAX.

Até mais. :)

Posted in AJAX, PHP, Tutoriais.

Tagged with , .


22 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. merus says

    Nos encontramos nessa mesma bat-hora e nesse mesmo bat-canal. ;D

  2. maurelio says

    vc realmente precisa saber dessas coisas pra programar em PHP? acho q vc pegou pesado pra um curso q pretende ser básico em php ;)

    essa introdução seria importante dizer qual a diferença entre um POST e um GET e quais as vantages/desvantages de cada um.

    as outras coisas n são muito úteis... já programei muito em php e no máximo usei os headers, pra fazer a página redirecionar... e só.

  3. Felipe Tonello says

    Olá maurelio,
    Realmente essa parte não necessita nada de php hehe..
    É que na verdade eu queria já entrar no php nessa parte mesmo, mas não deu, ia ficar muito grande... Mas concerteza nas proximas você irá ter um básico de php para poder entender legal!

    Abraços

  4. Marcelo says

    Acho que o Maurélio se confundiu, isso não é um artigo ensinando a programar em php, e sim ensinando a técnica de AJAX juntamente com o PHP, portando se faz necessário aí dois conhecimentos, PHP e claro o funcionamento das requisições do browser para processar o XMLHTTPRequest, que foi o que o Felipe tentou mostrar, e diga-se de passagem, muito bem, já que são poucos artigos em português que ensinam essa técnica. Creio que na segunda parte se possa aprofundar mais nas questões do GET e POST, já que não dá para ensinar sem mostrar algo mais prático.

    Abraços

  5. Felipe Tonello says

    Olá Marcelo,

    Exatamente. Obrigado pela ajuda aqui em cima hehehe
    Realmente, na segunda parte eu mostro como usar o método GET.. e na terceira parte meu objetivo é mostrar com o POST..

    Abraços,

  6. Elky Klerk says

    Boa tarde, Felipe,

    Achei bastante interessante seu artigo, estou aguardando a parte 3, 4 , 5...
    Felicidades

  7. Mateus says

    Começei a ler o seu tutorial e me deparei com "eu vou esplicar" PQP .... deu nojo em ler, aprenda português antes de escrever algo intitulado "tutorial"

  8. Felipe Tonello says

    Obrigado pelo alerta!
    Prometo não cometer mais esses tipos de erros medonhos. hehehe

  9. iniciante says

    Galera
    Preciso de ajuda. trablho por anos com Delphi mas agora quero fazer algo do tipo intranet em paginas de web e tals, preciso saber de um lugar(pagina ou material) em que eu aprenda a desenvolver de forma prática o esqueleto de uma página web (de preferência um progrma que simplifique detalhes visuais) e um em que eu praticamente engatinhe com php e ajax..... pois quero mesmo eh tudo em ajax.
    Desde ja agradeço

  10. Raphael says

    Felipe...
    tô gostando bastante do tutorial... mandou bem!

    e qto ao comentário do Mateus acima, é só pra rir mesmo! Tudo bem q seu erro foi meio tosco, mas como q alguém q quer vir te corrigir escreve "começei" com ç? É mais tosco ainda!!!
    Naaan... siga em frente, rapaz!

    abrazos

  11. Flávio Souza Gonçalves says

    Mateus, explicar é com X e não com s.
    Primeiro vc tem que aprender escrever direito para criticar os outros.
    Sobre o tutorial o que vale é a intenção em ajudar.
    Abs galera.

  12. Osvaldo says

    nao tem vergonha de copiar o artigo dos outros e ainda transcrever errado? isto esta no site do imasters. artigo 157

  13. Felipe Tonello says

    Amigo, acho que está havendo algum engano.. esse tutorial eu criei sozinho mesmo, utilizando apenas um livro importado que comprei para me ajudar nas ideias de exemplos e assim por diante..
    Faz um bom tempo que fiz esse tutorial e quando eu fiz nao tinha tutorial assim de ajax e php na web..
    anyway, se quiser postar o artigo para eu ver, podemos analisar mesmo quem está copiando. ok?

    Obirgado

  14. J.Roberto says

    Apreciei o início do seu tutorial pela forma simples e objetiva.Continuarei a tirar proveito dele COM OU SEM falhas de português porque sou GRATO a pessoas que CONTRIBUAM com o seu tempo e conhecimento.Obrigado.

  15. J.Roberto says

    Felipe, somente tira o link do comentário anterior que aponta para o site (www.belavito.com) porque ele não tem nada a ver com php.Obrigado.

  16. Felipe Tonello says

    Olá J. Roberto,
    Obrigado pelo comentário! Espero que continue agradando as pessoas.

    Sobre o link do seu site, não tem problema não! :)

    Abs,
    Felipe

  17. Aurélio says

    Estou usando ajax, e me deparei com a seguinte situação.
    Testei em varios locais a aplicação que estou fazendo e nenhum problea, mas na faculdade sempre da erro 403 forbidden.
    Será que é por causa das restrições de acesso a internet?
    Como faço para contornar isso?
    Agradeço alguma resposta.

  18. Iria says

    Otimo seu artigo, mas se não utilizar todas as versões do xmlhttprequest, pode não funcionar em alguns browser tipo IE 6 ? Aguardo resposta

  19. Felipe Tonello says

    Exatamente,
    Na verdade o IE6 utiliza o MSXML2.XMLHttp.5.0
    Mas para compatibilidade com o máximo número possível de browsers, é bom utilizar aquele método

  20. Renato says

    Estou iniciando em ajax e adorei o seu tutorial, mto bom mesmo!! Um grande abraço..

  21. Marcos Antunes says

    Estou com um problema e não achei a solução na internet, gostaria de saber se alguém já passou por isso.

    Eu instalei o wordpress, configurei, mas quando eu mudo a configuração de Links Permanentes de Padrão para Estrutura Personalizada, o wordpress funcionama perfeitamente mais no rodapé do blog todo aparece esses códigos HTTP/1.1 200 OK Date: Fri, 28 Nov 2008 21:07:04 GMT Server: Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.8b mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_perl/2.0.3 Perl/v5.8.8 Content-Length: 0 Keep-Alive: timeout=5, max=96 Connection: Keep-Alive Content-Type: application/x-httpd-php5

    Quando eu volto para a configuração de Links Permanentes de Padrão ele não aparece mais.

    Alguém já passou por isso??

  22. Neiliehadia says

    Hello Everbody

    I just joined this forum.

    Great work forum crew!

    Just recently I read that there is a treatment for diabetes on http://www.healthcaredaily.org
    Is this way of curing diabetes mentioned actually true, If so I should have found out earlier! The website http://www.healthcaredaily.org looks legit

    Has anyone tried beating diabetes this way?

    Thanks

    Neiliehadia



Some HTML is OK

or, reply to this post via trackback.