Car*_*rlo 3 jetbrains-ide intellij-idea
如果我在 IntelliJ 市场上打开一个插件页面,例如https://plugins.jetbrains.com/plugin/1236-identifier-highlighter,我会看到类似以下的消息:
与您正在运行的 IDE (IntelliJ IDEA xxxx) 的版本不兼容
网站如何知道我的系统上运行的是哪个版本的 IntelliJ?我没有登录,相同的行为发生在私人模式选项卡/不同选项卡中。
如果您查看该页面的浏览器开发工具的“网络”http://localhost:port/api/installPlugin选项卡,您将看到在多个端口(例如 63342-63344)上建立的连接。我认为这是一个范围,这样如果一个端口正在使用,它可以移动到下一个端口。
如果您随后运行,netstat -n -b您将看到 正在侦听成功回复的端口idea64.exe,并且它发送到网页的响应是一个带有版本信息的小 JSON 数据包。
因此,远程加载的 Marketplace 网页实际上是在向 IDEA 的本地副本询问其版本(使用本地 HTTP 调用),并使用该信息来填充页面的文本!
您甚至可以通过尝试在新的浏览器选项卡中打开http://localhost:63342/api/installPlugin来亲自查看这一点(根据需要更改端口号)。对我来说,IDEA 弹出一个对话框“请求使用 REST API / installPlugin API”。您信任未知主机吗?/是/否'(我认为市场网页通常会添加一些标题来抑制这种情况)。如果单击“是”,则可以在 Web 浏览器中看到响应 JSON 版本信息。
| 归档时间: |
|
| 查看次数: |
699 次 |
| 最近记录: |