SharePoint Hosted Apps
When the app is hosted in SharePoint itself, the code is only in HTML and JavaScript and is hosted by SharePoint.
A SharePoint-hosted app may provision basic resources into its app web such as HTML/CSS/JS files, site column/content type/list definitions, etc. Under no circumstances can server-side code run within a SharePoint-hosted app.
Provider Host Apps
In a provider-hosted app, you are responsible for the infrastructure (again, external to SharePoint) where your app runs. You have lots of flexibility in the sense that you can run full-blown server side code and even take advantage of frameworks like ASP.NET MVC (or even use Java, PHP, or other non-Microsoft technologies as well), but you are also responsible for things like tenant isolation.
You or your app purchaser’s IT department must host a provider-hosted app on a dedicated server or third-party hosting service. Depending on your choice, these apps run either on your server or in the cloud. A provider-hosted app can also include SharePoint components that run in SharePoint, so it can be mixed in its hosting
Thanks for learning my blogs!!!

Tabrez AjazPosted Dec 21, 2016, 8:53 AM
Please tell which is best.And what type app should we created if I have permission for create both type of Apps.
mukesh vermaPosted Nov 15, 2016, 1:56 AM
Good Sort & Sweet Explanation . I also tried to explain it in simple words here. http://sharepointbag.com/blog/6/decision-making-develop-sharepoint-hosted-app-or-provider-hosted-apps/
Vijay SPosted Jun 17, 2015, 9:13 AM
Good one