Actually, this issue is fully covered in apple docs even with pictures and schemas
Briefly:
1) You will need server-side if you want to make your subscriptions more flexible (ex: to add more sub-ns while app is in appstore) In this case your app gets list of subscriptions from server
2) You will be able to check the correctness of a transaction using your server by sending the received receipt to Apple-server, and give users the content if only the receipt is valid.