摘要:
@[toc] 1.介绍 epoll是一种解决方案,nginx就是用的这个 中心思想:不要再使用多进程,多线程了,使用单进程,单线程去实现并发 在上面博客实现的代码中使用过的轮询去查看套接字有没有数据,而epoll是主动通知 当使用多进程的时候,是复制一份资源去查看,epoll不用复制,直接来 优势: 阅读全文
摘要:
@[toc] 1.说明 每次new_socket都被强制关闭,造成短连接 所提不要关闭套接字 但是不关闭的话,浏览器不知道发完没有啊 此时用到header的属性Content Length http_header += "Content Length:%d\r\n\r\n" % len(http_b 阅读全文
摘要:
@[toc] 1.分析 当socket去监听的时候,是堵塞的状态 通过tcp_sever_socket.setblocking(False)去设置不堵塞 当socket发现没有用户的时候会出错,执行异常 当连接上用户的时候会马上把用户发到socket列表中 再遍历socket列表时候也设置,new的 阅读全文
摘要:
@[toc] 1.分析 随着网站的用户量越来愈多,通过多进程多线程的会力不从心 使用协程可以缓解这一问题 只要使用gevent实现 2.代码 关于作者 "个人博客网站" "个人GitHub地址" 个人公众号: 阅读全文
摘要:
@[toc] 1.优化分析 在单进程的时候,相当于 是来一个客户,派一个人去服务一下 效率低,现在使用多进程来服务 假设场景 100个人同时访问页面 单进程:一次处理,后面的会等待时间长 多进程:并发处理,一起处理 当然进程不能越多越好,硬件不支持 线程的开销比进程少,但最好使用协程 注意 用pro 阅读全文
摘要:
@[toc] 1.说明 使用正则表达式,匹配客户端的请求头 获取到请求的路径 返回对应请求路径的文字 可以使用打开对应文件的方式去返回对应的文件 2.代码 关于作者 "个人博客网站" "个人GitHub地址" 个人公众号: 阅读全文
摘要:
@[toc] 1.注意 浏览器解析的时候偶\r\n才算一个换行符 发送的str要编码,这里使用的是utf8 其他的都和上一篇没有什么区别 这里主要返回的是固定的网址 2.代码 关于作者 "个人博客网站" "个人GitHub地址" 个人公众号: 阅读全文
摘要:
@[toc] 1.HTTP分析 当你去访问一个网址的时候,浏览器会发送而各种头信息给服务器 然后服务器根据信息,返回一定数据的格式 最简单的就是下面的代码 自己构造返回数据的时候,头信息一定放在前面 当出现空格的时候,下一行就是返回的超文本HTML 2.简单服务器 说明 创建一个socket对象,配 阅读全文
摘要:
@[toc] 其他api说明 说明 常用的就是先定义一个pattern 然后写规则,注意要在字符串前写个r,防止转义 然后在pattern.findall(string) ,返回的是一个列表,就算只有一个匹配返回的也是列表 关于作者 "个人博客网站" "个人GitHub地址" 个人公众号: 阅读全文
摘要:
@[toc] 1.邮箱 2.手机号码 关于作者 "个人博客网站" "个人GitHub地址" 个人公众号: 阅读全文