服务器端请求的含义

Ano*_*Mou 6 php httprequest psr-7

我想知道是否有人可以向我解释服务器端请求的含义.它可能只是我不太了解的术语.对我而言,这听起来像是从服务器到客户端的请求,但我认为不是这样.

这是关于PHP PSR7.我试图找出为什么它同时具有RequestInterfaceServerRequestInterface.我无法在任何地方找到关于它的任何东西,我无法看到为什么这两个不仅仅合并到一个界面的原因.

Rus*_*nov 5

我同意"服务器端请求"的含义并不清楚.众所周知,HTTP请求是由客户端(浏览器,机器人,REST API用户等)发送的,毕竟是由服务器接收的.但是,"服务器"一词可能指的是不同环境中的不同内容.

HTTP服务器(如Apache,Nginx和Microsoft IIS )接收HTTP请求.服务器提供服务器应用程序编程接口(SAPI),它特别允许对Web服务器解析的信息进行后处理.

PHP引擎(Zend)通过其SAPI(服务器API)模块与不同的环境进行交互.该模块由许多子模块组成:CLI(命令行接口),CGI(通用网关接口),Apache,FPM(FastCGI过程管理器)等.每个人都对PHP超级全局的内容有自己的想法(例子).

原始HTTP请求由Web服务器解析.PHP通过SAPI从Web服务器请求解析的数据进行进一步处理,然后以超级全局形式将其传递给我们.

RequestInterface因此代表第一个简单的HTTP请求,它不会将其标题或消息体的部分分类为cookie,上传数据,GET或POST变量等,因为它在官方文档中间接提到:

RequestInterfaceResponseInterfaceRFC 7230中描述的请求和响应消息基本上具有1:1的相关性.它们提供了用于实现与它们建模的特定HTTP消息类型相对应的值对象的接口.

它仅提供常见请求参数的接口,例如URI,方案,查询和端口.

ServerRequestInterface表示HTTP消息(请求)的简单表示的解析版本.它引入了对消息的逻辑分类部分的访问,服务器端生成的部分:上载的文件,cookie,服务器参数等.

我建议将其RequestInterface视为来自客户端的HTTP请求.而ServerRequestInterface作为已经不大客户端的请求,原始请求=),即版本服务器(SAPI)修改.