Sunteți pe pagina 1din 13

07/12/11

Hypertext Transfer Protocol

Wikipdia, a enciclopdia livre

Hypertext Transfer Protocol


Origem: Wikipdia, a enciclopdia livre.

O Hypertext Transfer Protocol (HTTP) - Protocolo de Transfer ncia de Hipertexto - um protocolo de comunicao (na camada de aplicao segundo o Modelo OSI) utilizado para sistemas de informao de hipermedia distribudos e colaborativos.[1] Seu uso para a obteno de recursos interligados levou ao estabelecimento da World Wide Web. Coordenado pela World Wide Web Consortium e a Internet Engineering Task Force, culminou na publicao de uma srie de Requests for Comments; mais notavelmente o RFC 2616, de junho de 1999, que definiu o HTTP/1.1. Normalmente, este protocolo utiliza a porta 80 e usado para a comunicao de stios web, comunicando na linguagem HTML. Contudo, para haver comunicao com o servidor do stio necessrio utilizar comandos adequados, que no esto em linguagem HTML. Para acedermos a outro documento a partir de uma palavra presente no documento actual podemos utilizar hiperliga es (ou ncoras). Estes documentos se encontram no stio com um endereo de pgina da Internet - e para acess-los deve-se digitar o respectivo endereo, denominado URI (Universal Resource Identifier ou Identificador Universal de Recurso), que no deve ser confundir com URL (Universal Resource Locator ou Localizador Universal de Recurso), um tipo de URI que pode ser directamente localizado.

ndice
1 Prefcio
pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol 1/13

07/12/11

Hypertext Transfer Protocol

Wikipdia, a enciclopdia livre

2 Funcionamento 3 Mensagem HTTP 4 Cabealho da mensagem 4.1 Corpo da mensagem 4.2 Requisio 5 Mtodos 5.1 Resposta 5.2 Cdigos de retorno 5.3 Conexes 5.4 Outros protocolos 6 Esquema de comunicao 7 Ver tambm 8 Notas 9 Referncias 10 Ligaes externas

Pref cio
O HyperText Transfer Protocol um protocolo de aplicao responsvel pelo tratamento de pedidos e respostas entre cliente e servidor na World Wide Web. Ele surgiu da necessidade de distribuir informaes pela Internet e para que essa distribuio fosse possvel foi necessrio criar uma forma padronizada de comunicao entre os clientes e os servidores da Web e entendida por todos os computadores ligados Internet. Com isso, o protocolo HTTP passou a ser utilizado para a comunicao entre computadores na Internet e a especificar como seriam realizadas as transaces entre clientes e servidores, atravs do uso de regras bsicas. Este protocolo tem sido usado pela WWW desde 1990. A primeira verso de HTTP, chamada HTTP/0.9, era um protocolo simples para a transferncia de dados no formato de texto ASCII pela Internet, atravs de um nico mtodo de requisio, chamado G . A verso HTTP/1.0 E foi desenvolvida entre 1992 e 1996 para suprir a necessidade de
pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol 2/13

07/12/11

Hypertext Transfer Protocol

Wikipdia, a enciclopdia livre

transferir no apenas texto. Com essa verso, o protocolo passou a transferir mensagens do tipo MIME44 (Multipurpose Internet Mail E tension) e foram implementados novos mtodos de requisio, chamados P e H A . O ED No HTTP/1.1, verso actual do protocolo descrito na RFC 2616, [2] foi desenvolvido um conjunto de implementaes adicionais ao HTTP/1.0, como por exemplo: o uso de conexes persistentes; o uso de servidores pro que permitem uma melhor organizao da cache; novos mtodos de requisies; entre outros. Afirma-se que o HTTP tambm usado como um protocolo genrico para comunicao entre os agentes de utilizadores e pro ies/gate a s com outros protocolos, como o SMTP, NNTP, FTP, Gopher, e WAIS, permitindo o acesso a recursos disponveis em aplicaes diversas.[2]

