S******1 发帖数: 216 | 1 有一个关于apache keep alive 的问题。
如果有一个web server是用apache host的,设置了keep alive为true, 那是不是默认
对于同一个client的multiple api call (even different types of api to the same
web service) 都是share同一个connection, 除了设置外,在程序上如何实现这点呢(
比如用java servlet) ??
还有就是keep alive 是share persistent connection的, 也就是对于同一个client
不会多次创建http连接,那么这里的client是怎么定义的,是一个什么样的scope ? 比
如一个apache website 用了keep alive, 哪一个用户的browser开了多个tab也是同样
share一个连接吗,怎么identify的,原理是什么呢??????? |
c*********e 发帖数: 16335 | 2 web services api call要给username, password之类的,否则谁都可以call那不麻烦
了?
same
呢(
client
【在 S******1 的大作中提到】 : 有一个关于apache keep alive 的问题。 : 如果有一个web server是用apache host的,设置了keep alive为true, 那是不是默认 : 对于同一个client的multiple api call (even different types of api to the same : web service) 都是share同一个connection, 除了设置外,在程序上如何实现这点呢( : 比如用java servlet) ?? : 还有就是keep alive 是share persistent connection的, 也就是对于同一个client : 不会多次创建http连接,那么这里的client是怎么定义的,是一个什么样的scope ? 比 : 如一个apache website 用了keep alive, 哪一个用户的browser开了多个tab也是同样 : share一个连接吗,怎么identify的,原理是什么呢???????
|
g*****g 发帖数: 34805 | 3 Try apache http client
same
呢(
client
【在 S******1 的大作中提到】 : 有一个关于apache keep alive 的问题。 : 如果有一个web server是用apache host的,设置了keep alive为true, 那是不是默认 : 对于同一个client的multiple api call (even different types of api to the same : web service) 都是share同一个connection, 除了设置外,在程序上如何实现这点呢( : 比如用java servlet) ?? : 还有就是keep alive 是share persistent connection的, 也就是对于同一个client : 不会多次创建http连接,那么这里的client是怎么定义的,是一个什么样的scope ? 比 : 如一个apache website 用了keep alive, 哪一个用户的browser开了多个tab也是同样 : share一个连接吗,怎么identify的,原理是什么呢???????
|
S******1 发帖数: 216 | 4
问题没有得到解答啊,如果不用这个是不是默认也是 share connection呢??
【在 g*****g 的大作中提到】 : Try apache http client : : same : 呢( : client
|
g*****g 发帖数: 34805 | 5 Why don't you check its API first?
【在 S******1 的大作中提到】 : : 问题没有得到解答啊,如果不用这个是不是默认也是 share connection呢??
|
b***i 发帖数: 3043 | 6 客户端还不是你可以自己控制吗?
比如,你自己2个线程发tcp,如果共享connection,那么信息回来的时候如何判断是给
谁的呢?如果你有办法判断,就可以共享。如果是浏览器,应该是一个tab对应一个
connection。因为普通的网页实在分不清是是哪个tab请求的。但是你自己写
webservice可以自己规定一些额外信息,自己写client来解决这个问题。
same
呢(
client
【在 S******1 的大作中提到】 : 有一个关于apache keep alive 的问题。 : 如果有一个web server是用apache host的,设置了keep alive为true, 那是不是默认 : 对于同一个client的multiple api call (even different types of api to the same : web service) 都是share同一个connection, 除了设置外,在程序上如何实现这点呢( : 比如用java servlet) ?? : 还有就是keep alive 是share persistent connection的, 也就是对于同一个client : 不会多次创建http连接,那么这里的client是怎么定义的,是一个什么样的scope ? 比 : 如一个apache website 用了keep alive, 哪一个用户的browser开了多个tab也是同样 : share一个连接吗,怎么identify的,原理是什么呢???????
|
S******1 发帖数: 216 | 7
也就是说其实怎么样都有办法实现哪怕是多个tab也可以共享一个链接
【在 b***i 的大作中提到】 : 客户端还不是你可以自己控制吗? : 比如,你自己2个线程发tcp,如果共享connection,那么信息回来的时候如何判断是给 : 谁的呢?如果你有办法判断,就可以共享。如果是浏览器,应该是一个tab对应一个 : connection。因为普通的网页实在分不清是是哪个tab请求的。但是你自己写 : webservice可以自己规定一些额外信息,自己写client来解决这个问题。 : : same : 呢( : client
|
S******1 发帖数: 216 | 8
connection pool, 以前好像在DB也有类似的概念,谢了
【在 g*****g 的大作中提到】 : Why don't you check its API first?
|
c*********e 发帖数: 16335 | 9 不是share一个connection,是有一个connection pool,用完connection之后,放入
connection pool里,下一个connection可以接着用,不用再花时间和资源来建立一个
新的connection.
每个connection用完都要close的。
same
呢(
client
【在 S******1 的大作中提到】 : 有一个关于apache keep alive 的问题。 : 如果有一个web server是用apache host的,设置了keep alive为true, 那是不是默认 : 对于同一个client的multiple api call (even different types of api to the same : web service) 都是share同一个connection, 除了设置外,在程序上如何实现这点呢( : 比如用java servlet) ?? : 还有就是keep alive 是share persistent connection的, 也就是对于同一个client : 不会多次创建http连接,那么这里的client是怎么定义的,是一个什么样的scope ? 比 : 如一个apache website 用了keep alive, 哪一个用户的browser开了多个tab也是同样 : share一个连接吗,怎么identify的,原理是什么呢???????
|
b***i 发帖数: 3043 | 10 关键要有个先后,得一个发完了,另一个才能用同一个connection发送。否则必须新建
立一个connection。
【在 S******1 的大作中提到】 : : connection pool, 以前好像在DB也有类似的概念,谢了
|
S******1 发帖数: 216 | 11
这个是不是就像多线程访问同一个socket, 我记得socket的send/receive 是thread
safe的。。。
【在 b***i 的大作中提到】 : 关键要有个先后,得一个发完了,另一个才能用同一个connection发送。否则必须新建 : 立一个connection。
|
c******3 发帖数: 296 | 12
same
呢(
keep alive在Apache2.0是缺省的。
你也可以看看你客户端API是不是让你定义http header的属性。property name=
connection, value=true. 查一下Request class是怎么加http header map的。
client
应该是每个browser里面有个connection pool.所有的tab共用这个pool。identify很简
单。你在你的browser里打开10个tab。每个都去下载长文件(video or movie)。你会
发现你文件夹里可能只有6个正在下载的文件。这说明你只能同时并行6个connection。
其余的要等。browser可能会让你配制同时connection的数目。
【在 S******1 的大作中提到】 : 有一个关于apache keep alive 的问题。 : 如果有一个web server是用apache host的,设置了keep alive为true, 那是不是默认 : 对于同一个client的multiple api call (even different types of api to the same : web service) 都是share同一个connection, 除了设置外,在程序上如何实现这点呢( : 比如用java servlet) ?? : 还有就是keep alive 是share persistent connection的, 也就是对于同一个client : 不会多次创建http连接,那么这里的client是怎么定义的,是一个什么样的scope ? 比 : 如一个apache website 用了keep alive, 哪一个用户的browser开了多个tab也是同样 : share一个连接吗,怎么identify的,原理是什么呢???????
|
o***g 发帖数: 2784 | 13 http://en.wikipedia.org/wiki/HTTP_persistent_connection
这里说的很清楚
http 1.0没有定义
http 1.1缺省就是开的
apache 2.2 timeout是5秒
下面列了一些浏览器的timeout,都多于5秒,所以都没什么意义
same
呢(
client
【在 S******1 的大作中提到】 : 有一个关于apache keep alive 的问题。 : 如果有一个web server是用apache host的,设置了keep alive为true, 那是不是默认 : 对于同一个client的multiple api call (even different types of api to the same : web service) 都是share同一个connection, 除了设置外,在程序上如何实现这点呢( : 比如用java servlet) ?? : 还有就是keep alive 是share persistent connection的, 也就是对于同一个client : 不会多次创建http连接,那么这里的client是怎么定义的,是一个什么样的scope ? 比 : 如一个apache website 用了keep alive, 哪一个用户的browser开了多个tab也是同样 : share一个连接吗,怎么identify的,原理是什么呢???????
|
b***i 发帖数: 3043 | 14 得自己控制不要发两个收两个不知道谁在先
【在 S******1 的大作中提到】 : : 这个是不是就像多线程访问同一个socket, 我记得socket的send/receive 是thread : safe的。。。
|