@zw963 what your code is doing I think is correct - when a browser receives an HTML payload from a server that contains an iframe tag with a src attribute, the browser also makes a request to that provided URL and puts the newly returned HTML into the iframe tag in the original page (i.e. the browser is also making two requests).
Selenium is essentially a headless (or not headless, maybe) browser, so it runs through those 2+ requests for you. I don’t think it would necessarily make sense for the HTTP::Client to do this for you, since the behavior of the iframe tag is part of the HTML specification, not the HTTP protocol itself.