There's not much meaningful difference between the HTTP requests involved. What matters is what the browser does with the responses. That's simply the functionality of a web browser; it's just a piece of software and it can decide to do anything it wants to with the response to an HTTP request.
Note that the browser knows how the different HTTP transactions are initiated. It therefore simply keeps track of the difference internally in a way that's implicitly evident from the observable behavior. If some JavaScript code initiates an AJAX HTTP request, it can be confident that the response will be delivered to it via the state change event, and that the browser won't spontaneously decide to update the page.
The precise way that a browser internally manages a group of concurrent HTTP requests is pretty much an internal architectural detail.