os.listdir(PATH)
os.path.isfile(): 判断一个文件的类型是否为普通文件
os.path.isdir(): 判断一个文件的类型是否为目录
threading 的多线程并发
每有一个客户端就创建一个新的线程处理客户端请求
对比多进程
优点 : 资源消耗少
缺点 : 需要处理共享资源
注意GIL问题
实现步骤
1. 创建套接字,绑定,监听
2. 接收客户端请求,创建新的线程
3. 主线程继续等待其他客户端连接,分支线程执行客户 端请求
4. 处理完客户端请求后,分支线程退出,关闭客户端套 接字
socket 服务器的继承模块
python2 SocketServer
python3 socketserver
功能 : 通过模块的接口完成基于多进程/多线程的 tcp/udp的socket并发程序
'StreamRequestHandler', 处理tcp请求
'DatagramRequestHandler', 处理udp请求
'ForkingMixIn', 建立多进程
'ForkingTCPServer', 建立多进程tcp server
'ForkingUDPServer', 建立多进程udp server
'ThreadingMixIn', 建立多线程
'ThreadingTCPServer', 建立多线程tcp server
'ThreadingUDPServer', 建立多线程udp server
'TCPServer', 建立tcp server
'UDPServer', 建立udp server
基于多线程并发的HTTPServer
1. 接收浏览器的http请求
2. 对请求进行解析
3. 根据解析判断请求内容
4. 将要返回的内容组织http响应格式发送给客户端
升级 :
* 使用多线程并发
* 增加具体请求解析
* 增加数据获取功能
* 封装使用类
技术实现 : threading 并发
tcp socket 传输
HTTP协议响应和请求的格式