最近用C#在做一个模拟浏览器接收https网站数据的工具,遇到问题卡了几天,请大神指教,不胜感激,所有分数送上。
抓包工具fiddler抓取浏览器访问https网站数据时,会先有一个http的握手包(大概是验证证书、密钥等),然后才是https数据包。
如图所示灰色行:浏览器发送的这个握手包的头部大概是这样的:
CONNECT www.hao123.com:443 HTTP/1.1
Host: www.hao123.com:443
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below.c#用HttpWebRequest发送的握手包就没有 User-Agent 这一项,查遍了资料,大概理解为这个握手的动作是底层ssl封装的,在.net框架中并没有接口去写它?
注意我指的刚开始握手时http协议的connect这个包,并不是握手成功后https协议的get、post那些包。
请各位大神多多指教,小弟在这里谢谢了。不胜感激。
如果这是c#的天生缺陷,请大家给提供一个解决问题的方向,谢谢了……