F ncionamen o
Um sistema de comunicao em rede possui diversos protocolos que trabalham em conjunto para o fornecimento de servios. Para que o protocolo HTTP consiga transferir seus dados pela Web, necessrio que os protocolos TCP e IP (Internet Protocol, Protocolo de Internet) tornem possvel a conexo entre clientes e servidores atravs de sockets TCP/IP. De acordo com Fielding,[3] o HTTP utiliza o modelo cliente-servidor, como a maioria dos protocolos de rede, baseando-se no paradigma de requisio e resposta. Um programa requisitante (cliente) estabelece uma conexo com um outro programa receptor (servidor) e envia-lhe uma requisio, contendo a URI, a verso do protocolo, uma mensagem MIME (padro utilizado para codificar dados em formato de textos ASCII para serem transmitidos pela Internet) contendo os modificadores da requisio, informaes sobre o cliente e, possivelmente, o conte do no corpo da mensagem. O servidor responde com uma linha de status (status line) incluindo sua verso de protocolo e com os cdigos de erro informando se a operao
pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol 3/13

07/12/11

Hypertext Transfer Protocol

Wikipdia, a enciclopdia livre

bem sucedida ou fracasso, seguido pelas informaes do servidor, metainformaes da entidade e possvel conte do no corpo da mensagem. Aps o envio da resposta pelo servidor, encerra-se a conexo estabelecida.

Mensagem HTTP
O protocolo HTTP faz a comunicao entre o cliente e o servidor por meio de mensagens. O cliente envia uma mensagem de requisio de um recurso e o servidor envia uma mensagem de resposta ao cliente com a solicitao. Segundo Foscarini,[4] os dois tipos de mensagens existentes no protocolo utilizam um formato genrico, definido na RFC 822, para a transferncia de entidades. Uma mensagem, tanto de requisio quanto de resposta, composta, conforme definido na RFC 2616,[5] por uma linha inicial, nenhuma ou mais linhas de cabealhos, uma linha em branco obrigatria finalizando o cabealho e por fim o corpo da mensagem, opcional em determinados casos. Nessa seo sero apresentados os campos que compem uma mensagem mais detalhadamente; ou seja, o HTTP apresenta o stio ou local onde est a pgina da Internet.

Cabe alho da mensagem


O cabealho da mensagem (header) utilizado para transmitir informaes adicionais entre o cliente e o servidor. Ele especificado imediatamente aps a linha inicial da transao (mtodo), tanto para a requisio do cliente quanto para a resposta do servidor, seguido de dois pontos (:) e um valor. Existem quatro tipos de cabealhos que podero ser includos na mensagem os quais so: general-header, requestheader, response-header e entit -header.[6] Esses cabealhos so utilizados para enviar informaes adicionais sobre a mensagem transmitida (general-header), a requisio e os clientes (request-header) que comunicam suas configuraes e os
pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol

[7]

4/13

07/12/11

formatos de documentos desejados como resposta.[7] Alm disso, so utilizados pelo servidor ao retornar o recurso no qual foi requisitado pelo cliente, para transmitir informa es que descrevem as configura es do servidor e do recurso identificado pelo URI de requisio, e que no pertence linha de status (responseheader). Na RFC 2616,[8] esto descritos todos os campos que pertencem a esses cabealhos.

Hypertext Transfer Protocol

Wikipdia, a enciclopdia livre

Corpo da mensagem

Exemplo

Alguns tipos MIME[9] Descri o

text/plain Arquivo no formato texto (ASCII) Uma mensagem Arquivo no formato HTML, utilizado text/html HTTP pode como padro para documentos Web conter um Image/gif Imagem com o formato GIF corpo de Image/jpeg Imagem com o formato JPEG dados que so enviados application/zip Arquivo compactado abaixo das linhas de cabealho. Em uma mensagem de resposta, o corpo da mensagem o recurso que foi requisitado pelo cliente, ou ainda uma mensagem de erro, caso este recurso no seja possvel. J em uma mensagem de requisio, o corpo pode conter dados que sero enviados diretamente pelo usurio ou um arquivo que ser enviado para o servidor. Quando uma mensagem HTTP tiver um corpo, podero ser includos cabealhos de entidades que descrevem suas caractersticas, como por exemplo, o Content-T pe que informa o tipo MIME dos dados no corpo da mensagem e o Content-Length que informa a quantidade de bytes que o corpo da mensagem contm. A tabela ao lado apresenta alguns tipos MIME.

Requisi o
De acordo com Fielding,[10] uma mensagem de requisio do cliente
pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol 5/13

