Clique aqui para ler todos os artigos desta edição
FAQ
Integridade de dados em HTTP, IIS Credentials, DataGrids
por Nancy Michell
Este artigo discute |
Este artigo usa as seguintes tecnologias: |
·Dicas sobre Web Applications |
.NET
Download: |
Chapéu ASP.NET |
|
Pergunta: Se eu estabelecer uma conexão Web usando HttpWebRequest e, em seguida, ler os dados de HttpWebResponse.GetResponseStream, sei que ela falhará se a conexão com a Internet cair, mas preciso me preocupar com a perda de pacotes de dados se a leitura dos dados HttpWebResponse.GetResponseStream tiver finalizado sem erros? O protocolo/transporte subjacente trata da recuperação do pacote de dados perdido e de outros problemas?
Resposta: Sim, o HTTP é baseado no TCP/IP, que cuida de todas as retentativas e da integridade dos dados por você. Dito isto, existem várias maneiras em que ele poderia falhar na entrega do arquivo. Por exemplo, se o servidor estiver usando HTTP 1.0 e utilizar um cabeçalho "Content-Close" no lugar de "Content-Length", o socket poderá ser fechado antes de o arquivo ter sido completamente enviado. O objeto HttpWebRequest não gerará um erro porque o servidor disse "Eu fecharei isso quando tiver terminado" e a conexão foi encerrada, por isso a operação foi totalmente legal." [...] continue lendo...