Providers and Signers
Imagine this. You need to interact with a smart contract that is deployed in the blockchain. For that we first need an ethereum node which contains the complete state of the blockchain and makes it possible for us to interact with the blockchain. There are many ethereum node providers such as infura, alchemy etc...
Now what is a provider?
A Provider is an Ethereum node connection that allows you to read data from its state. You will use a Provider to do things like calling read-only functions in smart contracts, fetching balances of accounts, fetching transaction details, etc.
Ok so what if we need to write data to the blockchain?
A Signer is an Ethereum node connection that allows you to write data to the blockchain. You will use a Signer to do things like calling write functions in smart contracts, transferring ETH between accounts, etc. To do so, the Signer needs access to a Private Key it can use for making transactions on behalf of an account.