首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何通过套接字查找HTTP请求的响应时间

如何通过套接字查找HTTP请求的响应时间
EN

Stack Overflow用户
提问于 2008-09-16 02:46:46
回答 7查看 90.4K关注 0票数 20

我使用的是连接到服务器的Java套接字。如果我发送一个头http请求,我如何测量来自服务器的响应时间?我必须使用提供的java计时器吗,或者有更简单的方法吗?

我正在寻找一个简短的答案,我不想使用其他协议等等。显然,我也不想有一个将我的应用程序绑定到特定操作系统的解决方案。请大家,在代码解决方案只。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-09-16 03:44:10

我想说这取决于你尝试测量的确切时间间隔,从你发送的请求的最后一个字节到你收到的响应的第一个字节的时间量?或者直到收到整个响应?或者您只想测量服务器端的时间?

如果您试图仅测量服务器端的处理时间,那么您将很难计算出请求到达和响应返回所花费的网络传输时间。否则,由于您自己通过套接字管理请求,因此可以通过检查系统计时器并计算差值来测量任意两个时刻之间的运行时间。例如:

public void sendHttpRequest(byte[] requestData, Socket connection) {
    long startTime = System.nanoTime();
    writeYourRequestData(connection.getOutputStream(), requestData);
    byte[] responseData = readYourResponseData(connection.getInputStream());
    long elapsedTime = System.nanoTime() - startTime;
    System.out.println("Total elapsed http request/response time in nanoseconds: " + elapsedTime);
}

这段代码将测量从您开始写出请求到完成接收响应并打印结果的时间(假设您已经实现了特定的读/写方法)。

票数 14
EN

Stack Overflow用户

发布于 2012-09-21 16:08:11

curl -s -w "%{time_total}\n" -o /dev/null http://server:3000

票数 20
EN

Stack Overflow用户

发布于 2008-09-16 03:11:14

您可以在命令行上使用time、curl和time。curl的-I参数指示它只请求头部。

time curl -I 'http://server:3000'
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档