07/12/11

Hypertext Transfer Protocol

Wikipdia, a enciclopdia livre

composta pelos seguintes campos: uma linha inicial (Request-Line); linhas de cabealhos (Request-header); uma linha em branco obrigat ria e um corpo de mensagem opcional. A linha inicial de uma requisio composta por trs partes separadas por espaos: o mtodo (Method), a identificao do URI (Request-URI) e a verso do HTTP (HTTPVersion) utilizado. Segundo Bastos & Ladeira,[11] Request-URI um identificador uniforme de recurso (Uniform Resource Identifier) que identifica sobre qual recurso ser aplicada a requisio. No protocolo HTTP, o tipo de URI utilizado chamado de URL (Uniform Resource Locater), composto pela identificao do protocolo, pelo endereo do computador servidor e pelo documento requisitado.[12]

M todos
O protocolo HTTP define oito mtodos que indicam a ao a ser realizada no recurso especificado. Conforme Bastos e Ladeiras,[13] o mtodo determina o que o servidor deve fazer com o URL fornecido no momento da requisio de um recurso. Um servidor HTTP deve implementar ao menos os mtodos GET e HEAD.
GT E

Solicita algum recurso como um arquivo ou um script CGI (qualquer dado que estiver identificado pelo URI) por meio do protocolo HTTP. Por exemplo, segue abaixo uma comunicao entre um cliente e um servidor HTTP. O servidor possui a URL . e p o c m porta 80. e ml.o, O pedido do cliente (seguido por uma linha em branco, de maneira que o pedido termina com um ne line duplo, cada um composto por um carriage return seguido de um Line Feed):
GT/ne.tlHT/. E id hm TP11 Hs: ot . epocm e ml.o

pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol

6/13

07/12/11

Hypertext Transfer Protocol

Wikipdia, a enciclopdia livre

O cabealho H s reconhece vrios diferentes nomes DNS que tenham ot o mesmo IP. A resposta do servidor (seguida por uma linha em branco e o texto da pgina solicitada):
HT/. 20O TP11 0 K Dt:Mn 2 M 20 2:83 GT ae o, 3 a 05 23:4 M Sre:Aah/..7(n ) (e-a/iu) evr pce132 Ui RdHtLn Ls-oiid Wd 0 Jn20 2:15 GT atMdfe: e, 8 a 03 31:5 M Ea:"f0-b-ec0b tg 38f1631b3" Acp-ags bts cetRne: e CnetLnt:48 otn-egh 3 Cneto:coe oncin ls CnetTp:t thm;castUF8 otn- e e /tl hre=T-

HA ED

Variao do G Tem que o recurso no retornado. usado para obter E metainformaes por meio do cabealho da resposta, sem ter que recuperar todo o conte do.
PS OT

Envia dados para serem processados (por exemplo, dados de um formulrio HTML) para o recurso especificado. Os dados so includos no corpo do comando. Sua utilizao em uma requisio ocorre quando necessrio enviar dados ao servidor para serem processados, geralmente por um programa script identificado no Request-URI. Uma requisio por meio desse mtodo sempre requer que as informaes submetidas sejam includas no corpo da mensagem e formatadas como uma quer string, alm de conter cabealhos adicionais especificando seu tamanho (C n e t L n h ) e seu formato (C n e t T p ). Por isso, otn-egt otn- e esse mtodo oferece uma maior segurana em relao aos dados transferidos, ao contrrio do mtodo G Tque os dados so anexados a E URL, ficando visveis ao usurio.[14] Por exemplo:
PS /ne.tlHT/. OT id hm TP10 Acp:t thm cet e /tl I-oiidsne St 2 Ot19 1:33 GT fmdfe-ic: a, 9 c 99 94:1 M
pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol 7/13

07/12/11

Hypertext Transfer Protocol

Wikipdia, a enciclopdia livre

CnetTp:apiain otn- e plcto/ CnetLnt:4 otn-egh 1

-omulnoe fr-recdd

Nm=oeesaIae9&us=optco oeNmPso&dd=9CroCmuaa

PT U

Envia certo recurso.


DLT EEE

Exclui o recurso.
TAE RC

