Quando um usuário do seu site abre página, o navegador envia uma solicitação e a envia usando o protocolo HTTP para o servidor. O servidor direciona essa solicitação HTTP para sua aplicação.
HTTP (HTTP é a abreviação de Hyper Text Transfer Protocol) -- um protocolo para transferência de dados na forma de documentos de hyper text (páginas da web). HTTP é na baseado na tecnologia de cliente-servidor: o cliente inicia uma conexão e envia uma solicitação ao servidor da Web, e o servidor aguarda por uma conexão, realiza o necessário ações e retorna de resposta de volta.
Portanto, o principal objetivo de qualquer aplicação Web é manipular a solicitação HTTP e produzindo uma resposta HTTP contendo o código HTML da página solicitada. A resposta é enviada pelo servidor web para o navegador cliente e o navegador exibe página da web na tela.
Segue abaixo, uma solicitação HTTP típica:
GET http://www.w3schools.com/ HTTP/1.1
Host: www.w3schools.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64)
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US;q=0.8,en;q=0.6
Cookie: __gads=ID=42213729da4df8df:T=1368250765:S=ALNI_MaOAFe3U1T9Syh;
(empty line)
(message body goes here)
A solicitação HTTP acima consiste em três partes:
A linha inicial (linha 1 1) especifica o metodo da solicitação (pode ser GET ou POST), e a URL exibe a versão do HTTP que é usado.
Cabeçalhos opcionais (linhas 2-8) caracterizam a mensagem, os parâmetros de transmissão e fornecem outras meta-informações.7 No exemplo acima, cada linha representa um único cabeçalho na forma de name:value .
O corpo da mensagem é opcional e contém dados da mensagem. Ele é separado dos cabeçalhos com uma linha em branco
Os cabeçalhos e o corpo da mensagem podem estar ausentes, mas a linha de partida é sempre presente na solicitação, porque indica seu tipo e URL.
Os cabeçalhos e o corpo da mensagem podem estar ausentes, mas a linha de partida é sempre presente na solicitação, porque indica seu tipo e URL.
A resposta do servidor para o pedido acima é apresentada abaixo:
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
Set-Cookie: ASPSESSIONIDQQRBACTR=FOCCINICEFAMEKODNKIBFOJP; path=/
X-Powered-By: ASP.NET
Date: Sun, 04 Aug 2013 13:33:59 GMT
Content-Length: 8434
(empty line)
(page content follows)
Como você pode ver acima, a resposta HTTP tem quase o mesmo formato da solicitação:
A linha inicial (linha 1) representa a versão do protocolo HTTP, código de status da resposta e mensagem (200 OK).
Cabeçalhos opcionais (linhas 2-10) fornecem várias informações meta sobre a resposta.
O corpo da mensagem opcional segue os cabeçalhos e deve ser separado dos cabeçalhos por uma linha vazia. O corpo da mensagem normalmente contém o código HTML do solicitado página da web.