■ Contents
xi
Caching and Validation ��������������������������������������������������������������������������������������������������������������158
Content Encoding ����������������������������������������������������������������������������������������������������������������������161
Content Negotiation �������������������������������������������������������������������������������������������������������������������161
Content Type ������������������������������������������������������������������������������������������������������������������������������163
HTTP Authentication ������������������������������������������������������������������������������������������������������������������163
Cookies �������������������������������������������������������������������������������������������������������������������������������������� 165
Connections, Keep-Alive, and httplib �����������������������������������������������������������������������������������������166
Summary ����������������������������������������������������������������������������������������������������������������������������������� 167
■ Chapter 10: HTTP Servers ����������������������������������������������������������������������������������������������169
WSGI ������������������������������������������������������������������������������������������������������������������������������������������ 169
Asynchronous Server-Frameworks �������������������������������������������������������������������������������������������171
Forward and Reverse Proxies ���������������������������������������������������������������������������������������������������171
Four Architectures ���������������������������������������������������������������������������������������������������������������������172
Running Python Under Apache �������������������������������������������������������������������������������������������������������������������������� 174
The Rise of Pure-Python HTTP Servers ������������������������������������������������������������������������������������������������������������� 174
The Benefits of Reverse Proxies ������������������������������������������������������������������������������������������������������������������������ 174
Platforms as a Service ��������������������������������������������������������������������������������������������������������������175
GET and POST Patterns and the Question of REST ��������������������������������������������������������������������176
WSGI Without a Framework �������������������������������������������������������������������������������������������������������178
Summary ����������������������������������������������������������������������������������������������������������������������������������� 182
■ Chapter 11: The World Wide Web ����������������������������������������������������������������������������������183
Hypermedia and URLs ���������������������������������������������������������������������������������������������������������������183
Parsing and Building URLs �������������������������������������������������������������������������������������������������������������������������������� 184
Relative URLs ����������������������������������������������������������������������������������������������������������������������������������������������������� 186
The Hypertext Markup Language ����������������������������������������������������������������������������������������������188
Reading and Writing to a Database �������������������������������������������������������������������������������������������191
A Terrible Web Application (in Flask) �����������������������������������������������������������������������������������������192