HTTP é o protocolo que permite web servers e browsers enviarem e receberem dados através da internet. É um protocolo de requisição e resposta -- o cliente faz a requisição e o servidor dá a resposta ao cliente. HTTP usa confiáveis conexões TCP, por default na porta 80. A primeira versão do HTTP foi HTTP/0.9, e depois atualizada para a versão HTTP/1.0. A versão atual está em HTTP/1.1.
Em HTTP o cliente sempre inicializa uma transação ao estabelecer a conexão e enviar uma requisição HTTP. O servidor não tem o controle para fazer uma conexão de retorno para o cliente. O cliente ou o servidor pode encerrar prematuramente uma conexão, como por exemplo, ao usar o browser, você pode clicar no botão parar e consequentemente parar o processo de atualização de uma pagina, assim finalizando a conexão HTTP com o web server.
Requisições HTTP
Uma requisição HTTP consiste em três componentes:
- Cabeçalho da mensagem
- Corpo da mensagem
- Requisição
POST /servlet/default.jsp HTTP/1.1
Accept: text/plain; text/html
Accept-Language: en-gb
Connection: Keep-Alive
Host: localhost
Referer: http://localhost/ch8/SendDetails.htm
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)
Content-Length: 33
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
LastName=Magalhaes&FirstName=Guilherme
A requisição aparece na primeira linha:
POST /servlet/default.jsp HTTP/1.1
Onde o POST é o método da requisição , /servlet/default.jsp representa a URI e HTTP/1.1 representa a versão do protocolo.
Cada requisição HTTP pode usar um dos muitos métodos de requisição existente, a versão HTTP/1.1 suporta sete tipos de requisição: GET, POST, HEAD, OPTIONS, PUT, DELETE e TRACE. GET e POST são os mais usados em aplicações na internet.
A URI é geralmente interpretado como sendo o diretório relativo de raiz do servidor. Assim, ele deve sempre começar com uma barra (/). Uma URL é um tipo de URI.
O cabeçalho da mensagem contem informações importantes sobre o ambiente de trabalho do cliente e sobre o corpo da mensagem. Por exemplo, pode conter a língua para qual o browser está definido, o comprimento do corpo da mensagem, e assim por diante.
No exemplo de requisição que vimos, foi apresentado o valor dentro do corpo da requisição HTTP:
LastName=Magalhaes&FirstName=Guilherme
O valor normalmente é maior em uma requisição normal.
Respostas HTTP
Similar as requisições, uma resposta HTTP consiste em três componentes:
- Status-protocolo Descrição-código
- Cabeçalhos de resposta
- Corpo da entidade
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Mon, 3 Jan 1998 13:13:33 GMT
Content-Type: text/html
Last-Modified: Mon, 11 Jan 1998 13:23:42 GMT
Content-Length: 112
<html>
<head>
<title>HTTP Response Example</title></head><body>
Welcome to Brainy Software
</body>
</html>
A primeira linha do cabeçalho é similar a primeira linha do cabeçalho da requisição. A primeira linha fala sobre a versão do protocolo que é HTTP/1.1, a requisição sucedida (200 = sucesso), e que tudo foi OK.
O cabeçalho de resposta contêm informações úteis semelhante aos cabeçalhos na requisição. O corpo da entidade da resposta é o conteúdo HTML da própria resposta. O cabeçalho e o corpo entidade são separadas por uma sequência de CRLFs.
Otimo post...
ResponderExcluirGostaria de saber mais sobre os codigos de resposta das requisições, tais como a 200 que você ja mostrou, 404, 500... se souber todas as existentes posta ai, seria legal saber sobre todas... valew
eu sei uma que é "4" é que parece que não deu certo,tem em objeto ajax.da uma procurada nele.
ExcluirDesculpa a demora Chinnon. Segue uma URL com todos os erros de requisição http:
Excluirhttp://www.macoratti.net/http_err.htm