From http://www.zhihu.com/question/19854853
Python网络编程是一个很大的范畴,个人感觉需要掌握的点有:
1. 如何使用Python来创建socket, 如何将socket与指定的IP地址和端口进行绑定,使用socket来发送数据,接受数据,
2. 如何使用Python中处理线程,从而编写可以同时处理多个请求的web服务器
3. 如何使用Python来控制HTTP层的逻辑,包括如何创建http GET,POST,PUT,DELETE请求,如何处理接受到的HTTP请求,这些分别涉及python的httplib, basehttpserver等模块
4. 掌握一种基本的python的web开发框架,比如webpy, django,pylon
5. 了解非阻塞式的HTTP Server,比如tornado
6. 了解twisted, python编写的消息驱动的网络引擎
io model:在 Unix 系统中主要有 5 种 I/O 模型:阻塞式 I/O;非阻塞式 I/O;I/O 多路复用;信号驱动式 I/O;异步 I/O;
参考:http://www.cricode.com/3510.html
参考资料:
网络基础知识
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 网络编程基础
1. python 网络编程 http://www.amazon.com/Foundations-Python-Network-Programming-Goerzen/dp/1590593715
2. python socket编程的文档 http://docs.python.org/library/socket.html
3. python httplib的文档 http://docs.python.org/library/httplib.html
python常用框架文档:
1. django 的官方网站 https://www.djangoproject.com/
2. twisted 的官方网站 http://twistedmatrix.com/trac/
3. tornado 的官方网站 http://www.tornadoweb.org/