导航:首页 > 配服务器 > 服务器如何对特定请求延时

服务器如何对特定请求延时

发布时间:2023-01-19 07:36:35

1. 第五章:Web服务器

5.1各种形状和尺寸的Web服务器
Web服务器会对HTTP请求进行处理并提供响应。术语“Web服务器”可以用来表示Web服务器的软件,也可以用来表示提供Web页面的特定设备或计算机。
Web服务器有着不同的风格、形状和尺寸。有普通的10行Perl脚本的Web服务器、50MB的安全商用引擎以及极小的卡上服务器。但不管功能有何差异,所有的 Web服务器都能够接收请求资源的 HTTP请求,将内容回送给客户端(参见图1-5)。
5.1.1Web服务器的实现
Web服务器实现了HTTP和相关的TCP连接处理。负责管理Web服务器提供的资源,以及对Web服务器的配置、控制及扩展方面的管理。
Web服务器逻辑实现了HTTP 协议、管理着Web资源,并负责提供Web服务器的管理功能。Web服务器逻辑和操作系统共同负责管理TCP连接。底层操作系统负责管理底层计算机系统的硬件细节,并提供了TCP/IP网络支持、负责装载Web资源的文件系统以及控制当前计算活动的进程管理功能。

5.3实际的Web服务器会做些什么
例5-1显示的 Perl服务器是一个Web服务器的小例子。最先进的商用Web服务器要比它复杂得多,但它们确实执行了几项同样的任务,如图5-3所示。
(1)建立连接一—接受一个客户端连接,或者如果不希望与这个客户端建立连接,就
将其关闭。
(2)接收请求——从网络中读取一条HTTP请求报文。(3)处理请求——对请求报文进行解释,并采取行动。(4)访问资源-———访问报文中指定的资源。
(5)构建响应——创建带有正确首部的 HTTP响应报文。(6)发送响应——将响应回送给客户端。
(7)记录事务处理过程—-将与已完成事务有关的内容记录在一个日志文件中。

5.4第一步——接受客户端连接
如果客户端已经打开了一条到服务器的持久连接,可以使用那条连接来发送它的请求。否则,客户端需要打开一条新的到服务器的连接(回顾第4章,复习一下HTTP的连接管理技术)。

5.4.1处理新连接
客户端请求一条到Web服务器的TCP连接时,Web服务器会建立连接,判断连接的另一端是哪个客户端,从TCP连接中将IP地址解析出来。'一旦新连接建立起来
并被接受,服务器就会将新连接添加到其现存Web服务器连接列表中,做好监视连接上数据传输的准备。
Web服务器可以随意拒绝或立即关闭任意一条连接。有些Web服务器会因为客户端IP地址或主机名是未认证的,或者因为它是已知的恶意客户端而关闭连接。Web服务器也可以使用其他识别技术。

5.4.2客户端主机名识别
可以用“反向 DNS”对大部分Web服务器进行配置,以便将客户端IP地址转换成客户端主机名。Web服务器可以将客户端主机名用于详细的访问控制和日志记录。但要注意的是,主机名查找可能会花费很长时间,这样会降低Web事务处理的速度。很多大容量Web服务器要么会禁止主机名解析,要么只允许对特定内容进行解析。
可以用配置指令HostnameLookups启用Apache的主机查找功能。比如,例5-2中的Apache配置指令就只打开了HTML和CGI资源的主机名解析功能。
例5-2配置Apache,为 HTML和CGI资源查找主机名
HostnameLookups off
<Files ~" - 《html |htmlcgi)$">
HostnameLookups on
</Files>

5.5第二步—接收请求报文
连接上有数据到达时,Web服务器会从网络连接中读取数据,并将请求报文中的内容解析出来(参见图5-5)。
解析请求报文时,Web服务器会:
·解析请求行,查找请求方法、指定的资源标识符(URI)以及版本号,3各项之
间由一个空格分隔,并以一个回车换行(CRLF)序列作为行的结束,“
·读取以CRLF结尾的报文首部;
检测到以CRLF结尾的、标识首部结束的空行(如果有的话)﹔
·如果有的话(长度由content-Length首部指定),读取请求主体。

