‫So now that you have
‫a good overview of how the web works
‫behind the scenes, let's learn
‫about what back-end web development actually is
‫and how it compares to front-end development,
‫because this is a very important distinction
‫in the web development world.
‫So in order to distinguish between
‫the front-end and the back-end
‫of a website and of web development
‫as a general, we still consider
‫the same client-server architecture
‫that we talked about before.
‫So in general terms, front-end development
‫is about everything that happens in the web browser.
‫So it's about designing and building
‫the final website that's gonna
‫be visible to the user, and therefore,
‫the name front-end.
‫The front-end developer uses
‫the basic technologies: HTML, CSS, and JavaScript,
‫which together form the front-end technology stack.
‫Now, many modern front-end developers
‫add more stuff to the front-end stack
‫like React or Angular or Redux or GraphQL
‫or whatever is cool these days.
‫So these technologies make front-end development easier
‫and all these technologies together
‫that a developer or a team decides
‫to use on the front-end, is their
‫front-end stack, okay?
‫And you probably already know most
‫of this stuff anyway, but I still wanna give you
‫a brief overview of how everything fits
‫into the bigger picture here.
‫All right, and now moving on to the back-end.
‫This part of web development is
‫about everything that happens on the web server,
‫so everything that is invisible
‫to the final user and therefore
‫the name back-end, okay?
‫And since we're talking about the server site now,
‫let's actually define what a server really is.
‫Well a basic server is really just a computer
‫that is connected to the internet
‫which, first, stores a website's files
‫like HTML, CSS, and images,
‫and second, runs an HTTP server
‫that is capable of understanding URLs,
‫requests, and also delivering responses.
‫So this piece of HTTP server software
‫is what actually communicates with the browser
‫using requests and responses.
‫Therefore, it is like the bridge
‫between the front-end and the back-end
‫of a website or web application.
‫Now a simple web server like the one
‫I just described is called a static server,
‫because all it can really do is
‫to serve static files to the client via HTTP.
‫If you just need to host a simple website,
‫then this is really all you need.
‫But if you wanna take it to the next level
‫and create dynamic web applications
‫that talk to databases and all that good stuff,
‫we use a server that is also capable
‫of running OR dynamic applications,
‫just like the code that we wrote
‫and executed in the intro section of the course.
‫This is then called a dynamic server,
‫where we have OR app running,
‫an HTTP server, and of course,
‫the files all talking to each other.
‫And in some cases, that's all we need
‫for OR applications, but usually
‫when we build dynamic websites or apps,
‫we will also use a database,
‫which we can access right from our applications.
‫By the way, if the term static
‫and dynamic websites or applications
‫are a bit confusing for you, no problem.
‫We will talk about that right in the next video.
‫Anyway, we can use the database
‫to store stuff like users or application data
‫or text to fill up a website template.
‫In any serious application, there will always
‫be a database and our back-end code
‫will communicate with that data base.
‫So, some usual stuff that is handled
‫on the back-end or the server side
‫as we can also call it to create user profiles,
‫perform log-in's, send emails, handle payment,
‫retrieve and send request data from a database
‫to a client, manipulate data in the database,
‫fill up website templates, and so much more.
‫And we will do many of these exciting things
‫throughout the course, actually all of them really.
‫Now about the technology as you can guess,
‫we are gonna use NodeJS as a dynamic web server
‫and MongoDB as our database,
‫so datas or back-end stack.
‫But there are so many different back-end technologies
‫and stacks available for the back-end.
‫Things like PHP with MySQL database
‫or Python with PostgreSQL database
‫or some people use Ruby on Rails
‫maybe with even some other database.
‫But, since you wanna learn NodeJS
‫well we are gonna use exactly that.
‫And the most popular database that is used
‫with Node is, without a doubt, MongoDB.
‫And, so, that is our choice for a back-end stack.
‫Now, you might have heard the term full stack before,
‫and that simply is the front-end
‫plus the back-end stacks together.
‫So, the developer that does both front-end
‫and back-end development can call himself
‫a full stack developer, but these developers
‫are getting increasingly rare,
‫especially because the front-end
‫is becoming more and more complex these days.
‫Finally, another thing that I wanted to quickly mention
‫is that, as you can see, we're gonna use Node
‫applied to back-end web development
‫and not something like hardware programming.
‫So, you can technically use Node for stuff like
‫flying drones, programming robots,
‫or developing software for IFT devices.
‫But, that is outside the scope of this course.
‫If you want to program IFT devices with Node,
‫well this course is still going to be useful for you,
‫it's just not the focus of the projects
‫that we are gonna build, okay?
‫All right and I guess that summarizes the difference
‫between the front-end side and the back-end side
‫of web development, so that going forward,
‫you have a good idea of the domains
‫where NodeDS is actually used in the real world.