什么是X-REQUEST-ID http头?

我已经使用了很多这个主题,阅读了关于这个头文件的各种文章,在Heroku上的使用或者基于Django的项目。

但是,我的脑海中仍然一片混乱。

  • 这个头的目的是什么?
  • 这是否违反用户隐私?
  • 它可以帮助跟踪用户吗?

当您运行一个由客户端访问的web服务时,可能很难将请求(客户端可以看到)与服务器日志(服务器可以看到)关联起来。

X-Request-ID是客户端可以创build一些随机ID并将其传递给服务器。 服务器然后将该ID包含在它创build的每个日志语句中。 如果一个客户端收到一个错误,它可以把这个ID包含在一个错误报告中,允许服务器操作员查找相应的日志语句(而不必依赖于时间戳,IP等等)。

由于此ID由客户端随机生成,因此不包含任何敏感信息,因此不会侵犯用户的隐私。 由于每个请求都会创build一个唯一的ID,因此无法跟踪用户。

这个请求头可以用于同步。 假设您已经构build了一个提供离线function的ToDo列表。 您的用户创build3个项目,并且每个项目在脱机应用程序上都被赋予唯一的UUID。 当networking连接可用时,logging将被发送到服务器,并返回从数据库中自动生成的相应ID。 然后,您可以replace应用中的ID(例如,HTML“li”元素的“id”属性)。