Ecoa o pedido, de maneira que o cliente possa saber o que os servidores intermedirios esto mudando em seu pedido.
OTOS PIN

Recupera os mtodos HTTP que o servidor aceita.


CNET ONC

Serve para uso com um pro que possa se tornar um t nel SSL (um t nel pode ser usado, por exemplo, para criar uma conexo segura).

Resposta
Para Fielding,[15] uma mensagem de resposta do servidor composta pelos seguintes campos: uma linha inicial (Status-Line); linhas de cabealhos (Responseheader); uma linha em branco obrigatria e um corpo de mensagem opcional. A linha inicial de uma resposta, chamada de linha de status, possui por sua vez trs partes separadas por espaos: a verso do protocolo HTTP (HTTP-Version), um cdigo de status (Status-Code) da resposta, que fornece o resultado da requisio, e uma frase de justificativa (Reason-Phrase) que descreve o cdigo do status.

C digos de retorno
pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol 8/13

07/12/11

Hypertext Transfer Protocol

Wikipdia, a enciclopdia livre

A linha inicial de uma resposta HTTP indica ao cliente se sua requisio foi bem sucedida ou no.[16] Essa situao fornecida atravs de um cdigo de retorno (Status-Code) e uma frase explicativa (ReasonPhrase). De acordo com Fielding,[17] o cdigo de status formado por trs dgitos e o primeiro dgito representa a classe que pertence classificada em cinco tipos: 1 : Informational (Informao) utilizada para enviar informaes para o cliente de que sua requisio foi recebida e est sendo processada; 2 : Success (Sucesso) indica que a requisio do cliente foi bem sucedida; 3 : Redirection (Redirecionamento) informa a ao adicional que deve ser tomada para completar a requisio; 4 : Client Error (Erro no cliente) avisa que o cliente fez uma requisio que no pode ser atendida; 5 : Server Error (Erro no servidor) ocorreu um erro no servidor ao cumprir uma requisio vlida. O protocolo HTTP define somente alguns cdigos em cada classe descritos na RFC 2616, mas cada servidor pode definir seus prprios cdigos.

Conex es
Segundo Hirata,[18] o HTTP/1.0 um protocolo sem estado. Isto significa que as conexes entre um cliente e um servidor so encerradas aps o envio de cada requisio ou resposta. Cada vez que uma conexo estabelecida ou encerrada, consumida uma grande quantidade de tempo da CPU, de largura de banda e de memria. Na maioria das vezes, para se obter o resultado esperado, necessrio realizar mais de uma solicitao de recursos atravs de vrias conexes. Por exemplo, no caso de uma pgina Web, que consiste de diversos arquivos (.html, .gif, .css, etc) preciso que sejam feitas vrias requisies para compor a pgina, uma conexo no-persistente. O ideal
pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol 9/13

07/12/11

Hypertext Transfer Protocol

Wikipdia, a enciclopdia livre

seria que apenas uma conexo fosse utilizada para os pedidos e as respostas HTTP, diminuindo, assim, a sobrecarga ocasionada pelas conexes, uma conexo persistente. A conexo persistente, implementada como conexo padro no protocolo HTTP/1.1, possibilita que uma conexo seja estabelecida para enviar vrias requisies em seq ncia sem a necessidade de esperar por cada resposta, no qual sero recebidas na mesma ordem em que as solicitaes foram enviadas, um processo chamado de i elining.[19] Pode tambm dar-se o caso de ser estabelecida uma conexo sem i elining, em que o cliente s faz nova requisio quando o servidor lhe envia a resposta, ou seja, o servidor fica inactivo at o objecto (.html, .gif, .css, etc) atingir o seu destino no cliente. Se uma requisio incluir o cabealho C n e i n c o e a conexo onc o: l , ser encerrada aps o envio da resposta correspondente. Utiliza-se este cabealho quando no h suporte a conexes persistentes, quando for a ltima requisio a ser enviada nesta conexo, ou ainda, sempre que quiser encerrar a conexo mesmo que nem todas as requisies tenham sido completadas. Alm disso, o servidor pode fechar uma conexo se estiver ociosa por um determinado perodo de tempo.

