How does Http server distinguish between computers behind a router

You're confusing source ports and destination ports. When the request is sent to the HTTP server, the destination port is 80 since that's what web servers typically listen on. NAT routers can choose whatever source port they want. When they receive replies, they use the destination port (and other information), which should match the source port they choose for the outbound packets, to know which connection the packets are associated with.

Your computer has to do the same thing. Say you fire up two different browsers and you point each at superuser.com. How do you think your computer tells which TCP connection incoming packets belong to?