Start with the target, not the tooling preference
List what the workflow actually needs: page rendering, JavaScript execution, interactive input, signed requests, cookies, token renewal, file downloads, or a specific network fingerprint. These requirements determine the runtime.
A target that only returns data through a documented or reconstructable API has a different cost profile from a target that requires a full page runtime and several challenge interactions.
When HTTP-only is the better choice
HTTP-only automation is useful when the required requests can be reproduced without executing the page. It usually has lower memory use, simpler concurrency, and less operational overhead than a browser pool.
- The endpoint and payload contract can be mapped reliably.
- Required request signing and token renewal can be implemented in the client.
- The target accepts browser-compatible TLS, HTTP/2, headers, and session behavior.
- No visual challenge, rendering, or complex browser state is required.
HTTP-only does not mean sending generic requests with a copied user agent. The client still has to reproduce the network and session behavior the target expects.
When a real browser is necessary
A real browser earns its cost when the page runtime is part of the requirement. Rendering, JavaScript execution, interactive CAPTCHAs, complex navigation, and browser-held state are common reasons.
A stock browser is enough for some workflows. Others need source-level changes across browser, JavaScript, and network components, with real-device comparison to check that the resulting identity is consistent.
The hybrid pattern is often the practical answer
A hybrid workflow uses the browser only for the steps that need it. For example, the browser can establish identity, clear a challenge, and create a session. Suitable data requests can then run through a browser-compatible HTTP client.
- Establish the session in a browser.Complete the required rendering, sign-in, and challenge interactions.
- Transfer only the required state.Use the cookies, tokens, signatures, and device context needed by the next request.
- Run suitable work over HTTP.Validate responses, renew state when needed, and return to the browser when its runtime is required again.
Questions that make the decision clear
- Does the task require rendering or JavaScript execution?
- Can every required request and signature be reconstructed?
- How much browser state is needed after the first page?
- Which approach produces fewer failure modes at the required volume?
- Can the team observe and maintain the network behavior over time?
Choose the simplest system that passes the complete workflow and failure tests. Do not choose a browser because the automation framework already uses one, and do not choose HTTP only because it is faster in a prototype.