gue*_*tli 14 javascript django http-referer http
如果用户点击链接,有没有办法让webbrowser提交额外的HTTP标头?
背景:在我们的环境中,每个http请求在服务器端都有唯一的ID.请参阅https://serverfault.com/questions/797609/apache-x-request-id-like-in-heroku
如果您的Web应用程序收到http请求,我想知道之前页面是哪个页面.http referrer是不够的,因为用户可以在他的浏览器中使用多个选项卡.
我想避免将丑陋的request-id放入从浏览器发送到服务器的每个GET请求中.到目前为止,我们的网址很好.
我首选的解决方案是一些JavaScript魔术,它将当前页面的请求ID添加到下一个http请求中.
详细步骤:
我的目标是跟踪关系"123 - > 456".以上解决方案只是实现目标的策略.其他策略是受欢迎的.
我们使用web框架django.但AFAIK在这方面确实很重要.
用户可以在浏览器中使用多个选项卡
我详细说明了匹配解决方案的含义.来自一个用户的请求序列不能解决问题.
使用多个选项卡:
我想知道看到两个序列:
A -> C -> D
Run Code Online (Sandbox Code Playgroud)
和
B -> E
Run Code Online (Sandbox Code Playgroud)
Eve*_*ert 10
这里唯一现代的"理智"选择是使用ServiceWorker.
ServiceWorker可以拦截您控制的域的HTTP请求,并使用更多标头对其进行装饰.
ServiceWorker在浏览器选项卡的"外部"工作,如果使用同一网站打开多个选项卡,则将为所有这些选项卡使用相同的服务工作程序.
关于如何实现这一目标的完整教程对于这个答案框来说肯定是太多了,但拦截和处理HTTP请求是一个很大的用例,所以非现场源通常会以此为例.
我会说这是一个坏主意.如果你认为你需要这个,也许你可以用不同的方式处理这个问题.执行此操作的常用方法可能是使用Cookie.