web服务器

【推荐】【给中高级开发者】构建高性能ASP.NET应用的几点建议

我们两清 提交于 2020-01-25 02:40:41
本篇目录 早期阶段就要对应用进行负载测试 使用高性能类库 你的应用是CPU密集还是IO密集的 使用基于Task的异步模型,但要慎重 分发缓存和会话(session)状态 创建Web Gardens 巧妙地使用缓存和懒加载 不要在MVC视图中放C#代码 适当时使用Fire & Forget 为x64 CPU创建 使用服务器上的监视和诊断工具 分析运行中的应用 如果你在构建一个面向公众的web站点,那么在项目结尾时你想要实现的就是web负载性能良好。这意味着,你要确保你的产品在高负载下(50个并发用户或者每秒200个用户等等)能够运行,即使你认为此时不会有那么大的负载。久而久之,你的web站点可能吸引越来越多的用户,此时如果web的负载难以让人忍受时,那么自然而然网站开始走下坡路,意味着客户流失以及名誉受损。 那么可以采取哪些措施可以使得一个ASP.NET或者ASP.NET MVC应用更加高性能呢? 早期阶段就要对应用进行负载测试 大多数开发者趋向在应用开发完成后,集成测试和回归测试通过后才进行负载测试。尽管在开发完成后执行一次负载测试好过不做,但是一旦完成了代码的编写,修复性能问题就为时已晚了。这个问题最常见的例子就是当应用程序在负载测试时不能正确响应时,就会考虑向外扩展(增加更多的服务器)。有时这是不可能的,因为代码不适合实现扩展服务器

第五章Web应用与应用层协议

泪湿孤枕 提交于 2020-01-24 15:27:29
 Web应用与应用层协议    本篇博文中的主要参考文献是 《计算机网络高级教程》 ,分别是吴功宜老先生和吴英教授合著。这部教程是我研究生老师所推荐的网络必读科目,由于该教程讲解的基础知识详细,但内容颇多,达700多页。特将各章节主要内容总结,后续各章节将逐步更新,由于本人学识有限,仅总结的是作者自己认为重要的内容。   文章中的 Why表示产生的背景 ,也就是说 为什么会产生该技术 , What表示该技术是什么,How表示该技术是如何使用的 。以下将用字母表示各问题。 应用层协议分为3种基本类型: 基础设施类、网络应用类、网络管理类 。 基础设施类包括:    支持Internet运行的全局基础设施类应用层协议——DNS(域名服务协议);支持各个网络系统运行的局部基础设施类应用层协议 ——DHCP(动态主机配置协议)。 网络应用类包括: 基于C/S工作模式与基于P2P工作模式的应用层协议。     基于C/S工作模式的应用层协议包括:Telent(网络终端协议)、SMTP(电子邮件服务协议)、FTP(文件传输协 议)、HTTP(WEB服务协议)。    基于P2P工作模式的应用层协议包括:文件共享协议、即时通信协议、流媒体协议、共享存储协议、协同工作协议。 网络管理类:主要是SNMP(简单网络管理协议)。 下面我们来看基础设施类中的 Telent(网络终端协议) : Why

php-fpm cgi fast-cgi

时间秒杀一切 提交于 2020-01-24 09:51:52
基础 在整个网站架构中,Web Server(如Apache)只是内容的分发者。举个栗子,如果客户端请求的是 index.html,那么Web Server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。 如果请求的是 index.php,根据配置文件,Web Server知道这个不是静态文件,需要去找 PHP 解析器来处理,那么他会把这个请求简单处理,然后交给PHP解析器。 当Web Server收到 index.php 这个请求后,会启动对应的 CGI 程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以规定CGI规定的格式返回处理后的结果,退出进程,Web server再把结果返回给浏览器。这就是一个完整的动态PHP Web访问流程,接下来再引出这些概念,就好理解多了, CGI: 是 Web Server 与 Web Application 之间数据交换的一种协议。 FastCGI: 同 CGI,是一种通信协议,但比 CGI 在效率上做了一些优化。同样,SCGI 协议与 FastCGI 类似。 PHP-CGI: 是 PHP (Web Application)对 Web Server 提供的 CGI 协议的接口程序。 PHP-FPM: 是 PHP(Web Application)对 Web Server

HTTP Keep-Alive模式

