程序要下载“http://www.infzm.com/voice”这个页面的时候执行到图1-1红框那段代码的时候html
提示:服务器提交了协议冲突.Section=ResponseHeader Detail=CR 后面必须是LF服务器
图1-1.net
若是你的是C#编写的程序,能够在config文件中加入图1-2红框中的代码,问题解决了。解决办法来源:“http://blog.csdn.net/mingwar/article/details/5870431”htm
图1-2blog
百度了一下CR与LFget
CR等于回车(\r),LF等于换行(\n)it
在HTTP协议中HTTP Header请求信息中的每一行都必须是在CRLF来结束。io
服务器检测到你提交的请求不符合HTTP协议的这个规定,因此拒绝了你的请求。百度
在“HTTP Header 详解”这篇文章中大概了解到http header内容的大致分为Request和Response两部分。下载
又在“深刻理解HTTP协议”中的“1.6头域”章节的配图四、5中了解到不管是http header的请求(Request)信息,仍是响应信息(Response)信息都必须遵循“CRLF结束”这个规定。
因此就很好奇到底是哪个部分产生出了不符合HTTP协议的格式的信息,是在http header的请求(Request)部分,仍是响应信息(Response)部分呢?
是我提交的header的格式没有按照“CRLF结尾”的规定,仍是服务器根据我提交的heaer所产生的响应header没有按照“CRLF结尾”的规定?
从图1-1中异常信息中的关键字是ResponseHeader,经过这个关键字我找到了“HTTP Response Header Fields”
未完待续。。。。对HTTP协议有点兴趣了,哈哈 前不久我还买了本《HTTP权威指南》,我以为这本书应该能解答我一点疑问,就算不能,也能让我对HTTP协议的一些细节有个大概的了解,惋惜恰好遇到这个问题的时候,这本书不在身边。