我有一台处理http
和https
请求的服务器。
客户端和服务器之间的常见例程基于两个请求:
1)用户请求带有网址的文件,例如:
2)服务器对响应标头进行一些检查并重定向到新的URL:
location: https://example.com/files/10.zip
3)浏览器在重定向到新网址后,请求文件:
https://example.com/files/10.zip
4)服务器在响应流中发送文件“10.zip”:
ResponseInfo.ContentStream := TFileStream.Create('C:\10.zip', fmOpenRead or fmShareDenyNone);
所有例程都有两个请求(1,4),因此我禁用了session和keepAlive:
IdHTTPServer.KeepAlive := False;
IdHTTPServer.AutoStartSession := False;
IdHTTPServer.SessionState := False;
我认为只有多次往返才能保持活力,这对于我的用户使用http时的情况似乎是一个好主意,但是,当用户使用https时,这可能不是一个好主意,因为每个请求都没有KeepAlive是一个新请求,HTTPS连接的初始设置成本要高得多。
在IdHTTPServer
上启用KeepAlive对我的方案有哪些性能优势?
Apache 2.4的默认KeepAliveTimeout为5秒。对于IndyServer来说,这是一个很好的值,只需几秒钟?