I will try my best to explain this question:
First you have to ask yourself what is server-side rendering and why we need server-side rendering ?
server-side-rendering in React mean the data is rendering from the server not the client, its important to note that ReactJs (not NextJS) always renders anything in browser not server.
So when user fill the address in browser address bar, the request from browser get sent to server, and information pass between server to client in React (not next) just a bunch of javascript and a div tag (width id="app" most of the time), and that is a problem with SEO.
Because there are not much information for search engine crawler (Google) to parse (it will ask itself, reall ? a signle div tag with a bunch of JS ? really ? what the heck is this ?? naaahh I am tired of this I will go index the other page and leave this page next time... so on), and search engine feel difficult to understand the content of that site, mean it is NOT optimized for search engine (rememeber SEO = search engine optimization).
So that is why we need to render the data from the server so that it will make search engine crawler feel comfortable to parse the information of the site for sure.
And to render data from the server in NextJs we need to pass props from getIntitialProps.
This getIntitialProps is where we will render the data (for example, a lits of product, the name of product, the price...) from server side.