关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

Python web的伪静态以及并发web服务器

发布时间:2021-04-05 19:36:59

一、总体内容


二.固定页数的显示


2.1.服务器端代码(Tcp)


服务器端


3.TCP长连接和短连接TCP必须在真正的读写操作之前在服务器和客户端之间建立连接,当读写操作完成时,当连接不再需要时,双方可以解除连接。连接是通过三次握手建立的,释放需要四次握手,因此建立每个连接需要消耗资源和时间。


3.1.TCP通信的整个过程,如下图所示:


3.2.TCP短连接模拟TCP短连接:


在第5步中,客户端通常首先启动关闭操作。当然,我们不排除特殊情况。根据上述描述,短连接通常只在客户机/服务器之间传递一次读写操作!


3.3.TCP长连接重新模拟长连接:


3.4.TCP长/短连接操作过程


(1)短连接的操作步骤是建立连接-数据传输-关闭连接。建立连接-数据传输-关闭连接。


(2)长连接的操作步骤是建立连接--数据传输.(保持连接)。数据传输--关闭连接。


3.5.长/短TCP连接的优缺点


3.6.TCP长/短连接的应用方案


长连接通常用于频繁操作,点对点通信,连接的数量不能太多。每个tcp连接需要三次握手,这需要时间。如果每个操作先连接,那么处理速度就会低得多,因此每次操作之后,每个操作都会继续打开,在再次处理时将数据包直接发送到OK,因此不需要建立tcp连接。例如,数据库连接很长,如果频繁与短连接通信会导致套接字错误,频繁的套接字创建也是浪费资源。


WEB服务器的高并发


4.返回浏览器和并发服务器所需的接口分析


4.1.服务器端代码




4.2.HTTP服务器的多进程实现


4.3.多线程实现http服务器更改上述代码,同时进行以下修改:


4.3.通过协作gEvent实现http服务器


4.5、EPOLL


IO复用


EPOLL简单模型


注意-EPOLLIN(可读)-EPOLLOUT(可写)-EPOLLET(ET模式)EPOLL对文件描述符有两种操作模式:LT(级别触发器)和ET(EDGE触发器)。LT模式是默认模式,LT模式与ET模式的区别如下:


WebStaticserver-epool:下面支持与http的长连接的代码,即使使用内容长度(即返回内容的长度)


摘要:I/O复用的特点:‘


一种机制允许进程同时等待多个文件描述符,任何文件描述符都可以通过输入ReadReady状态EPOLL()函数返回。因此,IO复用,本质上没有并发功能,因为在任何时候仍然只有一个进程或线程可以工作,因为选择轮询将传入的套接字放在他们的监视列表中,当任何套接字立即具有可读和可写的数据处理时,如果选择轮询同时检测到大量的套接字,那么当它返回到进程处理时,它比一次访问一个套接字、阻塞等待和有效地处理它要好。


当然,您也可以采用多线程/多进程模式,一个连接打开进程/线程处理,这样占用的内存和进程切换页面将消耗更多的系统资源。因此,我们可以将IO复用和多线程/多线程结合起来,以实现高性能的并发。IO重用负责提高接受套接字的通知效率,当收到请求时,它被移交给进程池/线程池来处理逻辑。





/template/Home/Zkeys/PC/Static