解析请求报文时,Web服务器会不定期地从网络上接收输入数据。网络连接可能随时都会出现延迟。Web服务器需要从网络中读取数据,将部分报文数据临时存储在内存中,直到收到足以进行解析的数据并理解其意义为止。
5.5.1 报文的内部表示法
有些Web服务器还会用便于进行报文操作的内部数据结构来存储请求报文。比如,数据结构中可能包含有指向请求报文中各个片段的指针及其长度,这样就可以将这些首部存放在一个快速查询表中,以便快速访问特定首部的具体值了(参见图5-6)。

5.5.2连接的输入/输出处理结构
高性能的 Web服务器能够同时支持数千条连接。这些连接使得服务器可以与世界各地的客户端进行通信,每个客户端都向服务器打开了一条或多条连接。某些连接可能在快速地向Web服务器发送请求,而其他一些连接则可能在慢慢发送,或者不经常发送请求,还有一些可能是空闲的,安静地等待着将来可能出现的动作。
因为请求可能会在任意时刻到达,所以Web服务器会不停地观察有无新的Web请求。不同的Web服务器结构会以不同的方式为请求服务,如图5-7所示。
·单线程Web服务器(参见图5-7a)
单线程的Web服务器一次只处理一个请求,直到其完成为止。一个事务处理结束之后,才去处理下一条连接。这种结构易于实现,但在处理过程中,所有其他连接都会被忽略。这样会造成严重的性能问题,只适用于低负荷的服务器,以及type-o-serve这样的诊断工具。
·多进程及多线程Web服务器(参见图5-7b)
多进程和多线程Web服务器用多个进程,或更高效的线程同时对请求进行处理。3可以根据需要创建,或者预先创建一些线程/进程。°有些服务器会为每条连接分配一个线程/进程,但当服务器同时要处理成百、上千,甚至数以万计的连接时,需要的进程或线程数量可能会消耗太多的内存或系统资源。因此,很多多线程Web服务器都会对线程/进程的最大数量进行限制。
·复用I/O的服务器(参见图5-7c)
为了支持大量的连接,很多Web服务器都采用了复用结构。在复用结构中,要同时监视所有连接上的活动。当连接的状态发生变化时(比如,有数据可用,或出现错误时),就对那条连接进行少量的处理,处理结束之后,将连接返回到开放连接列表中,等待下一次状态变化。只有在有事情可做时才会对连接进行处理,在空闲连接上等待的时候并不会绑定线程和进程。
·复用的多线程Web服务器(参见图5-7d)
有些系统会将多线程和复用功能结合在一起,以利用计算机平台上的多个CPU.多个线程(通常是一个物理处理器)中的每一个都在观察打开的连接(或打开的连接中的一个子集),并对每条连接执行少量的任务。

5.6第三步———处理请求
一旦Web服务器收到了请求,就可以根据方法、资源、首部和可选的主体部分来对请求进行处理了。
有些方法(比如POST)要求请求报文中必须带有实体主体部分的数据。其他一些方法(比如OPTIONS)允许有请求的主体部分,也允许没有。少数方法(比如GET)禁止在请求报文中包含实体的主体数据。
这里我们并不对请求的具体处理方式进行讨论,因为本书其余大多数章节都在讨论这个问题。

5.7第四步——-对资源的映射及访问
Web 服务器是资源服务器。它们负责发送预先创建好的内容,比如HTML页面或JPEG 图片,以及运行在服务器上的资源生成程序所产生的动态内容。

5.7.1 docroot
Web服务器支持各种不同类型的资源映射,但最简单的资源映射形式就是用请求URI作为名字来访问Web服务器文件系统中的文件。通常,Web服务器的文件系统中会有一个特殊的文件夹专门用于存放Web内容。这个文件夹被称为文档的根目录(document root,或docroot)。Web服务器从请求报文中获取URI,并将其附加在文档根目录的后面。
在图5-8中,有一条对/specials/saw-blade.gif 的请求到达。这个例子中Web服务器的文档根目录为/us/local/httpd/files。Web服务器会返回文件/usr/local/httpd/files/specials/saw-blade.gif。

