请教一个关于http连接keep alive的问题!

问题描述

server用的是jetty,client用apache的commons-httpclient来执行method 。 目前我知道了 用 method.setRequestHeader("Connection" , "Keep-Alive" or "close") 来控制是否保持连接。 现在没弄懂的地方: 在保持连接的情况下,如何设置自动断开的时间? 比如, 我要设置keep alive 1分钟,如果这期间没有数据的传输,那么就断开连接。 请问该怎么设置? request里设置,还是jetty需要什么改配置?

解决方案

可以在jetty里面设的org.mortbay.jetty.nio.SelectChannelConnector#setMaxIdleTime()方法就是设socket通信的过期时间javaDoc是这样的:Description copied from class: AbstractConnector Set the maximum Idle time for a connection, which roughly translates to the Socket.setSoTimeout(int) call, although with NIO implementations other mechanisms may be used to implement the timeout. The max idle time is applied:When waiting for a new request to be received on a connection When reading the headers and content of a request When writing the headers and content of a response Jetty interprets this value as the maximum time between some progress being made on the connection. So if a single byte is read or written, then the timeout (if implemented by jetty) is reset. However, in many instances, the reading/writing is delegated to the JVM, and the semantic is more strictly enforced as the maximum time a single read/write operation can take. Note, that as Jetty supports writes of memory mapped file buffers, then a write may take many 10s of seconds for large content written to a slow device. Previously, Jetty supported separate idle timeouts and IO operation timeouts, however the expense of changing the value of soTimeout was significant, so these timeouts were merged. With the advent of NIO, it may be possible to again differentiate these values (if there is demand). 所以只需要在xml配置文件里面设定这个值就可以了
解决方案二:
一般服务器apache,tomcat,Resin都有类似的设置

时间: 2024-09-21 19:56:45

请教一个关于http连接keep alive的问题!的相关文章

oracle 连接-请教一个oracle数据库连接的问题

问题描述 请教一个oracle数据库连接的问题 本菜从来没有接触过oracle,最近需要连接oracle数据库,于是从orale官网下载了带有jdk版本的sqldeveloper : Windows 64-bit - zip file includes the JDK 7. 下载后直接运行:sqldeveloper.exe 打开了连接界面,但是连不上数据库. 请问各位大神,我是不是需要作什么配置或者还需要安装其它东西才可以使用sqldeveloper? 解决方案 起码数据库ip端口,用户名,密码

access数据库-请教一个VC++连接ACCESS数据库的问题

问题描述 请教一个VC++连接ACCESS数据库的问题 我用VC连接有密码的ACCESS数据库死活连接不上,密码输入的是绝对正确,如果把密码去掉就连上了,请问是怎么回事呢? 数据库连接字符串如下: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:db11.mdb;Persist security info = FALSE;Jet OLEDB:Database Password=548654"; 解决方案 看上去字符串没啥问题.密码对不上只

oracle-新手请教一个sql查询问题,在线等,谢谢

问题描述 新手请教一个sql查询问题,在线等,谢谢 一张激活表TL_CSU_ACTIVATE_LOG: 一张用户表TV_CSU_USER 现在要查询2014-12to2015-12每月注册的不同类型(T,B,M,D)用户数,如下图: sql 应该怎么写 解决方案 参考Oracle行列转换 因为你的类型是固定的,所以直接查询,如果你的类型不固定,可以参考上面的链接. SELECT TT.Month ,SUM(CASE WHEN TT.TYPE = 'B' THEN Count ELSE 0 END

抓包-请教一个关于fiddlercore证书的问题(本人菜鸟,没有C币。。。)

问题描述 请教一个关于fiddlercore证书的问题(本人菜鸟,没有C币...) 最近找了个开源的fiddlercore学习抓包,自己用winform弄了个浏览器 但是发现连接https的网站时,需要证书,然后就用了fiddler内置的证书 private bool SetSSLCer() { if (Fiddler.CertMaker.rootCertIsMachineTrusted()) return true; BCCertMaker.BCCertMaker a = new BCCert

c++-小弟大一只学了C++现在在自学C#,想请教一个问题

问题描述 小弟大一只学了C++现在在自学C#,想请教一个问题 我现在在做一个简单的棋类游戏,因为赶时间,老师说用C#做界面会简单点,我现在只用C#画了一个界面,什么功能都没有,用C++做内核,请问我该怎么把这个界面和C++连接起来?小弟用的是VS2013,会不会需要其他软件呢?我还什么都不懂,希望大神帮我解答一下,万分感谢! 解决方案 你搜搜托管c++,可以全部用c++的代码写 C#封装UI界面得exe程序,用托管c++封装一个dll,然后托管c++ dll中写你的c++实现 解决方案二: 用C

请教一个数据存储思路。

问题描述 请教一个数据存储思路. 我有几台服务器不停的在产生数据,每秒钟大概有15000条数据,我要把这些数据插入MySQL数据库中,但是现在发现MySQL好像不能胜任,因为数据是在几台服务器上不停产生的,我每台服务器都会向数据库建立一个长连接,大概每台服务器向数据库建立20个长连接,但经常有些数据插入不了,请问一下,这些有没有更好的数据存储思路.. 解决方案 MySql用分布式方式 http://blog.chinaunix.net/uid-25979788-id-3270311.html

请教一个FTP SERVER问题

问题描述 请教一个FTPSERVER问题:我装的win2008std64bit系统,安装了多个FTPServer软件(包括IIS自带的)客户机,都是显示连接成功,无法取得目录列表,win2008std32bit就可以防火墙我加配置了例外的,都是一样的错误.同一个网段的机子可以登录.请问是什么原因,,??谢谢. 解决方案 解决方案二:没有人会这个问题吗?解决方案三:没怎么看懂你的问题.不过就防火墙来说,开放例外未必就会通.例外也有几种模式的,比如一种是仅对同一子网的IP例外,你那种很可能就是这种情

请教一个was上更改数据库端口的问题

问题描述 小弟初学websphere有一个问题请教.was配置连接的数据源的数据库端口原来是1521.然后我的数据库端口改为了1526.我在was的控制台里把连接信息改了.测试的时候也确定数据库连接正确.但是在选中数据源点击"管理状态"看jca生命周期的状态时候发现状态不可用.点击继续报如下错:对于DWLCustomer(jdbc/DWLCustomer)的继续操作失败:J2CA0165I:连接池不可用.连接池是您第一次对数据源或连接工厂执行JNDI查找时创建的.log具体报错:Cau

无线网络连不上只显示找到一个无线宽带连接

现在无线网络比较普及了,笔记本大多也带无线功能,电脑屏幕上显示找到一个无线宽带连接,但无线网络连不上,这种事屡见不鲜,无线网络连不上是怎么回事呢? 问题1 忘记打开浏览器.一些需要付费使用的无线宽带连接必须先打开你的浏览器,如InternetExplorer.Safari或Firefox,有些免费的无线网络也会要求你先打开浏览器.打开浏览器后,你会看到无线宽带连接的网页.在这里你便要输入你的信用卡号或登入你已经存在的帐号. 问题2 没有连上网页.要连上无线网络,你必须要连上特定网页.然而有些人将