使用 CURL 添加请求时间戳
Posted
技术标签:
【中文标题】使用 CURL 添加请求时间戳【英文标题】:Add request timestamp with CURL 【发布时间】:2016-07-13 22:04:25 【问题描述】:我正在一个小型 LINUX 项目中工作,以计算 CURL 和远程网站的请求延迟。
所以我制作了一个 shell 脚本来自动向远程 Apache Webserver 发送 GET 请求。在访问 Apache 的 access.log 时,我只发现 apache 收到来自 CURL 的请求的时间。
是否也可以将 CURL 请求的日期发送到 apache 服务器? (时间戳)
谢谢
【问题讨论】:
【参考方案1】:如果我理解并且您想测量 curl 所在的客户端延迟,您可以使用 --write-out
How do I measure request and response times at once using cURL?
服务器端,除非有人自定义日志,否则每次对服务器的访问都应在 access_log 中记录日期和时间
::1 - - [25/Mar/2016:22:37:54 -0700] "GET / HTTP/1.1" 200 38
编辑:
好的,给定你想要的......不确定它会显示什么,因为请求需要几秒钟的时间,而且不同计算机上的时钟不一定相同。不过,要使用 curl 请求发送客户端的日期,您可以使用 -A
选项捕获时间戳并将其作为自定义用户代理的一部分发送。
例如如果在支持纳秒的 unix bash shell 中
curl -A `date +"[mycurltime:%Y-%m-%dT%H:%M:%S.%3N]"` "http://hostname/etc"
结果...
your.ip.addy - - [26/Mar/2016:16:52:54 -0700] "GET /etc HTTP/1.1" 200 7502 "-" "[mycurltime:2016-03-26T16:52:54.437]"
【讨论】:
实际上我想以某种方式将请求日期发送到 Apache,我会在 access.log ::1 - - [25/Mar/2016:22:37:54 - 0700] "GET / HTTP/1.1" 200 38以上是关于使用 CURL 添加请求时间戳的主要内容,如果未能解决你的问题,请参考以下文章