网站服务器如何处理客户端请求,实际的Web服务器处理客户端请求的步骤分析

news/2024/5/21 20:59:28/文章来源:https://blog.csdn.net/weixin_35061887/article/details/119506649

第一步——接受客户端连接

接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭。

第二步——接收请求报文

从网络中读取一条HTTP请求报文

解析报文1. 解析请求行,查找请求方法、指定的资源标识符(URI)以及版本号,各项之间由一个空格分隔,并以一个回车换行(CRLF)序列作为行的结束;

2. 读取以CRLF结尾的报文首部;

3. 检测到以CRLF结尾的、标识首部结束的空行(如果有的话);

4. 如果有的话(长度由Content-Length首部指定),读取请求主体。

报文的内部表示法

有些Web服务器还会用便于进行报文操作的内部数据结构来存储请求报文

bVcSIZj

连接的输入/输出处理结构

不同的Web服务器结构会以不同的方式为请求服务

单线程Web服务器

一次只处理一个请求,直到其完成为止。一个事务处理结束之后,才去处理下一条连接

多进程及多线程Web服务器

服务器会为每条连接分配一个线程/进程;但当服务器同时要处理成百、上千,甚至数以万计的连接时,需要的进程或线程数量可能会消耗太多的内存或系统资源。因此,很多多线程Web服务器都会对线程/进程的最大数量进行限制。

复用I/O的服务器

Web服务器都采用了复用结构。在复用结构中,要同时监视所有连接上的活动。当连接的状态发生变化时(比如,有数据可用,或出现错误时),就对那条连接进行少量的处理;处理结束之后,将连接返回到开放连接列表中,等待下一次状态变化。只有在有事情可做时才会对连接进行处理;在空闲连接上等待的时候并不会绑定线程和进程。

复用的多线程Web服务器

有些系统会将多线程和复用功能结合在一起,以利用计算机平台上的多个CPU。多个线程(通常是一个物理处理器)中的每一个都在观察打开的连接(或打开的连接中的一个子集),并对每条连接执行少量的任务

第三步——处理请求

对请求报文进行解释,并采取行动,比如post可能提交了一些信息,服务器需要来处理这些信息

第四步——对资源的映射及访问

访问报文中的指定资源,比如Get请求根据地址映射获取服务器上的某个文件。

docroot

通常,Web服务器的文件系统中会有一个特殊的文件夹专门用于存放Web内容。这个文件夹被称为文档的根目录(document root,或docroot)。Web服务器从请求报文中获取URI,并将其附加在文档根目录的后面。

很多web服务器都支持配置document 在配置文件httpd.conf中添加一个DocumentRoot行就可以为Apache Web服务器设置文档的根目录了:

DocumentRoot /usr/local/httpd/files

虚拟托管的docroot

虚拟托管的Web服务器会在同一台Web服务器上提供多个Web站点;每个站点在服务器上都有自己独有的文档根目录。虚拟托管Web服务器会根据URI或Host首部的IP地址或主机名来识别要使用的正确文档根目录。通过这种方式,即使请求URI完全相同,托管在同一Web服务器上的两个Web站点也可以拥有完全不同的内容了。

解析目录

我们可以对大多数Web服务器进行配置,使其在客户端请求目录URL时采取不同的动作。1. 返回一个错误。

2. 不返回目录,返回一个特殊的默认“索引文件”(Web服务器可自行配置索引优先级)。

3. 扫描目录,返回一个包含目录内容的HTML页面(自动生成且返回一个展示目录下的所有文件/目录的html文件)。

大多数Web服务器都会去查找目录中一个名为index.html或index.htm的文件来代表此目录。如果用户请求的是一个目录的URL,而且这个目录中有一个名为index.html(或index.htm)的文件,服务器就会返回那个文件的内容。

第五步——构建响应

一旦Web服务器识别出了资源,就执行请求方法中描述的动作,并返回响应报文。

响应实体

如果事务处理产生了响应主体,就将内容放在响应报文中回送过去。

响应报文中通常包括:1. 描述了响应主体MIME类型的Content-Type首部;

2. 描述了响应主体长度的Content-Length首部;

3. 实际报文的主体内容。

重定向

