- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Delv 2010,来自Svn的Last Indy源代码。
有谁知道我该如何强制TIDHttpServer发送HTTP 1.0响应,而不是发送HTTP 1.1?
我想摆脱持久连接(保持 Activity ),并且我希望客户端从服务器断开连接,而不是服务器从客户端断开连接(以避免服务器中的TIME_WAIT)。
一些数据:
客户端发出的请求(在本例中为Internet Explorer):
GET/HTTP/1.0
接受:/
接受语言:pt-BR
用户代理:Mozilla/4.0(兼容; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0 ; InfoPath.3; .NET4.0C; .NET4.0E)
主机:本地主机:114
连接:保持 Activity
我的Indy服务器的响应:
HTTP/1.1 200确定
连接方式:关闭
内容类型:text/html;字符集= ISO-8859-1
内容长度:2717
如您所见,客户端明确地告诉服务器使用http 1.0,但indy服务器的响应为http 1.1。
编辑:
我发现最好的解决方案是在OnCommandGet事件中进行设置:
AResponseInfo.CloseConnection:= False;
AResponseInfo.Connection:='关闭';
AResponseInfo.CloseConnection:= False使服务器不与客户端断开连接,而Connection:='close'使客户端与服务器断开连接,从而避免服务器TIME_WAIT。
最佳答案
在IdCustomHTTPServer.pas中
版本字符串“HTTP/1.1”在TIdHTTPResponseInfo.WriteHeader
方法中进行了硬编码。
此类没有工厂可以覆盖,因此可以使用后代版本更改其行为。它是在TIdCustomHTTPServer.DoExecute
中明确创建的
但是,由于您确实有源,因此您可以将硬编码字符串更改为“HTTP/1.0”,或更改其行为以基于属性设置进行响应。
同样设置IdHttpServer.KeepLive := False;
将停止持久性 session ,但确实会导致服务器在请求结束时断开与客户端的连接。
关于delphi - 强制Http 1.0 idHttpServer和TIME_WAIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5082546/
我遇到了一个网络服务器问题,该服务器从我公司生产的设备接收信号。设备偶尔会重用它刚刚使用过的源端口。这会导致 SYN 被服务器丢弃。然后设备会重试,直到旧套接字超出服务器上的 TIME_WAIT 时间
我正在尝试避免客户端出现 TIME_WAIT。我连接然后设置 O_NONBLOCK 和 SO_REUSEADDR。我调用 read 直到它返回 0。当 read 返回 0 时,errno 也为 0。我
我正在尝试解析主机名,然后打开/关闭与主机的套接字。 下面的代码工作正常。我遇到的问题是连接似乎没有正确关闭。我只剩下一堆 TIME_WAITS: tcp 0 0 192.16
当我在现场检查 mysql 加载时间时。我得到的结果显示连接为 TIME_WAIT。即使我关闭了每一页上的连接。有时网站不会加载说连接太多。有什么办法可以解决这个问题? 提前感谢您的任何回复或建议 最
我试图通过设置 tcp_fin_timeout 来减少连接处于 TIME_WAIT 状态的时间 详细 here : root:~# sysctl -w net.ipv4.tcp_fin_timeout
我在 C# 中有一个 TCP 隧道。我需要打开和关闭隧道,这是我在服务器和客户端之间的应用程序。我正在使用它来关闭数据连接以测试另一个应用程序。我必须使用特定的端口。 根据我等待重新连接的时间长短,在
我正在尝试避免客户端出现 TIME_WAIT。我连接然后设置 O_NONBLOCK 和 SO_REUSEADDR。我调用 read 直到它返回 0。当 read 返回 0 时,errno 也为 0。我
这个问题在这里已经有了答案: Bind error while recreating socket (4 个答案) 关闭 8 年前。 我知道您会将其掩盖为重复项(question1、question
我设置了一个 TCP 服务器/客户端,它们按照我通常想要的方式进行通信。 我现在想做的是添加允许客户端在连接丢失后自动重新连接到服务器的功能。我无法在线找到有关如何执行此操作的完整信息。 详细信息:-
我开发了一个包含 tcp 服务器的服务。 当我重新启动我的应用程序时,有时我的应用程序无法绑定(bind) TIME_WAIT 的端口原因。 在我的应用程序中,我想在绑定(bind)失败时添加一个过程
我们有一个使用 Apache mod 代理的相当繁忙的网站(每天 100 万页浏览量),该代理在 TIME_WAIT 状态下不断因连接(>1,000)而过载。连接到端口 3306 (mysql),但
在以下情况下,当 TIME_WAIT 中的套接字收到一个段时会发生什么 a) 当它收到丢失的ACK时 b) 当发送节点想要使用服务器上的相同 src_ip:src_port 与服务器已经具有 TIME
假设我有一台服务器运行日间服务。 然后我用telnet连接这个白天服务器,服务器发送时间数据并关闭连接,现在,因为服务器是主动关闭端,应该进入TIME_WAIT状态。 那么,为什么我可以在最后一次 t
我已阅读相关问题: What is the cost of many TIME_WAIT on the server side? 但我还是迷路了。我们有两台应用服务器和一台数据库服务器(都是云服务提供
因此,我在一台服务器上有应用程序 A,它每秒向另一台服务器上的应用程序 B 发送 710 条 HTTP POST 消息,该服务器正在监听单个端口。连接不是保持事件的;他们关门了。 几分钟后,应用程序
我正在编写一个简单的 HTTP 服务器并了解 TIME_WAIT。繁重环境中的真实 Web 服务器如何处理来自数千个用户的请求,而不会在处理请求后所有套接字都卡在 TIME_WAIT 中? (不询问保
我们正在尝试调整一个应用程序,该应用程序通过 TCP 接受消息并且还使用 TCP 进行某些内部消息传递。在负载测试时,我们注意到随着对系统同时发出更多请求,响应时间显着降低(然后完全停止)。在此期间,
我们将 haproxy 1.3.26 托管在配备 2.13 GHz Intel Xeon 处理器的 CentOS 5.9 机器上,该处理器充当众多服务的 http 和 tcp 负载均衡器,峰值吞吐量约
我正在尝试在 GCP 上设置 Aerospike 集群。我正在使用 Core OS 和 Docker 来运行 Aerospike 守护进程。 我在 aerospike.conf 中为 as-node-
我们使用 Apache 服务器作为前端服务器,使用 Tomcat 服务器作为后端。前端客户端是一个 java swing 应用程序。该协议(protocol)是粗麻布的。 有时我们会收到很多小请求。当
我是一名优秀的程序员,十分优秀!