GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — fullstackpython.github.com/web-servers.html at reStructuredText · ikkebr/fullstackpython.github.com Expand file tree/ Copy pathweb-servers.htmlMore file actions 168 lines (161 loc) · 9.89 KB / Copy pathweb-servers.htmlFile metadata and controls168 lines (161 loc) · 9.89 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 <!DOCTYPE html> <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="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."> <meta name="author" content="Matt Makai"> <link rel="shortcut icon" href="theme/img/full-stack-python-logo-bw.png"> <title>Full Stack Python</title> <!-- Bootstrap core CSS --> <link href="theme/css/fsp.css" rel="stylesheet"> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> <![endif]--> <style> html, body { font-size: 18px; color: #222; background: #fefefe; } body { padding-top: 30px; } .footer { padding: 20px 0 30px 0; } a, a:hover {border-bottom: 1px dotted; color: #444;} a:hover {text-decoration: none; color: #000;} .logo-title {font-size: 56px; color: #403072; padding-top: 80px; font-family: "News Cycle", "Arial Narrow Bold", sans-serif; font-weight: bold; line-height: 30px; margin-left: 5px;} .logo-title a, .logo-title a:hover {color: #000; text-decoration: none; border-bottom: none;} .logo-title a:hover {color: gray;} .logo-image {vertical-align: top; border: none;} a.list-group-item.active {background: #444; border: 1px solid #222;} a.list-group-item.active:hover {background: #444; border: 1px solid #222;} #sidebar {margin-top: 30px;} @media (max-width: 600px) { .logo-header-section { margin: 20px 32px 0 0; } } </style> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-19910497-7']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> </head> <body> <a href="https://github.com/makaimc/fullstackpython.github.com" class="github"> <img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /> </a> <div class="container"> <div class="row"> <div class="col-md-12"> <div class="logo-header-section"> <a href="/" style="text-decoration: none; border: none;"><img src="theme/img/full-stack-python-logo-bw.png" height="42" width="42" class="logo-image" /></a> <span class="logo-title"><a href="/">Full Stack Python</a></span> </div> </div> </div> <div class="row"> <div class="col-md-8"> <h1>Web Servers</h1> <p>Web servers respond to <a class="reference external" href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol">Hypertext Transfer Protocol (HTTP)</a> requests from clients. A client is usually a browser such as Internet Explorer, Firefox, or Chrome, but it can also be a</p> <ul class="simple"> <li>headless browser, which is commonly use for testing, such as <a class="reference external" href="http://phantomjs.org/">phantomjs</a></li> <li>commandline utility like <a class="reference external" href="https://www.gnu.org/software/wget/">wget</a> or <a class="reference external" href="http://curl.haxx.se/">curl</a></li> <li>a text-based web browser such as <a class="reference external" href="http://en.wikipedia.org/wiki/Lynx_(web_browser)">Lynx</a></li> <li>web crawler.</li> </ul> <p>Web server process requests from the above clients. The result of the web server's processing is a <a class="reference external" href="https://developer.mozilla.org/en-US/docs/HTTP/Response_codes">response code</a> 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> <img alt="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> <div class="section" id="web-server-resources"> <h2>Web Server Resources</h2> <p><a class="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><a class="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><a class="reference external" href="http://articles.slicehost.com/nginx">Nginx web server tutorials</a></p> <p><a class="reference external" href="http://carrot.is/coding/nginx_introduction">Nginx for Developers: An Introduction</a></p> <p><a class="reference external" href="http://tautt.com/best-nginx-configuration-for-security/">Nginx security configuration example</a></p> <p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">HTTP Status Codes</a></p> <p><a class="reference external" href="http://blog.zachorr.com/nginx-setup/">Battle ready Nginx - an optimization guide</a></p> <p><a class="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><a class="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> </div> <br/> Next read the <a href="/platform-as-a-service.html">platform-as-a-service</a> section. </div> <div class="col-md-offset-1 col-md-3" id="sidebar"> <div class="list-group"> <a href="/introduction.html" class="list-group-item ">Introduction</a> <a href="/servers.html" class="list-group-item ">Servers</a> <a href="/operating-systems.html" class="list-group-item ">Operating Systems</a> <a href="/web-servers.html" class="list-group-item active">Web Servers</a> <a href="/platform-as-a-service.html" class="list-group-item ">Platform-as-a-service</a> <a href="/databases.html" class="list-group-item ">Databases</a> <a href="/wsgi-servers.html" class="list-group-item ">WSGI Servers</a> <a href="/web-frameworks.html" class="list-group-item ">Web Frameworks</a> <a href="/task-queues.html" class="list-group-item ">Task Queues</a> <a href="/static-content.html" class="list-group-item ">Static Content</a> <a href="/caching.html" class="list-group-item ">Caching</a> <a href="/web-browsers.html" class="list-group-item ">Web Browsers</a> <a href="/web-application-security.html" class="list-group-item ">Web Application Security</a> <a href="/monitoring.html" class="list-group-item ">Monitoring</a> <a href="/web-analytics.html" class="list-group-item ">Web Analytics</a> <a href="/api-integration.html" class="list-group-item ">API Integration</a> <a href="/source-control.html" class="list-group-item ">Source Control</a> <a href="/configuration-management.html" class="list-group-item ">Configuration Management</a> <a href="/dependency-management.html" class="list-group-item ">Application Dependencies</a> <a href="/no-sql-datastore.html" class="list-group-item ">NoSQL Data Stores</a> <a href="/about-author.html" class="list-group-item ">About</a> <a href="/change-log.html" class="list-group-item ">Change Log</a> </div> </div></div> <hr/> <div class="footer pull-right"> <a href="http://www.mattmakai.com/" class="underline">Matt Makai</a> 2014 </div> </div> <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script> <script src="theme/js/bootstrap.min.js"></script> </body> </html> |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |