Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 一旦服务器接收到来自客户端的请求,它会做什么?_Http_Response - Fatal编程技术网

Http 一旦服务器接收到来自客户端的请求,它会做什么?

Http 一旦服务器接收到来自客户端的请求,它会做什么?,http,response,Http,Response,我试图深入了解服务器从客户机收到请求后会发生什么的细节 在请求指定的端口上打开套接字 然后访问资产或资源 如果资源引用cgi/脚本,该怎么办 请求信息必须经过哪些“层” 如何生成响应 我已经查找了有关“internet如何工作”和“请求-响应周期”的信息,但我正在查找服务器内部发生了什么的详细信息。这取决于服务器。Apache2服务器可以执行任意数量的请求重写、基于规则的自动响应(301、303、307、403、404、500)、启动CGI脚本、与FastCGI脚本交换数据、将一些数据传递给脚本

我试图深入了解服务器从客户机收到请求后会发生什么的细节

在请求指定的端口上打开套接字

然后访问资产或资源

如果资源引用cgi/脚本,该怎么办

请求信息必须经过哪些“层”

如何生成响应


我已经查找了有关“internet如何工作”和“请求-响应周期”的信息,但我正在查找服务器内部发生了什么的详细信息。

这取决于服务器。Apache2服务器可以执行任意数量的请求重写、基于规则的自动响应(301、303、307、403、404、500)、启动CGI脚本、与FastCGI脚本交换数据、将一些数据传递给脚本模块,如
mod_php
,等等。CouchDB web服务器将完全执行其他操作

基本上,除了解析请求并发送回相应的响应之外,web服务器没有真正的通用方面


您可以尝试查看各种web服务器的文档:Apache、IIS、lighttpd、nginx…

这取决于服务器。Apache2服务器可以执行任意数量的请求重写、基于规则的自动响应(301、303、307、403、404、500)、启动CGI脚本、与FastCGI脚本交换数据、将一些数据传递给脚本模块,如
mod_php
,等等。CouchDB web服务器将完全执行其他操作

基本上,除了解析请求并发送回相应的响应之外,web服务器没有真正的通用方面


您可以尝试查看各种web服务器的文档:Apache、IIS、lighttpd、nginx…

似乎您在区分问题的不同部分时遇到了一些困难,因此我将尽力帮助您解决这个问题

首先也是最重要的一点是,使用所谓的方法描述了理解两台计算机之间通信的常用方法。该模型试图区分协议栈中每个协议之间的责任。例如,当您在家庭网络上浏览网站时,协议栈很可能类似于

Ethernet-IPv4-TCP-HTTP
这种协议的模块化用于创建关注点的分离,这样开发人员就不必每次试图让两台计算机以某种方式通信时都“重新发明轮子”。如果你正试图编写一个聊天程序,你不想担心数据包丢失或互联网路由方法,所以你可以继续利用已经存在的较低级别协议,为你处理更多的细节

如今,当人们提到套接字通信时,他们通常使用TCP或UDP。这两种协议都称为传输协议。如果您想了解更多有关套接字通信的详细信息,我将从UDP开始,因为它是一种更简单的协议,然后再转到TCP

虽然您的web服务器知道较低级别协议中的一些信息,但实际上并没有对其进行太多处理。这主要是由操作系统库处理的,操作系统库最终会向web服务器提供一些原始HTTP数据,然后web服务器开始处理这些数据

要添加另一层,HTTP与后台运行的网关语言无关。这是相当明显的,因为无论web服务器是提供CGI perl脚本、PHP、ASP.Net还是静态HTML文件,协议都是相同的。HTTP只是发出请求,Web服务器相应地处理请求


希望这能为您澄清一些概念,让您更好地了解您试图理解的内容。

似乎您在区分问题的不同部分时遇到了一些困难,因此我将尽力帮助您解决这一问题

首先也是最重要的一点是,使用所谓的方法描述了理解两台计算机之间通信的常用方法。该模型试图区分协议栈中每个协议之间的责任。例如,当您在家庭网络上浏览网站时,协议栈很可能类似于

Ethernet-IPv4-TCP-HTTP
这种协议的模块化用于创建关注点的分离,这样开发人员就不必每次试图让两台计算机以某种方式通信时都“重新发明轮子”。如果你正试图编写一个聊天程序,你不想担心数据包丢失或互联网路由方法,所以你可以继续利用已经存在的较低级别协议,为你处理更多的细节

如今,当人们提到套接字通信时,他们通常使用TCP或UDP。这两种协议都称为传输协议。如果您想了解更多有关套接字通信的详细信息,我将从UDP开始,因为它是一种更简单的协议,然后再转到TCP

虽然您的web服务器知道较低级别协议中的一些信息,但实际上并没有对其进行太多处理。这主要是由操作系统库处理的,操作系统库最终会向web服务器提供一些原始HTTP数据,然后web服务器开始处理这些数据

要添加另一层,HTTP与后台运行的网关语言无关。这是相当明显的,因为无论web服务器是提供CGI perl脚本、PHP、ASP.Net还是静态HTML文件,协议都是相同的。HTTP只是发出请求,Web服务器相应地处理请求


希望这能为您澄清一些概念,并让您更好地了解您想要了解的内容。

您似乎将一个关于套接字通信如何工作的问题与web服务器如何工作的问题混为一谈,我不确定该回答哪个问题。很抱歉,我试图从web开发人员那里详细了解服务器中发生了什么