在配置文件httpd.conf中添加一个 DocumentRoot行就可以为Apache Web服务器设置文档的根目录了:
DocumentRoot /usr/ local/httpd/files
服务器要注意,不能让相对URL退到docroot之外,将文件系统的其余部分暴露出来。比如,大多数成熟的Web服务器都不允许这样的URI看到Joe的五金商店文档根目录上一级的文件:
http://www.joes-hardware.com/ ..

5.8.3重定向
Web服务器有时会返回重定向响应而不是成功的报文。Web服务器可以将浏览器重定向到其他地方来执行请求。重定向响应由返回码3XX说明。Location响应首部包含了内容的新地址或优选地址的URI。重定向可用于下列情况。
·永久删除的资源
资源可能已经被移动到了新的位置,或者被重新命名,有了一个新的URL。Web服务器可以告诉客户端资源已经被重命名了,这样客户端就可以在从新地址获取资源之前,更新书签之类的信息了。状态码301 Moved Permanently就用于此类重定向。·临时删除的资源
如果资源被临时移走或重命名了,服务器可能希望将客户端重定向到新的位置上去。但由于重命名是临时的,所以服务器希望客户端将来还可以回头去使用老的URL,不要对书签进行更新。状态码303 See Other以及状态码307 TemporaryRedirect就用于此类重定向。

2. app发送请求后,后台服务获取延时

当手机需要获取一组数据,用http协议向服务器发起请求,服务器根据http协议传过来的请求地址和参数返回数据给手机。 获取的数据如果非常大,可以在手机端建个SQLite数据库,把数据保存进去。

3. 如何优化网站服务器减少网络延时

如果您的用户群体在国内,建议您使用国内服务器或使用香港服务器,国内服务器建议使用双线或者多线,这样不同地区不同线路的用户访问速度都会非常快(就好比联通线路的用户访问电信服务器,速度方面肯定会差一些。双线或多线可以解决这个问题)。香港服务器的话,建议使用CN2线路直连大陆的服务器,这样可以保证网络稳定性。
如果您的用户群体分布在海外地区,那就近源租用服务器,客户访问速度快,才是做网站最优先考虑的问题。
也可以搭建CDN节点,可以进一步提升客户访问网站的速度。
海腾数据张毅龙为您回答,希望可以帮到您。

4. 一个客户-服务器系统使用了卫星网络,其高度为40000KM.在对一个请求进行响应的时候,求最佳情形下的延迟

时间=路程/速度

40000KM 除以 光速

当然这是理想状态下

还要考虑其他因素

5. 服务器延迟高怎么解决

服务器延迟原因有很多,甚至包括硬件也会导致延迟,而这个连接率直接影响到访问速度,访问网站速度要快,首先就是服务器延迟率要低,越低越快,利联小柯为大家讲解关于服务器延迟率高的主要因素在哪里。

一、服务器延迟率设备是一定的关系,例如硬盘转速不足,或者运行量过高,这都会导致服务器延迟过高,如果是服务器设备的原因导致是这样去测试的:例如我们的东莞服务器,大概在全广东省延迟率不高于20MS,而如果您租用的东莞服务器高于20MS+那么属于不正常的,就需要考虑今天的文章问题。

二、服务器租用时延迟率测试是10MS的,而租用后一段时间后变的越来越卡,延迟率也越来越高,是什么原因呢?这个情况需要考虑两个问题,第一设备,第二使用率,一般整机服务器设备如同我们本公司的服务器在每一次上架服务器时都会经过各种检测后在上架很少出现这种故障率的,所以更需要考虑的是使用率,超负载运行也会很严重的延迟甚至丢包,解决办法是将服务器重启后在测试,看运行内存是否高达总量的百分之50+,如果不超过一般也不会影响到延迟率。

三、每个地方的延迟率是不一样的,例如您租用的服务器是广东服务器,而您的工作区域在湖北省,相差较远的条件下去做测试,那么一般全国范围内速度不高于50MS都是属于正常行为的,今天主题主要是教会大家延迟率的解决,如果发现延迟率异常才需要去检查问题,如果只是因为租用服务器时没有选对机房位置而租用的话,那是没有办法解决的,唯一的办法只有重新选择租用服务器的机房线路,俗称,换服务器。

