Eine stateful Firewall, und ich kenne eigentlich keine halbwegs aktuelle, die es nicht wäre, öffnet die eingehenden Ports auf nach aussen gesendete Abfragen automatisch, weil sie sozusagen drauf wartet.
Ein Browser ist so konfiguriert, dass er als Zielport 80 wählt, oder eben einen anderen angegebenen, hier 9090. Als Absenderport wählt er irgendeinen auf dem Client freien Port > 1023, auf den er die Antwortpakete vom HTTP-Server will. Eine stateful Firewall, leitet (bei entsprechender Rule für 9090 in dem Fall!!!) das Paket weiter und wartet auf die eingehende Antwort auf dem Port aussen, den der Client als Absendeport angegeben hat. Dieser wird dann nur für das eingehende Paket und die anderen, die da noch folgen, solange die TCP-Verbindung nicht wieder abgebaut ist (F-Flag gesetzt und bestätigt), dynamisch geöffnet.
Also: keine spezielle eingehende Rule nötig ;)