Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

In the Web development world, what exactly do backend/server-side programmers do? I guess I don't really understand the whole concept.

I've done the HTML/CSS layouts and website design and a little bit of SQL with PHP (still enhancing my skills, it's more of a side project for me). I've also done a small amount of JavaScript/JQuery.

But I don't understand the "backend" work, such as the scripting languages (Rails/Python/etc) and such. What exactly do you "do" with them?

Are there any books on the subject? I'm not even sure what it means. Is it kinda like what Web Application Frameworks do? Or not so much?

share|improve this question
7  
Where do you think the Qs and As of this site are going and how? –  Mayank Mar 3 '11 at 5:59
add comment

6 Answers

up vote 10 down vote accepted

The basic premise is:

enter image description here

The user gives his input, sends it over a network of some kind and the server then does it's magic according to the input.

Basically you want all the security and validation to be performed server-side. With the niceties running client side, like unobtrusive form validation (you still need to validate server side though!).

The big question: Why?

Users can modify information on their machine. As an example see game trainers which modify memory values to let users 'hack' the game. If you do the core things on your machine, on your physical premises, you significantly lower the chances of someone tampering with your security checks.

share|improve this answer
4  
You didn't use freehand circles. :( –  glasnt Mar 3 '11 at 5:28
    
Ok then what exactly are the point of Web Application Frameworks? –  Mercfh Mar 3 '11 at 15:41
3  
@Mercfh: To simplify. They give you the foundation upon which to build your vision. Do you want to build an authentication framework? How about one to handle dates and views and controllers and routing. I don't think so unless it were an academic exercise. You want a framework because you initially had a problem to solve, and handling dates was not it. :) –  Sergio Mar 3 '11 at 15:44
add comment

If you've used PHP, then you've done server-side work!

In layman's terms, client-side code is run on your computer, in your Web browser, and server-side code is run on a computer on the Internet, and the results of the server-side computation are then sent over the Internet to your browser.

When you wrote PHP code that ran SQL statements, the SQL calls were made on the remote computer (the server) and that result -- usually in the form of generated HTML -- is then sent over the Internet to the browser.

JavaScript, on the other hand, is run in your browser. So is CSS.

Check out The Difference Between Client Side and Server Side Programming for more information.

share|improve this answer
add comment

The front end is the stuff that runs in the browser, the backend such as PHP runs on a server and stores data in the database and does that kind of stuff.

share|improve this answer
add comment

you design Front end stuff when you design systems that interact with the the client of your systems. Notice here the word client is quite large but basically means you are working on front end when you are providing an interface to the outside world.

Most website are just front end, that is they provide information to the outside world and most times this information can be stored quite simply as text in HTML files.

You design back end when you need to provide services and encapsulate functionality that your front end will consume. This allows to displace some of the workload from the client (front-end) to the server (back-end). You will do this in instances when you need to coordinate information from different clients that could access your system concurrently. Or if you need to use a central data repository to collate dynamic data, or again if you need some specific security requirements. This list is by no means exhaustive, just quick examples.

so to put it short, Front-end (client) will present information to the outside world. Usually these are humans through some sort of GUI either HTML or otherwise.

Back end will provide means to centralize services for your front-end to use. Using a back-end is not mandatory and is adds complexity to a system, but it allows to manage better the complexity inherent to the system you are trying to build.

For example it is possible to provide a service such as a wiki solely through front end but it will have many limitations that using a back-end to store the data and serve it to the front-end would resolve in a more natural fashion.

share|improve this answer
    
Your explanation is great except that you say that most websites are just front end. Perhaps in 2003, but today I was say that "most", as in, the majority, have some back-end/database interactions. –  Kyle May 4 '12 at 22:05
    
Looking at the SO, Facebook and al of this world one would relegate static web site to museum but there are still a large amount of sites, front pages for companies etc that are just that. That said you are correct that it tends to diminish quite a bit as just installing wordpress and tweaking the CSS a bit would achieve the same result in a much easier to maintain form. Note though that Front end also designate the RESTfull API that you site exposes while backend is how this API is implemented. –  Newtopian May 4 '12 at 22:57
add comment

There are two sides to any typical web app/web site.

  1. Front Side - Which control's the ui/layout/colors/fonts etc

  2. Back Side - Handles manipulation of data in the database, or file manipulation, does lots of logic, if this, do that, if not do this, etc. Integrates with the web server software such as Apache/IIS/etc, and database server software such as mySQL/PostreSQL/MS SQL Server.

The back side is the far more powerful side, because it can do so many things, from creating excel files, generating reports, doing calculations, getting data from different servers.

Then it prepares and displays that data, how the Front Side is setup.

To do well in either is hard work, lots of practice, learning, and self-discipline.

If you want to be the best, practice, and never stop learning, and never assume you know all the answers.

share|improve this answer
add comment

In my opinion server-side work (which it has already been mentioned is anything that runs on the server the website is being accessed from) is what gives a site real life. Much of the functionality can still be achieved using client-side technologies but in my opinion this is a much more complicated approach and much less secure in that clients have access to everything that is in the client-side code. PHP and ASP are in a way hybrid programming languages which are intended almost exclusively to serve webpage content to a browser after doing some computational activities. When you start working with python, ruby, java, or other programming languages you have more power and capabilities but a little more work to send resulting information to the client at the end of the process. In the end it really depends on what you want to do and what languages you're comfortable with as to what you should choose to use.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.