<metaname="description" content="Full Stack Python shows how an entire Python web application is built and deployed. Each section of the guide explains a different key concept, from the server through the Python WSGI web framework to the front end JavaScript.">
and commonly a content response. Some status codes, such as 204 (No content)
and 403 (Forbidden), do not have content responses.</p>
<p>In a simple case, the client will request a static asset such as a picture
or JavaScript file. The file sits on the file system in a location the
web server is authorized to access and the web server sends the file
to the client with a 200 status code. If the client already requested the
file and the file has not changed, the web server will pass back a 304
"Not modified" response indicating the client already has the latest version
of that file.</p>
<imgalt="Web server and web browser request-response cycles" class="technical-diagram" src="theme/img/web-browser-server-requests.png" style="width: 100%;" />
<p>A web server sends files to a web browser based on the web browser's
request. In the first request, the browser accessed the
"www.fullstackpython.com"
address and the server responded with the index.html HTML-formatted file.
That HTML file contained references to other files, such as style.css and
script.js that the browser then requested from the server.</p>
<p>Sending static assets (such as CSS and JavaScript files) can eat up a
large amount of bandwidth which is why using a Content Delivery Network
(CDN) is important when possible (see the content delivery network
section for a more detailed explanation).</p>
<divclass="section" id="web-server-resources">
<h2>Web Server Resources</h2>
<p><aclass="reference external" href="http://arstechnica.com/gadgets/2012/11/how-to-set-up-a-safe-and-secure-web-server/">How to set up a safe and secure Web server</a></p>
<p><aclass="reference external" href="http://library.linode.com/web-servers/apache/mod-wsgi/ubuntu-10.04-lucid">Apache and mod_wsgi on Ubuntu 10.04</a></p>
<p><aclass="reference external" href="http://articles.slicehost.com/nginx">Nginx web server tutorials</a></p>
<p><aclass="reference external" href="http://carrot.is/coding/nginx_introduction">Nginx for Developers: An Introduction</a></p>
<p><aclass="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">HTTP Status Codes</a></p>
<p><aclass="reference external" href="http://blog.zachorr.com/nginx-setup/">Battle ready Nginx - an optimization guide</a></p>
<p><aclass="reference external" href="http://arstechnica.com/business/2011/11/a-faster-web-server-ripping-out-apache-for-nginx/">A faster Web server: ripping out Apache for Nginx</a></p>
<p><aclass="reference external" href="http://ibuildings.nl/blog/2013/03/4-http-security-headers-you-should-always-be-using">4 HTTP Security Headers You Should Always Be Using</a></p>