我如何获取客户端首次创建对服务器的请求的日期?
客户端向服务器发送 GET/POST 请求 -> 在服务器端我提取发送请求的日期
HttpContext.Request.Headers
中有一个名为 HeaderDate
的属性,但它在每个请求中始终为空。
Here是我想在服务器端获取的确切 header 的描述。
附言我正在使用 ASP.NET Core 2.0
最佳答案
除非网络很差,否则创建请求的时间可能不会超过一两秒(最多),然后它就会到达您的服务器。您希望精确到什么程度?
无论如何,他们是否向您发送任何此类信息取决于客户。事实上 https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html 的规范说
Clients SHOULD only send a Date header field in messages that include an entity-body, as in the case of the PUT and POST requests, and even then it is optional. A client without a clock MUST NOT send a Date header field in a request.
换句话说,在很多情况下实际上建议不要发送此 header 。例如,GET 请求几乎肯定不会包含它,除非有问题的客户反对规定的建议。
您最好只使用请求到达您的服务器的时间,并将其视为足够好。
关于asp.net - ASP.NET MVC 中请求的日期 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49191113/