gpt4 book ai didi

java - 为什么 HttpHead 比 HttpGet 返回时间更长

转载 作者:行者123 更新时间:2023-11-30 04:34:58 26 4
gpt4 key购买 nike

我们有以下代码,后来用 HttpHead 方法替换,因为我们只需要拉回网页的 header 信息。更改后,我们注意到,平均而言,对于同一组网页,HttpHead 的返回时间比 HttpGet 的返回时间更长。正常吗?这里可能出了什么问题?

    HttpClient httpclient = new DefaultHttpClient();
// the time it takes to open TCP connection.
httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, this.timeout);

// timeout when server does not send data.
httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, this.timeout);

// the get method
HttpGet httpget = new HttpGet(url);

HttpResponse response = httpclient.execute(httphead);

最佳答案

Is it normal?

这确实看起来有点奇怪。

What could be wrong here?

这很难说。看起来奇怪的行为最有可能出现在服务器端。我会检查以下内容:

  • 编写一个微基准测试,重复 GET 和 HEAD 同一页面,以确保性能差异是真实的,而不是测量方式造成的结果。
  • 使用数据包记录器查看实际发送和接收的内容。
  • 检查服务器日志。
  • 使用微基准分析负载下的服务器代码。
<小时/>

一种可能的解释是 HEAD 正在从(慢速)数据库或文件系统加载数据。接下来的 GET 可能会更快,因为数据已经被缓存了。 (它可能是服务器代码中的显式缓存、后端数据库中的查询缓存或文件系统缓存。)您可以通过查看 GET 是否较慢(如果)开头来测试这一点。一个头。

关于java - 为什么 HttpHead 比 HttpGet 返回时间更长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13717473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com