如果我在 IntelliJ 市場上打開插件頁面,例如https://plugins.jetbrains.com/plugin/1236-identifier-highlighter ,我會看到如下訊息:
與您運行的 IDE 的版本不兼容(IntelliJ IDEA xxxx)
網站如何知道我的系統上運行的是哪個版本的 IntelliJ?我沒有登錄,相同的行為發生在私人模式選項卡/不同的選項卡中。
uj5u.com熱心網友回復:
如果您查看該頁面的瀏覽器開發工具的“網路”選項卡,您會看到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”。你信任未知主機嗎?/ Yes / No'(我認為 Marketplace 網頁通常會添加一些標題來抑制這一點)。如果單擊“是”,則可以在 Web 瀏覽器中看到回應 JSON 版本資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/444986.html
