如何获取客户端首次创建对服务器的请求的日期?
客户端向服务器发送 GET/POST 请求 -> 在服务器端我提取请求发送时的日期
HttpContext.Request.Headers
中有一个名为HeaderDate
的属性,但它在每个请求中始终为空。
这是我想在服务器端获得的确切标头的描述。
附言我正在使用 ASP.NET 酷睿2.0
除非网络非常差,否则请求很可能在到达您的服务器之前不超过一两秒(最多)。你到底想有多准确?
无论如何,这取决于客户是否向您发送任何此类信息。事实上,https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html 的规格说
客户端应仅在包含以下内容的邮件中发送日期标头字段 一个实体机构,如 PUT 和 POST 请求的情况,甚至 那么它是可选的。没有时钟的客户端不得发送日期 请求中的标头字段。
因此,换句话说,在许多情况下,实际上建议不要发送此标头。例如,GET请求几乎肯定永远不会包含它,除非有问题的客户端违背了规定的建议。
您可能最好只使用请求到达服务器的时间,并将其视为足够好。