I don't understand how a client works. I try to explain my doubts. Since a client in the classic client-server paradigm is a lightweight application, I don't understand how this application can use the blockchain technologies. A smart contract client is a final user that could use his smartphone to access to contract API. To do this, of course, is impossible to download the blockchain on the smartphone. So, I don't understand how this client can use the smart contract without downloading a BC.
Moreover, web3js (just for citing a library) is only for nodeJS and the initialization downloads the blockchain or there are some mechanisms to avoid the download and run it on a browser like, sorry for the stupid parallelism, Angular or JQuery does? In order to imagine some application on mobile device.