当从另一个域单击“后退”按钮时,浏览器是否重新加载页面

Does a browser reload a page when `back` button is clicked from another domain

假设,用户点击 mydomain.com。历史堆栈现在包含一个条目。然后用户在我的网站上点击 link 到 mydomain.com/cool 并且我推送另一个状态。现在历史堆栈包含两个条目,mydomain.com/cool 是最后一个。现在用户转到 google.com - 历史堆栈发生了什么?

浏览器是否将 google.com 置于我的两个条目之上?历史堆栈选项卡是特定的吗?

当用户按下后退按钮时,浏览器会向服务器发送请求到mydomain.com/cool吗?

历史堆栈是特定于选项卡的。它将包含在该选项卡中按访问顺序排列的网址列表

Now a user goes to google.com - what happens to the history stack?
Does google.com is put by browser on top of my two entries?

是的,历史堆栈现在依次包含 google.commydomain.com/coolmydomain.com

Is history stack tab specific?

它是特定于标签的。在某些浏览器中(特别是移动浏览器,屏幕顶部通常看不到选项卡),历史堆栈是特定于选项卡的,直到您到达当前选项卡的 "entry point"。因此,如果从 google.com 开始,您在另一个选项卡 google.com/some_external_link 中打开,按返回键您将神奇地返回到上一个选项卡。

And when the user presses back button, will the browser send request to the server to mydomain.com/cool ?

视情况而定。也许浏览器可以从缓存中检索页面。当您有静态内容时(没有查询参数,例如 ?page=2),这种情况会发生。但是在这种情况下你应该测试浏览器的行为。