主宰稳场 提交于 2020-01-24 06:54:45
故事发生在10月份的一次面试经历中,本来我不想说出来丢人显眼,但是为了警醒自己和告诫后人,我决定写成博文发出来。因为在面试过程中,我讲在2009年写过QQ农场助手,在这期间深入学习了HTTP协议,而且在2010-05-18写了博文: HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等 。面试官说既然我熟悉HTTP协议,就问“当HTTP采用keepalive模式,当客户端向服务器发生请求之后,客户端如何判断服务器的数据已经发生完成?” 说实话,当时我懵了,一直没有关注过keepalive模式。我只知道: HTTP协议中客户端发送一个小请求,服务器响应以所期望的信息(例如一个html文件或一副gif图像)。服务器通常在发送回所请求的数据之后就关闭连接。这样客户端读数据时会返回EOF(-1),就知道数据已经接收完全了。 我就这样被面试官判了死刑!!!说我完全停留在表面,没有深入(当时真的很受打击,一直自认为技术还不错!)。我当时真的很想找各种借口: 之前没有用到HTTP的keepalive模式,所以没有深入 好久没有用HTTP协议,细节忘了 实习的东西跟HTTP协议没有关系,用得少了就忘了 。。。。。。 觉得各种解释都是那么苍白无力!我再次感叹书到用时方恨少,也感叹一个人的时间是多么的有限(曾一度想成为一个IT专业全才),根本没有精力面面俱到

探索服务器端的局域网——Web服务器的部署地点

风流意气都作罢 提交于 2020-01-24 05:10:14
1、在公司里部署Web服务器: 网络包从互联网到达服务器的过程,根据服务器部署地点的不同而不同,主要有下面三种情况(如下图)。 第一种方式是最简单的,服务器直接部署在公司网络上,并且可以从互联网直接访问。这种情况下,网络包通过最近的POP中的路由器、接入网以及服务器端路由器之后,就直接到达了服务器。但是这种方式已经不是主流,一是因为IP地址不足,另外则是安全问题。 因此,一般采用第二种方式,即部署防火墙。它只允许发往指定服务器的指定应用程序的网络包通过,从而屏蔽其他不允许通过的包。 2、将Web服务器部署在数据中心: 第三种方式是将服务器部署在数据中心。数据中心是与运营商核心部分NOC直接连接的,或者是与运营商之间的枢纽IX直接连接的。也就是说,数据中心通过高速线路直接连接到互联网的核心部分,因此,服务器部署在这里可以获得很高的访问速度。此外,数据中心一般位于具有抗震结构的大楼内,还具有自主发电设备,并实行24小时门禁管理,所以具有更高的安全性。此外,数据中心还提供各种附加服务,如服务器工作状态监控、防火墙的配置和运营、非法入侵监控等。 来源: CSDN 作者: Crazy_CMT 链接: https://blog.csdn.net/qq_38386085/article/details/103979912

web服务器apache架构与原理

醉酒当歌 提交于 2020-01-23 13:14:56
web服务器   在开始了解 Apache前,我们先熟悉一下web服务器,因为apache也是web服务器的一种。    Web系统由客户端(浏览器)和服务器端两部分组成。Web系统架构也被称为B/S架构。最常见的Web服务器有Apache、IIS等,常用的浏览器有IE、Firefox、 chrome 等。当你想访问一个网页时,需要在浏览器的地址栏中输入该网页的URL(Uniform Resource Locator,简称为URL)地址,或者是通过超链接链接到该网页。浏览器会向该网页所在的服务器发送一个HTTP请求,服务器会对接收到的请求信息进行处理,然后将处理的结果返回给浏览器,最终将浏览器处理后的结果呈现给用户。 web 服务器端的 工作流程 : (1)客户端发送请求   客户端(通过浏览器) 和Web服务器建立TCP连接,连接建立以后,向Web服务器发出访问请求(如get)。根据HTTP协议,该请求中包含了客户端的IP地址、浏览器的类型和请求的URL等一系列信息。 (2)服务器解析请求   Web服务器对请求按照HTTP协议进行解码来确定进一步的动作,设计的内容有三鼐要点:方法(GET)、文档(/sample.html)、和浏览器使用的协议(HTTP/1.1)其中方法告诉服务器应完动的动作,GET方法的含义很明显是:服务器应定位、读取文件并将它返回给客户。

图片集群分布式存储和负载均衡

