JetBrains市场是如何知道IDE版本的



如果我在IntelliJ市场上打开插件页面,例如。https://plugins.jetbrains.com/plugin/1236-identifier-highlighter我看到这样的消息:

与正在运行的IDE(IntelliJ IDEA xxxx(版本不兼容

网站如何知道我的系统上运行的是哪个版本的IntelliJ?我没有登录,同样的行为发生在私人模式选项卡/不同的选项卡中。

如果您查看该页面的浏览器开发工具的网络选项卡,您将看到在多个端口(例如63342-63344(上连接到http://localhost:port/api/installPlugin。我认为这是一个范围,所以如果一个端口正在使用,它可以移动到下一个。

如果运行netstat -n -b,您将看到idea64.exe正在侦听成功回复的端口,并且它发送到网页的响应是一个包含版本信息的小JSON数据包。

因此,远程加载的Marketplace网页实际上是在向IDEA的本地副本询问其版本(使用本地HTTP调用(,并使用该信息填充页面的文本!

你甚至可以通过尝试打开http://localhost:63342/api/installPlugin在新的浏览器选项卡中(根据需要更改端口号(。对我来说,IDEA弹出了一个对话框"请求使用REST API/installPlugin API"。您信任未知主机吗?/是/否"(我认为市场网页通常会添加一些标题来抑制这种情况(。如果我单击"是",那么我可以在web浏览器中看到响应JSON版本信息。

最新更新