Web服务器有时会返回重定向响应而不是成功的报文。Web服务器可以将浏览器重定向到其他地方来执行请求。重定向响应由返回码3XX说明。Location响应首部包含了内容的新地址或优选地址的URI。重定向可用于下列情况。

永久搬离的资源

资源可能已经被移动到了新的位置,或者被重新命名,有了一个新的URL。态码301Moved Permanently就用于此类重定向。

临时搬离的资源

如果资源被临时移走或重命名了,服务器可能希望将客户端重定向到新的位置上去。状态码303 See Other以及状态码307 Temporary Redirect就用于此类重定向。

URL增强

服务器通常用重定向来重写URL,往往用于嵌入上下文。当请求到达时,服务器会生成一个新的包含了嵌入式状态信息的URL,并将用户重定向到这个新的URL上去。[插图]客户端会跟随这个重定向信息,重新发起请求,但这次的请求会包含完整的、经过状态增强的URL。这是在事务间维护状态的一种有效方式。状态码303 See Other和307 Temporary Redirect用于此类重定向。

负载均衡

如果一个超载的服务器收到一条请求,服务器可以将客户端重定向到一个负载不太重的服务器上去。状态码303 See Other和307 TemporaryRedirect可用于此类重定向。

第六步——发送响应

将响应报文返回给客户端

第七步——记录日志

最后,当事务结束时,Web服务器会在日志文件中添加一个条目,来描述已执行的事务。大多数Web服务器都提供了几种日志配置格式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_739011.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抓取一个连续的网页_做了这么久SEO优化,想必你很了解“网页快照”

在网站做SEO优化时,我们经常能接触到一个关键词就是“网页快照”,那么什么是网页快照呢?当搜索引擎在收录网站时,会对网页进行备份,存在自己的服务器缓存里,当用户在搜索引擎中点击“网页快照”链接时,搜索…

为什么wifi有些网站进不去_有些网站为什么不能访问

很多人会问一个简单的问题,网址失效,网站访问不了,网站打不开了,网站屏蔽了。 简单说一下网站打不开的几点问题,网站打不开一般分为三种: 1、网站关闭打不开 2、网站被Q打不开 3、网站被浏览器监测屏蔽打不开 其中第1是你如何都打不开的,因为网站关闭,网络上就不存在这…

网站镜像服务器,什么是网站镜像,什么又是恶意网站镜像?

原标题:什么是网站镜像,什么又是恶意网站镜像?什么是网站镜像?什么又是恶意网站镜像?什么是网站镜像 网站镜像指的是把相同的数据存放在不同的服务器,镜像网站可以及时同步主站数据,像主站的一面…

php 获取其他页面的cookie_cookie的网站统计相关知识

什么是 Cookie?Cookie 是您访问过的网站创建的文件,用于存储浏览信息,例如您的网站偏好设置或个人资料信息。共有两种类型的 Cookie:第一方 Cookie 是由地址栏中列出的网站域设置的 Cookie,而第三方 Cookie 来自在网页…

php用ajax对seo,原生JS实现Ajax通过POST方式与PHP进行交互的方法示

通过POST方式与PHP进行交互var xmlHttp; //定义XMLHttpRequest对象function createXmlHttpRequestObject(){if(window.ActiveXObject){ //如果在internet Explorer下运行try{xmlHttpnew ActiveXObject("Microsoft.XMLHTTP");}catch(e){xmlHttpfalse;}}else{try{ //如…

linux系统在pe下查看ip地址,pe下查看原系统ip的方法_网站服务器运行维护

linux查看php环境是否安装_网站服务器运行维护linux查看php环境是否安装的方法:1、执行【find / -name php.ini】命令,查看系统是否有php的配置文件;2、执行【netstat -ntpl】命令,查看9000端口是否在运行。pe下查看原系统ip的方法…

【转发】淘宝网采用什么技术架构来实现网站高负载的

淘宝网采用什么技术架构来实现网站高负载的 2012-11-15 12:30 佚名 转载字号:T|T下面就结合淘宝目前的一些底层技术框架以及自己的一些感触来说说如何构建一个可 伸缩,高性能,高可用性的分布式互联网应用。 AD:2013云计算架构师峰…