一世执手 提交于 2020-01-23 10:23:03
今天记录下图片的分布式存储和负载均衡实现原理。 对于Web服务器而言,用户对图片信息的访问是很消耗服务器资源的。当一个网页被浏览时,Web服务器与浏览器建立连接,每个连接表示一个并发。当页面包含多个图片时,Web服务器与浏览器会产生多个连接,同时发送文字和图片以提高浏览速度。因此,页面中图片越多Web服务器受到的压力也就越大。 一般小型网站是把所有页面和图片统一存放在一个主目录下,这样的网站对系统架构、性能要求都很简单。下面是原理图 一些稍有规模的网站都保存有大量图片资源。用户在访问这些站点网页时,网页中图片信息占到页面数据流量的大部分。由于受客户端浏览器限制,无法从一台服务器上同时下载页面中所有图片信息,因此即使服务器有很高带宽,用户的访问速度还是会受到很大影响。由于图片保存在物理硬盘上,访问图片需要频繁进行I/O 操作,因此当并发用户数越来越多时,I/O操作就会成为整个系统的性能瓶颈。这个时候我们就要考虑把这些图片信息进行分布式存储了。 下面说一个适用于中等规模商务网站的图片数据分布式动态存储及负载均衡的解决方案的思路。这种思想只需增加很少的硬件成本,即可提升网站的访问速度,并且可以根据需要动态调整图片服务器的数量及图片的存储目录,确保系统具有可扩展性和伸缩性。但对于大型的网站系统来说,他们可能会有更好的技术来实现数据的分布式存储。 增加了图片服务器后,对于客户端而言

web服务器

十年热恋 提交于 2020-01-23 00:14:55
在闲下来的时候喜欢自己研究和捣鼓,这几天在网上发现了一个非常有用的网站——三丰云主机网络一站式服务。https://www.sanfengyun.com 这个网站适合各种范围的人群。不管你是刚刚踏入web网络开发的新手,比如我。还是在web网络开发有着深厚经验的高级技师,这里都有你所需要的。它不仅提供了免费虚拟主机,免费云服务器,还有域名服务,备案服务等许多有用的服务。它不仅提供大量的免费服务给一些初创团队和学生,还提供非常专业的高性价比的服务体系 来源: CSDN 作者: qq_39608688 链接: https://blog.csdn.net/qq_39608688/article/details/104069786

HTTP Keep-Alive模式

空扰寡人 提交于 2020-01-22 22:51:44
故事发生在10月份的一次面试经历中,本来我不想说出来丢人显眼,但是为了警醒自己和告诫后人,我决定写成博文发出来。因为在面试过程中,我讲在2009年写过QQ农场助手,在这期间深入学习了HTTP协议,而且在2010-05-18写了博文: HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等 。面试官说既然我熟悉HTTP协议,就问“当HTTP采用keepalive模式,当客户端向服务器发生请求之后,客户端如何判断服务器的数据已经发生完成?” 说实话,当时我懵了,一直没有关注过keepalive模式。我只知道: HTTP协议中客户端发送一个小请求,服务器响应以所期望的信息(例如一个html文件或一副gif图像)。服务器通常在发送回所请求的数据之后就关闭连接。这样客户端读数据时会返回EOF(-1),就知道数据已经接收完全了。 我就这样被面试官判了死刑!!!说我完全停留在表面,没有深入(当时真的很受打击,一直自认为技术还不错!)。我当时真的很想找各种借口: 之前没有用到HTTP的keepalive模式,所以没有深入 好久没有用HTTP协议,细节忘了 实习的东西跟HTTP协议没有关系,用得少了就忘了 。。。。。。 觉得各种解释都是那么苍白无力!我再次感叹书到用时方恨少,也感叹一个人的时间是多么的有限(曾一度想成为一个IT专业全才),根本没有精力面面俱到

Java 程序员面试笔试宝典 第 5 章 Java Web: 5.1 Servlet 与 JSP(13-17题)

北战南征 提交于 2020-01-22 15:30:28
5.1.13 JSP 中 include 指令和 include 动作有什么区别 include 的主要作用是用来在当前文件中引入另外一个文件,以便在当前文件中使用,例如,当应用程序中的所有页面的某些部分(例如标题、页脚、导航栏等)都一模一样时,就可以考虑把相同的部分提取出来写入一个单独的文件中,然后通过 include 方式引入。 include 有两种使用方法:include 指令和 include 动作。其中,include 指令的使用方法为:<%@include file="test.jsp"%>,include 动作的使用方法为:<jsp:include page="test.jsp"flush="true"><jsp:param name="name"value="value"/></jsp:include>。 include 指令与 include 动作之间的根本性差异在于二者被调用的时间。include 指令是编译阶段的指令,即在编译时,编译器会把指令所指向目标文件的内容复制到指令所在的位置,替换指令,最终形成一个文件,在运行时只有一个文件。也就是说,include 指令所包含文件的内容是在编译时插入到 JSP 文件中的,当文件内容有变化时就需要重写编译,因此适合于包含静态页面的情况,例如可以包含一个 Servlet。 而 include 动作是运行时的语法