当前位置: 首页 > 面试题库 >

HttpsUrlConnection和保持活动状态

楚茂实
2023-03-14
问题内容

com.sun.net.httpserver.HttpsServer在当前的项目中使用它来处理客户端身份验证等。当前它仅打印出客户端地址/端口,以便我可以检查一个TCP连接是否用于多个请求(keep- alive)或是否有新连接为每个请求建立(因此每次都会进行新的SSL握手)。当我使用FireFox对服务器发出多个请求时,我可以看到keep-
alive正在运行。因此服务器部分可以很好地处理GET和POST请求。

如果我HttpURLConnection过去对服务器发出请求(在这种情况下, 使用SSL)keep- alive也可以:仅为多个顺序启动的请求建立一个连接。

但是,如果我使用HttpsURLConnection(使用完全相同的代码,但 使用 SSL),则keep- alive无法正常工作。因此,尽管我使用的是相同的SSLContext(和SSLSocketFactory),但对于每个请求都建立了新的连接:

// URL myUrl = ...
// SSLContext mySsl = ...
HttpsURLConnection conn = (HttpsURLConnection) myUrl.openConnection();
conn.setUseCaches(false);
conn.setSSLSocketFactory(mySsl.getSocketFactory());

conn.setRequestMethod("POST");
// send Data
// receive Data

由于许多请求会导致许多SSL握手,这是一个真正的性能问题,我该如何强制HttpsURLConnection使用keep-alive

更新(2012-04-02):mySsl.getSocketFactory()我没有每次都调用,而是尝试缓存SSLSocketFactory。但是什么都没有改变。问题仍然存在。


问题答案:

我无法使用它HttpsUrlConnection。但是Apache的HTTP客户端很好地处理了SSL连接的保持活动。



 类似资料:
  • 问题内容: 我正在使用POST方法。我需要创建一次,并且应该使用Keep Alive Connection。但是我认为,它每次都会建立一个新的连接。 因此,我需要使用 保持活动 连接。 这是我的代码段,很多帮助将不胜感激。 而且logcat日志是: 问题答案: 10:07:29.746:D / org.apache.http.headers(1529):>>连接:保持活动 您正在要求保持活动状态。

  • 我正在创建一个客户端服务器应用程序。服务器已经设计好,等待从客户端连接。现在在客户机部分中,我希望在应用程序的整个生命周期中保持连接活动,并且只有当主客户机应用程序关闭或关闭或者服务器关闭它时,连接才会关闭。 在处理程序中我有:

  • 我正忙着在嵌入式平台上实现自己的超文本传输协议服务器。从技术上讲,服务器符合HTTP 1.0,因此它希望客户端发送标头“连接:保持活着”以保持连接打开。 实现如下所示。我删除了解析HTTP头并执行请求的代码,以使帖子尽可能简短: Get_Request函数如下所示: 用英语描述这个服务器的工作方式:服务器接收第一个请求。它解析报头,如果发现“连接:保持活动”报头,它设置一个标志。服务器继续处理这个

  • 问题内容: 我用来登录远程服务器。 问题 : 当我在工作场所时,它始终保持连接并且可以正常工作。不幸的是,在我在家中与远程服务器连接后,终端会在10到15分钟内死机。 控制台上没有错误/超时报告,但是光标不能再移动了。 输入检查登录用户时,那里有一些僵尸登录用户,我必须手动将其杀死。 这很烦人。谁能帮我? 问题答案: 在客户端运行的ssh守护程序(sshd),如果客户端变为静默(即,不发送信息),

  • 问题内容: 我正在尝试连接到API,对用户进行身份验证,然后查看用户详细信息。这是通过首先访问登录端点来完成的 登录,然后单击以下内容查看用户详细信息: 所有这些都可以在Web浏览器中使用。但是,一旦我尝试使用Curl,登录就可以正常工作,但是在尝试查看用户详细信息时,我又得到了401未经授权的错误。我相信这是因为Curl没有正确保存会话cookie?有人可以指出为什么它不起作用以及如何解决吗?我

  • 对于一些我们无法解决的问题,我想在Apache HttpClient 3.1上禁用keep alive。然而,我在互联网上找不到这方面的任何资源。你知道怎么做吗?