新浪微博html5模板,个人主题建站首选微博秀模板,仿新浪微博官网

很久之前就想弄这个仿微博的模板了,但是时间一直不允许,这不抽空弄出来了,主题简单明了,后台设置简单,无需复杂操作,比起以往的CMS主题要简单的多,太适合做个人博客的网站了,当然这不…

【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器(转)

出处:http://edisonchou.cnblogs.com/ 一、反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从…

大型网站系统架构分析大型网站系统架构分析

千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性? 首先讨论一下大型网站需要注意和考虑的问题。 数据库海量数据处理:负载量不大的情况下select、…

换服务器影响网站排名,换服务器对网站排名有影响吗?

很多站长朋友也许都会碰到这个问题,由于网站要备案从而要把数据搬移到其他服务器上去,都会先在网上搜索一下相关的信息,怕更换过后的服务器IP发生了更改,会影响百度蜘蛛的对网站的爬行,继而影响网站的收录和排名&#…

让你的网站免费支持 HTTPS 及 Nginx 平滑升级

为什么要使用 HTTPS ? 首先来说一下 HTTP 与 HTTPS 协议的区别吧,他们的根本区别就是 HTTPS 在 HTTP 协议的基础上加入了 SSL 层,在传输层对网络连接进行加密。简单点说在 HTTP 协议下你的网站是光着身子在奔跑,但到了 HTTPS 下你穿了一件衣…

PHP网站漏洞poc,ThinkPHP-5.0.23新的RCE漏洞测试和POC

TP5新RCE漏洞昨天又是周五,讨厌周五曝漏洞,还得又得加班,算了,还是先验证一波。新的TP5RCE,据说发现者因为上次的RCE,于是又审计了代码,结果发现的。TP5也成了万人轮啊。测试环境搭建windows下p…

商城网站优化

在一次正常的活动促销之后,客服开始陆续反馈有用户反应在抢标的时候打不开网页或者APP,在打开的时候标的就已经被抢光了,刚开始没有特别的上心,觉得抢标不就是这样吗,抢小米手机的时候也不就这样吗?随着活动…

php 架构的网站 如何上传.sql文件到远程主机并用它部署数据库,技巧和诀窍: 如何上传一个.SQL文件到远程主机并且执行它来部署一个SQL数据库...

上个月 (英文),我讨论了新的(免费的)数据库发布向导,它是设计来充分简化在web主机环境中上传和部署 SQL Express 和 SQL Server数据库的。在 第一个关于数据库发布的贴子 (英文)里 ,我示范了你如何可以使用数据库发布向导自动生成 .SQL 安装文…

网站服务器间歇性打不开,网站打不开的常见原因之域名解析问题

建站是为了更好地进行宣传,引导访客订阅或成交消费,如果网站经常打不开,用户体验就会很差,对企业的影响也很大。相信大多数人都有类似的经历,兴致勃勃打开一个网站,结果半天没有响应,好不容易打…

iframe 无权限 不通网站_神马蜘蛛池 - 网站内页不收录的原因分析

原出处:最蜘蛛池原文链接:http://www.zuizhizhu.com神马蜘蛛池 www.zuizhizhu.com 快速提高网站收录、外推收录,百度蜘蛛池、搜狗蜘蛛池、360蜘蛛池、神马蜘蛛池、繁殖池、权重池;最蜘蛛池35台智能服务器,每天超千万蜘…

服务器上网站管理系统登录,云服务器管理平台 使用标准登录方式登录

WebShell 为腾讯云推荐的登录方式。无论您的本地系统为 Windows,Linux 或者 Mac OS,只要实例购买了公网 IP,都可以通过 WebShell 登录。本文介绍如何使用标准登录方式(WebShell)登录 Linux 实例。WebShell 优点如下:支持快捷键复制…

httppost传递内容过大_网站内容页的SEO排名技巧

SEO优化的意图是获取查找引擎流量,但在SEO履行中却需求分阶段周期进行,以此确保SEO方案的可行性以及SEO进程的可控性。按照引流的意图进行SEO进程倒推,想要获取查找引擎流量,需求的是关键词排名,获取关键词排名首先要确…