关于一些网络问题,请老师解惑下

来源:1-1 导学

平地一声雷d

2020-05-30 09:03:00

关于http的

  1. 如果有两个或多个请求同时发送到服务端,在不考虑什么多线程的情况下,服务端处理请求时,是必须等到一个请求处理完了,断开了后才能处理其他请求吗?如果有个http请求开通了长连接(Connection:keep-alive)的头部,岂不是这个连接会一直阻塞着?我不太懂这多个http的处理,麻烦老师解惑下

  2. 通常会存在多个请求同时出现的情况,web服务器,像nginx它们的其中作用,是不是会开启多线程或是多进程啥的,来处理同时多个请求的情况

关于node的多个请求

1 用node做后台,假如同时有多个请求进来操作数据库,会不会出现脏数据,这类问题该怎么解决

写回答

1回答

Brian

2020-05-30

关于http的

如果有两个或多个请求同时发送到服务端,在不考虑什么多线程的情况下,服务端处理请求时,是必须等到一个请求处理完了,断开了后才能处理其他请求吗?

——不是,nodejs就是专门针对这种场景而设计了异步非阻塞IO,服务器不会一直等待。

如果有个http请求开通了长连接(Connection:keep-alive)的头部,岂不是这个连接会一直阻塞着?我不太懂这多个http的处理,麻烦老师解惑下

——对于某些低频访问的资源/服务,比如一个冷门的图片服务器,一年下不了几次,每下一次连接还保持就比较浪费了。Keep-Alive可能会非常影响性能,因为它占用了服务端的连接数。

通常会存在多个请求同时出现的情况,web服务器,像nginx它们的其中作用,是不是会开启多线程或是多进程啥的,来处理同时多个请求的情况

——是的

关于node的多个请求

1 用node做后台,假如同时有多个请求进来操作数据库,会不会出现脏数据,这类问题该怎么解决

——如果有多个请求同时请求到服务器,nodejs可以很快的相应回去,瓶颈不会在nodejs侧,主要会在数据库、cpu和网络上,虽然Nodejs可以高速的响应这些请求,但是nodejs是个单进程的,执行的过程是同步的有顺序的。

脏数据可以从数据库做唯一性主键,然后就是程序侧加入数据校验,在前端也要加数据校验。

1

0 学习 · 1842 问题

查看课程