From http://www.zhihu.com/question/19854853
Python network programming is a big category, the personal feeling need to grasp the points are:
1. How to use Python to create a socket, how to bind a socket to a specified IP address and port, use a socket to send data, accept data,
2. How to work with threads in Python to write a Web server that can handle multiple requests at the same time
3. How to use Python to control the logic of the HTTP layer, including how to create an HTTP Get,post,put,delete request, how to handle the received HTTP request, which are related to Python httplib, basehttpserver and other modules
4. Master a basic Python web development framework, such as Webpy, Django,pylon
5. Understand the non-blocking HTTP Server, such as tornado
6. Learn about twisted, a message-driven network engine written by Python
IO Model: There are 5 main types of I/O models in Unix systems: blocking I/O, non-blocking i/o;i/o multiplexing, signal-driven I/O, asynchronous I/O;
Resources:
Basic knowledge of the network
1. Http:the Definitive Guide http://www.amazon.com/HTTP-Definitive-Guide-David-Gourley/dp/1565925092/
2. Computer Networking:a Top-down Approach http://www.amazon.com/Computer-Networking-Top-Down-Approach-Edition/dp/ 0136079679/ref
http://www.binarytides.com/category/sockets/python-sockets-sockets/
Python Network Programming Basics
1. Python Network programming http://www.amazon.com/Foundations-Python-Network-Programming-Goerzen/dp/1590593715
2. Python Socket Programming Documentation http://docs.python.org/library/socket.html
3. Python Httplib documentation http://docs.python.org/library/httplib.html
Python Common Framework Documentation:
1. Django's official website https://www.djangoproject.com/
2. Twisted's official website http://twistedmatrix.com/trac/
3. Tornado's official website http://www.tornadoweb.org/
Python Network Programming Essentials