Muitas vezes nao sera necessario depurar o HTTP, talvez alguns desenvolvedores experientes nem conhecam como efetivamente e uma mensagem HTTP de requisicao ou resposta. Mas acho importante este conhecimento ou saber que existe meios para analisa-las.Recentemente a Google fez uma analise de requisicoes feitas ao se logar no Gmail. Nesta analise eles usaram diversos programa como o Httpwatch, WireShark, Fiddler e outros internos. Com esta analise eles otimizaram bastante o desempenho desta funcionalidade! A ideia aqui e mostrar apenas o Fiddler, que e um HTTP Debugging Proxy, ou em portugues Proxy para depurar HTTP.O Fiddler e gratis e pode ser baixado na secao baixar arquivos de seu site. Sera necessario a instalacao do .NET framework 2.0. Como ele e um proxy, pode ser usado por diversos programas clientes, como os navegadores Internet Explorer e o Firefox.Existe um video introdutorio excelente sobre o Fiddler, que pode ser baixado neste endereco:http://www.fiddlertool.com/fiddler/help/video/FiddlerQuickStart.wmvEste video explica desde sua instalacao ate a utilizacao de diversos de seus recursos. De qualquer forma continuarei abaixo mostrando algumas de suas funcionalidades.Depois de instalado o Fiddler podera ser iniciado atraves no Internet Explorer, veja na imagem 1Imagem 1 - Abrindo o FiddlerAo acionar o Fiddler da maneira acima e feito duas coisas, o programa e aberto e e configurado no Internet Explorer o proxy. E e assim que o fiddler funciona, como ele virou o proxy de nossa aplicacao ele recebe todas as requisicoes e respostas feitas pelo Internet Explorer. Assim ele faz o log de TUDO que e trafegado. Veja a configuracao do proxy na imagem 2:Imagem 2 - Configuracao do proxy no Internet ExplorerAgora vamos usar o Fiddler, ao requisitar um endereco, por exemplo este:http://clienteweb.blogspot.com/2008/07/arquitetura-webhttp-parte-3.htmlO Fiddler ira mostrar em seu painel esquerdo(Web Sessions) as diversas requisicoes/respostas feitas para recuperar os recursos daquela url. Pode nao ser apenas uma unica requisicao/resposta porque um HTML pode ter internamente varias imagens ou hiperlinks para outros HTMLs e cada hiperlink e necessario fazer outras requisicoes.Na imagem 3, estamos analisando a primeira requisicao:Imagem 3 - Analisando uma requisicao no FiddlerVeja que no painel da direita superior e possivel ver os cabecalhos da requisicao, onde ha informacoes como:Metodo e recurso requisitado:GET /2008/07/arquitetura-webhttp-parte-3.html HTTP/1.1Cultura e localizacao(Portugues Brasil):Accept-Language: pt-brNavegador e versao:User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)No painel da direita inferior e possivel ver os cabecalhos da resposta, onde ha informacoes como:Protocolo e codigos de status, neste caso 200 e ok:HTTP/1.1 200 OKInformacoe do servidor:Server: GFE/1.3Repare que nesta visao o Fiddler faz um tratamento das mensagens para formata-las, mas podemos tambem ver as mensagem sem nenhum tratamento, da forma como realmente foram trocadas, basta clicar na guia raw, conforme Imagem 4:Imagem 4 - Analisando toda a requisicaoDesta forma vemos que o cabecalho de resposta e o HTML e separado apenas por caracteres como a quebra de linha.O Fiddler entao e um excelente programa para conhecer as diversas requisicoes feitas para requisitar um determinado recurso. Vale a pena fazer diversas requisicoes para ver como funciona requisicoes HTTPs, redirecionamentos, requisicoes de arquivos que estao