四、解决服务器延迟的南北互通问题的唯一解决方案就是目前比较新的线路BGP服务器,而BGP的线路假的太多,如果有服务器需求可以联系利联科技小柯

6. 局域网内访问服务器延时大,请大神指教!

这个问题应该分多个方面来考虑主要还是从硬件和软件两个方面来看。首先检查一下网线是否有松动脱落的情况,如果有,重做水晶头;如果做好水晶头故障依旧那么可能就不是网线的问题,在当前,主机ping一下网关,查到网关的延时情况;如果到网关的延时正常,这是基本可以忽略网络和硬件两方面的影响。这时可以先登到服务器里面去观察一下,当前服务器的负载情况,比如,CPU内核是否被占满,内存是否耗尽?自盘l是否过高?网络IO是否爆满,等等,如果服务器是windows2000系列,那么就看它的任务管理器,如果服务器是Linux服务器,那么就通过up time命令看内核的占用情况;此时基本就可以定位到问题了,此时你会看到CPU,可能会有某个进程占用非常高的负载,然后查看这个负载是不是异常进程,如果是的话就把他杀死;有时这种进程杀不死,它会不断的folk出新的进程,这种情况极有可能是服务器中毒了,Linux服务器也会中毒,如果出现这种情况就要看一下cron table里面是不是有定时任务,在不断的重启某个进程,找到这个定时任务以后,删除里面的命令内容,我们之前服务器是Linux的,遇到过这种情况,我觉得windows服务器处理思路应该是一样的。

7. 如何解决玩国外服务器延迟高的问题

国外服务器延迟多少算正常?很多人都说160ms到180ms。还有人说200ms到300ms。这些其实都没错,因为实际物理距离的问题,中国和国外都是东西跨度极大的国家。不同地区延迟上相差100ms都不为过。
首先我们必须了解什么是网络延时。通俗的说,就是从客户端向服务器发送数据请求,来回的时间就是网络延迟。网络延迟越低的网站,游戏体验更好。所以大家都在不断的追求低延迟的国外服务器。
如何降低国外服务器的延迟?首先地理位置非常重要,国外西海岸洛杉矶机房是一个不错的选择。洛杉矶地区距离大陆较近,网络发达,与全球上百家运营商合作均有良好的合作。网络稳定性非常良好,国内延迟相对较低。
想要降低国外服务器的延迟,可以选择BGP线路机房,BGP线路会为不同地区的用户自动匹配最优路径。如今很多洛杉矶机房都接入了直连电信,直连联通,直连移动等优质线路,例如RakSmart。一方面减少了用户端到服务段之间的路由节点,大幅降低了延迟。另一方面让线路变得更加稳定,针对中国电信,中国联通用户配对。延迟可降低至160ms到180ms左右,中国沿海城市可低至140ms。
充足的网络带宽也是保障网络延迟的重要因素。当带宽不足,国外服务器的延迟会明显增大,甚至出现网络丢包等问题。最好选择国外100M独享带宽服务器,能够让服务器延迟更加稳定。

阅读全文

与服务器如何对特定请求延时相关的资料

热点内容
程序员入行前后的头发 浏览:707
嵌入式图像算法 浏览:325
服务器如何访问服务器失败 浏览:873
android进度球 浏览:999
Linux造成xfs文件夹 浏览:455
华为手机怎么修改wifi加密类型 浏览:248
服务器封口是什么意思 浏览:741
有限元分析是算法吗 浏览:901
空气压缩机性能曲线 浏览:20
京城程序员2019 浏览:403
android新系统 浏览:510
安卓80有什么bug 浏览:678
如何做单机服务器 浏览:943
校讯通查成绩怎么显示服务器异常 浏览:882
冰箱压缩机工作压力是多少 浏览:408
程序员20多平米租房 浏览:451
电工知识用线的算法 浏览:338
极光推送php服务器端 浏览:5
怎么用命令方块控制僵尸 浏览:774
大型云服务器有哪些 浏览:466