fetch() with mode:'no-cors' — an opaque response indicates the server responded (UP). A network rejection indicates DOWN. HTTP status codes (200/404/500) are not readable cross-origin without CORS headers. Response time reflects round-trip network latency only.