Desenvolvimento de Aplicativos Web - COLTEC/MG
João Eduardo Montandon
Desenvolvimento de Aplicativos Web - COLTEC/MG
Modelo Resquest/Response: Usuário envia uma requisição, e recebe uma resposta.
Stateless: Requisições Independentes (Não mantém "histórico" de execução)
Comunicação: Segue modelo Request/Response ("troca de mensagens" entre cliente e servidor)
Responsável por enviar a requisição ao servidor
GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1
Host: net.tutsplus.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120
Pragma: no-cache
Cache-Control: no-cache
Define a ação que será executada no servidor no momento do recebimento da requisição
GET
: Leitura de informaçãoPOST
: Armazenamento de informaçãoPUT
: Atualização de informaçãoDELETE
: Exclusão de informaçãoGET
GET
POST
POST
Resposta proveniente do servidor
Contém cabeçalho com informações gerais da resposta
Corpo compreende o conteúdo da resposta em si
HTTP/1.1 302 Moved Temporarily
Content-Type: text/html; charset=UTF-8
Location: https://accounts.google.com/ServiceLogin?passive=1209600&osid=1&continue=https://inbox.google.com/&followup=https://inbox.google.com/
Strict-Transport-Security: max-age=10886400; includeSubdomains
P3P: CP="This is not a P3P policy! See https://support.google.com/accounts/answer/151657?hl=en for more info."
Date: Wed, 01 Jun 2016 15:16:07 GMT
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Set-Cookie: NID=79=L0HNTNZei8q...;Domain=.google.com;Path=/;Expires=Thu, 01-Dec-2016 15:16:07 GMT;HttpOnly
O servidor Web pode delegar essas ações para outra aplicação
Essa aplicação auxiliar é conhecida como Servidor de Aplicação Web
Possibilidade de processar informações
Capacidade de gerar páginas dinâmicas
Funcionamento transparente para o usuário (não sabe o que a aplicação realmente processa)
Java: JSP, JSF.
PHP: CakePHP, Drupal, etc.
Ruby: Ruby on Rails, Sinatra.
Python: Django, Flask, etc.
JavaScript: Node.js, Backbone.js, Angular.js, Express.js, etc.
Scala, Groovy, Grails,
BASHAN, B.; SIERRA, K.; Bates, B.; Use a Cabeça: Servlets e JSP, O’Reilly, 2ª Edição, 2011.