In more detail - The task of the firewall is simply to intercept the forbidden incoming connections and quietly drop them.
In this case, you: (a) see the ping responses from the VM's public IP address, which indicates that ICMP is not blocked by the firewall. (b) see the TCP RST packet sent by the virtual machine in response to the TCP SYN packet sent by your browser when it tried to connect to the TCP server on the virtual machine. This indicates that packets addressed to TCP port 80 are also forwarded by the firewall, as expected.
There is no server application on your virtual machine that listens for connections on port 80, receives HTTP requests, and responds. You can try running, say, Apache (or Nginx, which is even easier to configure).
In response to your other question, you do not need the second tcp: 80 firewall rule, but if you want the HTTP rule to allow packets to your virtual machine by default, you will need a tag for your virtual machine labeled "http -server".
source share