If you’re familiar with web development, chances are you’ve heard the terms ‘client side’ and ‘server side’. Both are terms that describe where application code runs, and make up something called the client-server model - where user devices establish communication through a network to centrally located servers for acquiring necessary data, as opposed to direct communication with each other. In this model, end user devices (laptops, phones, etc.) are designated as 'clients' engaging with servers, similar to customers using services from a company. Requests for webpages or applications are initiated by the client device, and the server responds by providing the requested information.
For example, imagine you’re exploring the internet and search for pinata.cloud via the search bar. What’s really happening behind the scenes is:
- A request is made to the DNS (the phonebook of the Internet)
- The DNS then translates your entered domain name (<span class="code-inline">
pinata.cloud</span>) to an IP address and serves it to the browser
- The browser then makes a request to Pinata server via the IP address for all the content that should appear on the page
- The Pinata server will then deliver that content to the browser and load the page on the client device
To put it another way, imagine you’re sitting at a restaurant table. You order food from the kitchen and servers take your food back and forth between the kitchen and the table. In this scenario, the kitchen is the ‘server side’, you’re table is the ‘client side’, and the servers going back and forth between the two are APIs. In both the internet and restaurant example, the basic structure of transferring information from one place to another is the same.
Client Side vs Server Side
How Does This Model Fit With IPFS?
This is why some server side frameworks like Next.js are not compatible with IPFS, because they require an ability for the server to serve dynamic content. In other words, if your app has some kind of backend logic, it won’t work because backends can change data, and IPFS is purposefully designed with data immutability in mind.
While some are focused on what needs to happen in order for IPFS to become more than a storage network, it’s important to focus on what IPFS is exceptional at and why that matters. IPFS is known for it’s content-addressable nature, something that allows for portability, increased verifiability of content and records, and distributed content delivery. IPFS solves that problem by distributing the sharing of that files across nodes and using the Content Identifier (CID) to ensure immutability and verifiability. If you’re working with static, immutable websites, IPFS is actually a great fit and we’ve done several tutorials on how to host static sites on IPFS which you can check out here.
Pinata stands behind the value of IPFS and has worked hard to make it accessible, easy to use, and reliable for developers building Web3 applications. Whether you’re building a decentralized website, a blockchain game or a decentralized social media, we’re here to help you every step of the way. Sign up for a free account today and experience the power and speed of IPFS in your workflow!
Happy Pinning ✌️
February 1, 2024
Ready to shape the future?
Explore our plans