No web server runs inside a Capacitor 243,123 app. The WebView loads a URL that only looks remote, and native code answers each request from the files cap copy bundled:
Android loads https://localhost. WebViewLocalServer.shouldInterceptRequest returns the file from assets/public when the host is the app's own, and index.html for paths without an extension, so client-side routers work. Keep androidScheme at https, the default since Capacitor 6: custom schemes cannot change the URL path as of WebView 117.
iOS loads capacitor://localhost, served by WebViewAssetHandler, a WKURLSchemeHandler. WKWebView refuses handlers for schemes it already handles, so iosScheme cannot be https.
Native files outside the bundle, such as a photo the Camera plugin saved, reach the page through the reserved path /_capacitor_file_ on the same origin, which Capacitor.convertFileSrc() builds. The probe logs its origin and one converted path:
adb -s emulator-5558 logcat -d -v tag -s Capacitor Capacitor/Console \
| grep -E "Loading|local req|origin|file " | sed 's/File: .* Msg: //'W/Capacitor: Unable to read file at path public/plugins D/Capacitor: Loading app at https://localhost D/Capacitor: Handling local request: https://localhost/ D/Capacitor: Handling local request: https://localhost/assets/index-DTZYojoh.js I/Capacitor/Console: platform=android origin=https://localhost I/Capacitor/Console: file https://localhost/_capacitor_file_/data/user/0/com.example.booknest/f iles/c.jpg D/Capacitor: Handling local request: https://localhost/favicon.ico
The warning only means the app has no Cordova 129 plugins (Migrating from Cordova). As a secure context, https://localhost runs crypto.subtle and service workers, and because the origin never changes, localStorage and IndexedDB survive app updates. Changing hostname or the scheme in a shipped app "loses" that data (The server Block), a trap Scheme Change and Data returns to.