http本身不能作为应用程序协议运行。它需要以硬件和软件解决方案的形式提供基础设施,这些解决方案提供不同的服务,并使通过万维网的通信成为可能和有效的。
这是http系列的第二部分。
在这里,您将了解更多信息:
web服务器代理服务器高速缓存网关,隧道和中继网络爬虫这些是我们互联网生活中不可或缺的一部分,您将准确了解每一项的目的是什么,以及它是如何运作的。这些知识将帮助您连接第一篇文章中的点,并更好地了解http通信的流程。
web服务器
正如第一篇文章所解释的那样,web服务器的主要功能是存储资源并在接收请求时为它们提供服务。您使用web客户端(也称为web浏览器)访问web服务器,然后获取所请求的资源或更改现有资源的状态。使用web爬虫也可以自动访问web服务器,我们将在本文后面讨论。
一些最流行的web服务器,你听说过的可能是apache http server,nginx,iis等。
web服务器可以从简单易用,到复杂和复杂的软件。现代web服务器能够执行许多不同的任务。web服务器应该能够执行的基本任务:
设置连接 -?接受或关闭客户端连接接收请求 -?读取http请求消息处理请求 -?解释请求消息并采取措施访问资源 -?访问消息中指定的资源构造响应 -?创建http响应消息发送响应 -将响应?发送回客户端日志事务 -?在日志文件中写入已完成的事务我将在几个不同的阶段分解web服务器的基本流程。这些阶段代表了web服务器流程的一个非常简化的版本。
阶段1:设置连接
当web客户端想要访问web服务器时,它必须尝试打开新的tcp连接。另一方面,服务器尝试提取客户端的ip地址。之后,服务器决定打开或关闭与该客户端的tcp连接。
如果服务器接受连接,它会将其添加到现有连接列表中并监视该连接上的数据。
如果客户端未经授权或列入黑名单(恶意),它也可以关闭连接。
服务器还可以尝试使用“反向dns”来识别客户端的主机名。记录消息时此信息可以提供帮助,但主机名查找可能需要一段时间,从而减慢了事务的速度。
阶段2:接收/处理请求
解析传入请求时,web服务器会解析消息请求行,标题和正文(如果提供)中的信息。需要注意的一点是,连接可以随时暂停,在这种情况下,服务器必须临时存储信息,直到它收到其余数据。
高端web服务器应该能够打开许多同时连接。这包括来自同一客户端的多个同时连接。典型的网页可以从服务器请求许多不同的资源。
阶段3:访问资源
由于web服务器主要是资源提供者,因此他们有多种方式来映射和访问资源。
最简单的方法是映射资源是使用请求uri在web服务器的文件系统中查找文件。通常,资源包含在服务器上的特殊文件夹中,名为docroot。例如,windows服务器上的docroot可以位于f: webresources 上。如果get请求想要访问/images/codemazeblog.txt上的文件,服务器会将其转换为f: webresources images codemazeblog.txt并在响应消息中返回该文件。当web服务器上托管多个网站时,每个网站都可以拥有单独的docroot。
如果web服务器收到对目录而不是文件的请求,它可以通过几种方式解决它。它可以返回错误消息,返回默认索引文件而不是目录,或扫描目录并返回包含内容的html文件。
服务器还可以将请求uri映射到动态资源 - 生成某些结果的软件应用程序。有一类称为应用程序服务器的服务器,其目的是将web服务器连接到复杂的软件解决方案并提供动态内容。
阶段3:生成并发送响应
一旦服务器识别出它需要服务的资源,它就形成响应消息。响应消息包含状态代码,响应标头和响应正文(如果需要)。
如果正文存在于响应中,则消息通常包含描述正文大小的content-length标头和描述返回资源的mime类型的content-type标头。
生成响应后,服务器会选择发送响应所需的客户端。对于非持久连接,服务器需要在发送整个响应消息时关闭连接。
阶段4:记录
事务完成后,服务器会将所有事务信息记录在文件中。许多服务器提供日志记录定制。
网络兼职赚钱是真的吗?传统企业进入电商九点思考和操作如何设计网站才能吸引流量深圳网站公司讲解网站有流量还是不够的网站策划-网站建设的灵魂刷抖音作品点赞优化过程中建设的重点企业进行软文推广需要注意的几个方面的问题网站优化小知识点,有利于提高网站优化