I am trying to understand the typical architecture of a Dapp with browser clients. Is the below understanding correct? **[Web Browser** *(end user)***]** <==> **[Server** *(web application/javascript <==> web3 <==> ethereum client)***]** <==> **[Ethereum Network** *(solidity code)***]**