总而言之,我试图从数据库中检索用户密码的盐。我计划这样做的方式是当有人试图登录时,它将使用他们的用户名并找到为该帐户保存的盐,服务器将回应它。我的问题是如果有多个人同时尝试登录,它会在同一个语句中回显两个盐,还是每个用户连接的回声分开?
答案 0 :(得分:0)
假设您使用的是 Linux / Unix 和nginx。
首先请记住在Linux / UNIX中,一切都是文件。
请求将如下所示:
浏览器 - > nginx->(FastCGI) - > php-fpm运行脚本 - >(FastCGI) - > nginx->浏览器
当请求到达nginx时,它会通过 FastCGI协议将它们发送到php-fpm。 php-fpm与master worker结构一起工作。有许多工作进程,请求将发送给工作进程。
当跑步" 回声你好" ,它将编译为操作码ECHO,并且zendVM最终将调用c函数 write()。
ssize_t write(int fd,const void * buf,size_t count);
在UNIX中,一切都是文件。 socket也是文件,因此它写入socket" hello "终于。"你好"将响应nginx。而nginx将响应浏览器。
您不必担心许多请求会收到相同的消息。
中传输通过传输连接的所有数据 FastCGI记录。 FastCGI记录完成两件事。首先,记录 多路复用几个独立的FastCGI之间的传输连接 要求。这种多路复用支持能够的应用程序 使用事件驱动或多线程处理并发请求 编程技巧。其次,记录提供了几个独立的 单个请求中每个方向的数据流。这样,为 例如,stdout和stderr数据都可以通过单个传输传递 从应用程序到Web服务器的连接,而不是 需要单独的连接。
并且
应用程序记录包含有关特定请求 t的信息, 由 requestId 组件识别。
即使有很多请求,FastCGI协议也保证每个请求都会得到不同的requestId来识别每个请求。