Outros protocolos
Existem outros tipos de protocolos como o FTP (File Transfer Protocol, ou Protocolo de Transferncia de Arquivos), usado para envio de arquivos do computador para um servidor na Web, o SMTP (Simple Mail Transfer Protocol, ou Protocolo de Transferncia de Correio Simples), protocolo usado para correio eletrnico, entre outros protocolos.

Esquema de comunica o
Pedido bsico de HTTP cliente-servidor:
pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol 10/13

07/12/11

Hypertext Transfer Protocol

Wikipdia, a enciclopdia livre

GT<ihio HT/. E fcer> TP11 Hs:<p ot i> Ue-gn:<gne srAet Aet> Cneto:<io oncin tp>

O agente quem faz a ligao ao servidor, normalmente um navegador. O tipo indica como o servidor deve proceder com a conexo. comumente utilizado para requisies persistentes. Uma requisio completa pode exigir muitas informaes. A requisio abaixo - utilizando o mtodo POST - fora retirada do Mozilla Firefox v3.6b5 (pt-BR, para Windows):

PS /ieoi/ruv.tlHT/. OT drtroaqiohm TP11 Hs:wweepocm ot w.xml.o Ue-gn:M il/. (idw;U WnosN 61 p-R r:..b)Gco2 srAet o la50 Wnos ; idw T .; tB; v1925 ek/ Acp:tx/tlapiainxtlxlapiainxlq09**q08 cet ethm,plcto/hm+m,plcto/m;=.,/;=. Acp-agae p-rp;=.,nu;=.,nq03 cetLnug: tb,tq08e-sq05e;=. Acp-noig gi,elt cetEcdn: pdfae Acp-hre:IO85-,t-;=.,;=. cetCast S-891uf8q07*q07 Ke-lv:15 epaie 1 Coi:nm=ao;nm2vlr oke oevlr oe=ao2 Cneto:ke-lv oncin epaie CnetLnt:2 otn-egh 8 uuroeeposna135 sai=xml&eh=246

Ver tamb m
Lista de cdigos de status HTTP

Notas
1. 2. 3. 4. 5. 6. T. Berners-Lee et all, 1996 Fielding et al 1999, p. 7 Fielding et al (1999, p. 10) Foscarini (2001, p. 13) Fielding et al, 1999, p. 21 cf. Fielding et al, 1999, p. 21
11/13

pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol

07/12/11

Hypertext Transfer Protocol

Wikipdia, a enciclopdia livre

7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.

cf. Bastos & Ladeira, 2001 cf. Fielding et al, 1999 Fonte: Fielding et al, 1999 Fielding (1999, p. 24) Bastos & Ladeira cf. Embratel, 2002 Bastos & Ladeiras (2001) Herrmann, 1997 Fielding et al (1999, p. 26) cf. Herrman, 1997, p. 53 Fielding et al (1999, p. 37) Hirata, 1999 cf. Fielding et al, 1999, p. 30

Referncias
T. Berners-Lee, R. Fielding, H. Frystyk (maio de 1996). H perte t Transfer Protocol -- HTTP/1.0 (http:// .rfc-editor.org/cgibin/rfcdoct pe.pl?loc=RFC&letsgo=1945&t pe=ftp&file_format=t t) (em ingls). Internet Engineering Task Force. Pgina visitada em 21 de junho de 2009. BASTOS, Leonara de Oliveira; LADEIRA, Adriane Cristina. Protocolo HTTP. cf. 46 HERRMANN, Eric. Aprenda em 1 semana programao CGI em Perl 5. Rio de Janeiro: Campus, 1997

Liga es externas
Desenvolvimento do protocolo HTTP (http://www.w3.org/Protocols/) (em ingls) Obtida de "http://pt.wikipedia.org/w/index.php? title=Hypertext_Transfer_Protocol&oldid=27394647" Categorias: Protocolos Internet Web Esta pgina foi modificada pela ltima vez (s) 03h11min de 26 de
pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol 12/13

07/12/11

Hypertext Transfer Protocol

Wikipdia, a enciclopdia livre

outubro de 2011. Este texto disponibilizado nos termos da licena AtribuioPartilha nos Mesmos Termos 3.0 no Adaptada (CC BY-SA 3.0); pode estar sujeito a condi es adicionais. Consulte as condi es de uso para mais detalhes.

pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol

13/13

S-ar putea să vă placă și