Basic Functionality
The majority of modern operating systems and browsers
perform Internet connectivity tests automatically.
This helps users who need to know if there is an Internet connection available
or if there is an issue with an existing connection.
Detecting a captive portal is part of this test,
although there is a subtle difference between Internet connectivity
and a captive portal.
The actual setup is slightly different from one implementation to the next.
In general, the OS or browser will try to resolve a URL, or set of URLs,
and expect to receive a response from the server.
This response could come, for example, in the form of an HTTP 204 response
or even just the response “success”.
If the DNS resolution works, but getting access to a specific URL fails,
it will prompt a captive portal, which includes a login screen.