Most recent change of BackendWebFramework

Edit made on November 25, 2015 by ColinWright at 11:27:27

Deleted text in red / Inserted text in green

WW
HEADERS_END
All web applications fundamentally run the same loop on the server:

* read in an HTTP request from a client
* perform some computation based on it
* construct the appropriate HTTP response
* send the response back to the client.

This means that there are a lot of common tasks that don't vary much from application to application. A backend web framework is a library, or collection of libraries, providing functionality useful across many web apps. For instance, many frameworks provide code to perform these common tasks:

* talking to WebServers, to get the HTTP requests and to send the responses
* parsing HTTP requests to extract the parameters the user supplied
* talking to Databases, to store and query information that must be retained from one request to the next
* allowing users to create accounts, log in and out, update their passwords, etc
* generating HTML from your data
* adding cache-expiry tags to generated web pages, so WebBrowsers don't fetch them again needlessly.

People generally use the term "framework" rather than "library" because they generally call your code (in steps 2 and 3 of the loop above) rather than the other way round; this forces you to adapt your thinking to them. Many also impose a preferred structure on the program, such as ModelViewController.

Examples: Django, RubyOnRails, Dancer, Yesod.

COLUMN_START^
[[[ At a lower lever:
* Database
* HTTPServer
* CompilerInterpreter
* LanguageRuntime
]]]
COLUMN_SPLIT^
[[[ |>>
"Full Stack Developer" _
An exploration.
<<| ]]]
COLUMN_SPLIT^
[[[ At a higher level:
* BackendWebAppCode
]]]
COLUMN_END