Na dura e contínua luta para conseguir a certificação MCSD.NET, estou eu aqui no Curso 2524 (Developing XML Web Services Using Microsoft ASP.NET), no qual aprendi algumas coisas legais sobre protocolos que ainda não sabia e tentarei colocar aqui de forma clara para que possa ajudar algumas pessoas que ainda não conhecem.
Para começar, mostrarei a sintaxe de uma URL:
http://host[:porta][path[?QueryString]]
Para ilustrar um exemplo prático:
http://www.projetando.net/Search.aspx?ProdutoID=1
Quando a porta não é informada, a porta padrão é utilizada, que na maioria das vezes é a porta 80.
Abaixo a estrutura do HTTP Request e Response:
REQUEST (Via Post):
—————————————————————
Post /Search.aspx HTTP/1.1
Host: http://www.projetando.net
Content-Type: application/x-www-form-urlencoded
Content-Length: 11
ProdutoID=1
—————————————————————
REQUEST (Via Get):
—————————————————————
GET /Search.aspx?ProdutoID=1 HTTP/1.1
Host: http://www.projetando.net
—————————————————————
Um detalhe interessante é que quando a requisição é através de Post, o conteúdo irá dentro do corpo da Mensagem. Quando a solicitação é feita através do método Get, os dados são anexados à URL. Mas com isso devemos ter cuidados especiais, já que o valor é restrito à 1024 bytes e deixa os dados visíveis.
RESPONSE:
—————————————————————
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Lenght: 75
—————————————————————
Abaixo a estrutura do Request e Response, respectivamente:
Método URL Versão
Cabeçalho
Linha em Branco *
Corpo da Mensagem
Versão Código de Status Descrição
Cabeçalho
Linha em Branco *
Corpo da Mensagem
* Repare que nos dois casos há uma Linha em Branco. Esta linha serve para separar o Cabeçalho do Corpo da Mensagem.