![nginx 和 apache 遵循什么格式向应用程序发送请求?](https://linux22.com/image/726879/nginx%20%E5%92%8C%20apache%20%E9%81%B5%E5%BE%AA%E4%BB%80%E4%B9%88%E6%A0%BC%E5%BC%8F%E5%90%91%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%8F%91%E9%80%81%E8%AF%B7%E6%B1%82%EF%BC%9F.png)
我只是在想,如果像 rails 或 laravel 这样的应用程序可以接收来自不同服务器应用程序(如 apache 或 nginx)的请求,那么服务器是否必须遵循某种排序或请求格式来向应用程序提供请求?
这是什麼格式?
或者我对此概念的理解是错误的?
答案1
你并没有错误地理解这个概念,你的想法是正确的!
有几种方法可以做到这一点:
- CGI 脚本:Web 服务器设置变量,为每个请求执行一个应用程序,在 stdin 上传递请求主体,并在 stdout 上等待 http 响应
- 代理:应用程序是它自己的 Web 服务器,而 nginx/apache 只是它的代理
- uwsgi/fastcgi:应用程序和 apache 通过套接字进行通信,使用特殊协议传输请求/响应信息
- 内置模块(例如 apache 中的 mod_php):Web 服务器嵌入了脚本语言的解释器。
答案2
我认为您正在寻找的术语是 SAPI - 服务器应用程序接口,更具体地说是 ISAPI(IIS)和 NSAPI(Netscape,如果它们仍然存在?)。
请查看针对特定语言(PHP)问题的答案,了解所有这些是如何工作的 -https://stackoverflow.com/a/38669983/6867430