ndice Geral
Introduo..........................................................................................................3
Historia..............................................................................................................3
Como funciona o protocolo HTTP....................................................................4
Esquema de comunicao..................................................................................5
Exemplo Pratico................................................................................................6
Requesio do cliente........................................................................................6
Resposta do servidor..........................................................................................7
Concluso..........................................................................................................7
Netgrafia............................................................................................................8
Introduo
O objectivo deste relatrio apresentar o estudo sobre o protocolo HTTP e a sua
comunicao cliente-servidor.
Como tal foi estudado o protocolo HTPP incidindo nos trs mtodos que mais se
usa no referido protocolo.
Antes de iniciarmos iremos conhecer um pouco da sua histria.
Historia
O nome do HTTP HyperText Transfer Protocol e um protocolo responsvel
pelo tratamento de pedidos e respostas entre cliente e servidor na WWW.
Nasce devido a necessidade de criar um padro na comunicao de dados na
WWW e na capacidade de transferir, no s texto bem como outros dados entre os
clientes (browsers) e servidores (servidores web) atravs do uso de regras bsicas.
A sua primeira verso designada por HTTP/0.9, nasce em 1990, como um
simples protocolo de transferncia de dados apenas em formato ASCII, o qual inclua
apenas um nico mtodo de requisio denominado de GET
Com a verso HTTP/1.0 lanada em 1992 e desenvolvida at 1996 includa a
capacidade de transferir tambm mais dados do tipo MIME44 (Multipurpose Internet
Mail Extension) e includos tambm novos mtodos de requisio, denominados de
POST e HEAD.
Em 1999 lanada a verso HTTP/1.1 que inclui novos mtodos de requisio
denominados de PUT, DELETE, TRACE, OPTIONS e CONNECT. Esta verso foi
melhorada at 2014.
J em 2015 anunciada a verso http/2.0, a qual deixar o navegador com um
tempo de resposta melhor e mais seguro e melhorar a navegao em smartphones.
Com a nova verso veio tambm um conjunto de implementaes adicionais
sendo as mais notveis, o uso de conexes persistentes e o uso de servidores proxy.
Normalmente este protocolo usa a porta 80, que por curiosidade foi adotada
devido a sua no utilizao por nenhum outro protocolo como norma da ICANN,
ficando oficialmente designada a porta 80 ao protocolo HTTP/1.0 em 1992.
Esquema de comunicao
Requisio bsica de HTTP pelo cliente:
GET <ficheiro> HTTP/1.1
Host: <ip>
User-Agent: <Agente>
Connection: <tipo>
Na primeira linha temos a requisio que composta por trs partes separadas
por espaos: o mtodo que neste caso o GET, a identificao do URI (Identificador
Universal de Recurso) e a verso do HTTP utilizado.
Na segunda linha temos o URL (Localizador Universal de Recurso).
Na terceira linha temos o agente que ser a identificao do browser.
E na quarta linha o tipo de ligao normalmente utilizado para ligaes
persistentes introduzido com o protocolo http/1.1 .
Resposta bsica de HTTP pelo servidor:
HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Connection: close
Na primeira linha temos a verso do HTTP, o cdigo e descrio do estado da
ligao.
Na segunda linha temos a data da resposta baseada na data servidor.
Na terceira linha temos a identificao do servidor utilizado.
Na quarta linha o tipo de ligao.
Exemplo Pratico
Iremos utilizar o browser Chrome e o plug in Live http Headers, a linha
selecionada mostra a requisio e a resposta depois de chamado o URL www.google.pt
Requesio do cliente
GET / HTTP/1.1
Host: www.google.pt:443
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;
q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: pt-PT,pt;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: CONSENT=YES+PT.pt-PT+V7; OGPC=5061899-15:50619212:4061130-2:103910400-5:5061968-1:; NID=77=jZI6tLKfMNQPuijuyIqdtLyY-eXh4KxguvU70CFXLF5IxeIy6Uwm-
Z9nmMYtzOEs5Wpvo9TTFEXzs6oBx5dOW3qyPsv8JvttIkK5PADoDCe9X52S3ZUmNI-Wz8YphZpzO30Sg
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
X-Chrome-UMA-Enabled: 1
X-Client-Data: CJK2yQEIpbbJAQjBtskBCMOJygEI/ZXKAQ==
Resposta do servidor
HTTP/1.1 200
alt-svc: quic=":443"; ma=2592000; v="31,30,29,28,27,26,25"
alternate-protocol: 443:quic,p=1
cache-control: private, max-age=0
content-encoding: gzip
content-type: text/html; charset=UTF-8
date: Mon, 21 Mar 2016 19:04:26 GMT
expires: -1
server: gws
status: 200
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
Concluso
Como podemos observar por de trs dos cliques e pesquisas que efectuamos
existem muitos processos e procedimentos que so efectuados sem que nos
apercebamos.
Para muitos tudo isto ainda tabu, mesmo para pessoas que trabalham com este
protocolo e que desconhecem o seu funcionamento como era o meu caso.
Mas aprofundado o conhecimento, e conhecendo o seu funcionamento, teremos
bases para seleccionar os melhores mtodos a aplicar, a despistar possveis bugs, a
implementar melhorias ou apenas ter acesso a mais informaes disponibilizadas pelo
protocolo nas suas requisies e respostas.
7
Sem dvida que na era tecnolgica que vivemos seja surpreendente o uso de tal
ferramenta baseado na data da sua criao.
Netgrafia
https://pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol
http://docstore.mik.ua/orelly/webprog/webnut/ch17_01.htm