- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
HTTP Keep Alive是如何实现的?它在内部使用 TCP Keep Alive 吗?如果不是,服务器如何检测客户端是死是活?
最佳答案
我知道这是一个老问题,但仍然:
HTTP Keep-Alive 是一项允许 HTTP 客户端(通常是浏览器)和服务器(网络服务器)通过同一 TCP 连接发送多个请求/响应对的功能。这减少了第 2、3、... HTTP 请求的延迟,减少了网络流量和类似的。
TCP keepalive 是完全不同的野兽。它通过发送小数据包来保持 TCP 连接打开。此外,当发送数据包时,这用作检查,以便在连接断开时立即通知发送方(请注意,否则情况并非如此 - 在我们尝试通过 TCP 连接进行通信之前,我们不知道它是否正常).
回答您关于 HTTP Keep-Alive 的问题:
How is HTTP Keep Alive implemented?
简而言之,HTTP 服务器不会在每次响应后关闭 TCP 连接,而是在其他 HTTP 请求也过来时等待一段时间。超时后它仍然会关闭它。
Does it internally use TCP Keep Alive?
不,至少我看不出有什么意义。
If not, how does the server detect if the client is dead or alive?
它不需要 - 它不需要。如果客户端发送请求,它将获得响应。如果客户端未通过 TCP 连接发送任何内容(可能是因为连接已死),则超时将关闭连接;客户端当然会注意到这一点,并在需要时通过另一个 TCP 连接发送请求。
关于HTTP Keep Alive 和 TCP Keep Alive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9334401/
HTTP Keep Alive是如何实现的?它在内部使用 TCP Keep Alive 吗?如果不是,服务器如何检测客户端是死是活? 最佳答案 我知道这是一个老问题,但仍然: HTTP Keep-Al
我尝试添加新标题的方法: request.Headers.GetType().InvokeMember("ChangeInternal", BindingFlags.Instance | Bi
我正在尝试实现一个功能来监听 door 1900 并捕获 Activity 消息和设备 ip,我尝试使用我发现的一些库,但我的应用程序一直在尝试启动应用程序时崩溃。 这是我的主要功能 pub
这是我的 haproxy.conf (haproxy 1.7.9) global log 127.0.0.1 local0 defaults retries 3
所以根据haproxy作者的说法,谁知道关于http的一两件事: Keep-alive was invented to reduce CPU usage on servers when CPUs we
我目前正在设计一个系统,我们需要知道用户是否仍然在线/登录。 该系统是基于 .Net 网络的,因此我们打算使用 AJAX/JSONP 代码来执行此操作,该代码每 2 分钟对服务器执行一次 ping 操
我正在为kong编写一个自定义插件。该插件将根据我的服务器转换请求/响应。我得到[info] 27#0: *588 client closed keepalive connection . 经过一番
如果一个网络服务器服务于多个虚拟主机(可以由客户端在HTTP请求头Host中选择)并且支持Keep-Alive,客户端是否允许使用不同的 Host header 通过同一连接发送后续请求? 最佳答
我正在查看 HTTP 1.1 spec 并且正在查看规范中与“Connection” header 相关的部分。我注意到为“连接” header 指定的唯一标记是“关闭”。经过一番挖掘后,我发现许多服
HTTP/1.1 服务器默认使用 Connection header 的 Keep-Alive 设置。为什么那么大多数浏览器是否在他们的请求中包含 Connection: Keep-Alive ,即使
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
据我所知,在 TCP 套接字上保持事件状态有助于了解套接字是否刚刚打开以及两个套接字之间的连接是否实际上处于事件状态。所以,我有几个关于 Winsocks2 中 Keepalive 用法的问题想咨询一
全部, 我有一个网站,该网站使用经典的 ASP 和 Crystal 报表根据用户在网页中的输入(查询后端数据库)生成报告。如果报告运行时间超过 30 分钟,则位于客户端和 Web 服务器之间的防火墙将
基本上,我想让 router-view 中的 2 个组件保持事件状态,并且它可以工作,但是,我不知道我是否做对了。 users 和 data 是路由名称。这是正确的方法吗? keep
我使用 ruby1.9.2p180(2011-02-18 修订版 30909)i686-linux。 Fiber#alive? 返回未定义的错误: fiber = Fiber.new{puts '
我在 macOS 本地主机上运行用 Go (1.12) 编写的客户端和套接字服务器。 服务器在 net.TCPConn 上设置 SetKeepAlive 和 SetKeepAlivePeriod。 客
用过 vue-element-admin 的同学一定很清楚,路由的配置直接关系侧边栏导航菜单的展示,也得益于这种设计思路,几乎大部分后台框架都采用这个方案,当然也包括了我写的 Fantastic-a
在项目开发过程中加载、启动、下载项目难免会用到进度条,如何使用Python实现进度条呢? 这里为小伙伴们分享四种Python实现进度条的库:Progress库、tqdm库、alive-progre
基本上,就是它所说的。 有什么意义? ?这听起来可能很愚蠢,但我认为其目的是缓存与当前未在 DOM 中呈现的组件关联的数据。根据this bug/issue , 专门设计用于在从页面中删除元素时删
Jmeter 中保持事件选项的用途是什么,它的工作原理是什么? 我使用 Jmeter 3.0 进行了性能测试 在我录制的脚本中保持事件选项被选中。 所以我在我的真实测试脚本中使用了保持事件选项 如果我
我是一名优秀的程序员,十分优秀!