我在Windows 7(客户端)上使用.NET 4.5对嵌入式系统(服务器)上运行的lighttpd进行https调用。
第一个 https 请求比后续请求慢 +-120 毫秒。第一个请求速度较慢是正常的,因为连接已设置,其他请求重用现有连接。
当我查看Wireshark时,我看到以下TLSv1消息:
client -> server: Client Hello
server -> client: Server Hello, Certificate, Server Hello Done
client -> server: Client Key Exchange, Change Cipher Spec, Finished
server -> client: Change Cipher Spec, Finished
此设置过程大约需要 25 毫秒。
然后,Windows机器发送http请求需要80ms。
client -> server: Http Request
问题
为什么Windows机器需要80ms才能发出请求?我可以减少这种延迟吗?
注意如果我在同一台机器上使用Qt 5.2(使用OpenSSL)发送请求,设置过程大约需要55ms,Http请求在1ms内发送。
(回答我自己的问题)
在此期间,.NET 将验证服务器证书。验证包括验证名称和将证书链接到系统受信任的根 CA。
时间不能缩短。