A host in a LAN with IP (10.0.0.1 TCP port 8888) connects to a server without knowing there is a NAT box at the network edge. The NAT box is dumb and just translates port 8888 to some other port 5555 and changes the IP to the public IP address (say 18.104.22.168) and saves in a dictionary the key, value pair: (5555,10.0.0.1:8888).
When it receives a reply it does the reverse translation and forwards the packet back to the host. How is the operation of an HTTP proxy different from this? I understand the proxy can do other stuff like filtering, caching etc but how is the basic operation of the proxy different from a NAT box?