
1、静态网页
1》静态网络资源:放在服务器上看到的是什么,现实的就是什么,一旦存在于服务器上,就不会有任何改变。
2》特点:
1,图片、附件、视频前端页面语言.html .js .css等
2,客户端解析(效率更高),而不是服务端解析 ###性能优化是关键
3,后端没有数据库。
4,地址里没有特殊符号,例如&& 、?等
5,发布网页一旦完成,就不会改变(除非人工修改)
6,存储地点,存储于NFS 这样的(共享存储)服务器里
7,内容来源(核心:用户上传:图片和视频等;程序员开发的代码.html .js .css)
静态网页资源有几个重要的特征:
1)每个页面都有一个固定的URL地址,且URL一般以htm. html、.shtml等常见形式为后缀,而且地址中不含有问号"?"或“&”等特殊符号。
2)网页内容一经发布到网站服务器上,无论是否有用户访问,每个网页的内容都是保存在网站服务器文件系统上的,也就是说,静态网页是实实在在保存在服务器上的文件实体,每个网页都是一个独立的文件。
3)网页内容是固定不变的,因此,容易被搜索引擎收录(容易被用户找到) (优点)。
4)网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作的方式比较困难(缺点)
5)网页的交互性较差,在程序功能实现方面有较大的限制(缺点)
6)网页程序在用户浏览器端解析,如IE浏览器,程序解析效率很高,由于服务端不进行解析,并且不需要读取数据库,因此服务器端可以接受更多的并发访问。当客户端向服务器请求数据时,服务器直接把数据从磁盘文件系统上返回(不做任何解析) ,待客户端拿到数据后,在浏览器端解析展现出来(优点)。
2、动态网页资源
1,动态网页资源介绍所谓的动态网页是与静态网页相对而言的,也就是说,动态网页的URL后缀不是htm. html, shtml,.xml、js. .css等静态网页的常见后缀扩展名形式,而是以.asp. aspx..php.js,do,.cgi等形式作为后缀的,并且一般在动态网页网址中会有标志性的符号-"?, &”,此外,在大多数情况下后端都需要有数据库支持等。
为动态网页地址的形式。http:/bbsetiantian.org/forum.phpmod=viewthread&tid=88extra=page%3D1
1)网页扩展名后缀常见为: .asp. .aspx..php. jsp. .do..cgi等。
2)网页一般以数据库技术为基础,大大降低了网站维护的工作量。
3)采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、投票、用户管理、订单管理、发博文等等。
4)动态网页并不是独立存在于服务器上的网页文件,当用户请求服务器上的动态程序时,服务器解析这些程序并可能读取数据库返回一个完整的网页内容。
5)动态网页中的“?"在搜索引擎的收录方面存在一定的问题,搜索引擎一般不会从一个网站的数据库中访间全部网页,或者出于技术等方面的考虑,搜索蜘蛛一般不会去抓取网址中“?"后面的内容,因此在企业通过搜索引擎进行推广时,需要针对采用动态网页的网站做一定的技术处理(伪静态技术) ,以便适应搜索引擎的抓取要求。
6)程序在服务器端解析,这相当于顾客点餐,饭店厨师做饭做菜,然后上菜上饭,耗时长,效率低 由于程序在服务端解析,因此,会消耗大量的CPU和内存、1O等资源,并且多数还要读取数据库等服务,因此,其访问效率远不如静态网页,在服务端解析动态程序的服务常见的有PHP引擎、Java容器(tomcat, resin, jboss, weblogic)
动态内容:
1、文件结尾.php, .jsp, .asp, .do
2、服务端解析。米饭菜现做。性能低。尽量转成静态内容,效率提高1倍倍。
3、后端有数据库,内容来自于数据库。
4、地址里有特殊符号,例如&e?等。
5、磁盘存在动态程序文件,内容没有实体文件。
6、存储地点,存储于MySQL, mongodb这样数据库里。
3、伪静态网页
1,伪静态网页介绍如标题字义,伪静态就是通过某些技术(如rewrite)把动态网页的URL地址伪装成静态网页URL地址,但实质上用户访问的还是动态网页,只不过给用户看起来URL地址是符合静态网页地址特征的,因此,用户及某些搜索引擎会误认为是静态网页。
2,伪静态网页特点从网站的URL地址看,伪静态表面上看起来是静态内容(如地址结尾带html) ,这是通过rewrite规则来实现的URL地址重写。改写后的URL地址规范、美观,有利于搜索引擎抓取,以及提升用户访问体验。如: http://oldboy.blog.51cto.com/2561410/803606和 http://www.discuz.net/forum-3967-1.html这样的两个地址都是伪静态的。因为伪静态网页还是动态网页,从性能上考虑,伪静态功能不但没有提升网站性能,反而会降低网站的性能。这一点读者要理解。那么,有些读者可能就会有疑问了,为什么动态网页需要伪装成静态呢?为什么不能直接转成静态网页呢?
作用由于搜索引擎无法正确读取带参数的动态网页内容,造成网页中很多具有丰富信息的页面无法被搜索引擎收录,因此才有了伪静态技术,它的作用是把动态网页URL改写成静 ,态网页的URL,虽然同样是消除了动态网页中的参数,但是并不需要生成任何网页,仅仅是改变了网页地址路径,
这样做的主要目的有两个,一是让搜索引擎收录网站内容,实现让更多的用户访问企业网站内容,二是提升用户访问体验,动态地址带特殊符号等的URL看起来也不如看着静态网页地址舒服。
4·伪静态网页的缺点
动态网页伪装静态网页,虽然可以让搜索引擎收录,并且可提升用户访问体验,但伪静态网页并不能提升网站的访问效率性能,从理论上说还会降低网站的性能,没有动态转静态网页效率高,但是对于一些并发不是超大的情况来说,或者是硬件资源充足的情况来说,伪静态还是一个不错的实用功能,因为,要把动态网页真正地转成静态网页,不是一朝一夕的事情,需要技术团队通力配合才能行。
现在很多大型的网站都采用了动态网页生成静态网页的技术,消除动态网页中的参数,使搜索引擎收录更多的内容,达到优化网站的效果。当网站遇到访问瓶颈时,如果有技术力量将动态网页转化成静态网页,那就再好不过了,但是,有些更新频率很快的业务并不适合这么做,或者将动态转为静态有很大难度,这时就可以考虑设置伪静态。相关架构内容可以参加老男孩老师高级架构师课程内容。
5.伪静态网页小结
口利用rewrite技术将动态网页伪装成静态网页(URL地址改写)口便于搜索引擎搜录提升用户访问量以及用户体验。
口访问性能没有提升,并且转换伪静态会消耗资源,因此性能反而会下降。
口尽可能将动态网页转换成真正的静态页面
口并发量不是很大或者动态更新过于频繁的时候,用rewrite实现伪静态也是不错的
口伪静态网页的实现过程,一般是由运营产品提出需求,开发和运维共同实现的。
课外作业:请在后文部署完开源站点discuz bbs和wordpress blog程序后,请把这两个网站的访问地址做成伪静态访问。提示,各自的官方网站上就有说明。
1,门户新闻业务
新闻网站的特点是一旦发布完成,几乎不会再改动网页内容。因此,对于新闻业务内容的静态化相对比较简单。
第一步:程序要支持发布动态内容转成静态功能。
第二步:运营编辑人员发布新闻网页后,后台程序立刻将动态网页生成静态文件。
第三步:运维人员通过发布或事件触发把运营编辑生成的静态网页发布到事先搭建好的公司缓存集群服务器上,或者把静态内容同步到购买的全国所有CDN服务器节点上,然后,再提供给用户提供访问浏览。
2,视频网站业务
视频网站和新闻网站类似,特点都是一旦发布完成,几乎不会再改动网页内容。因此,实现视频业务网站高效访问也很简单。
以优酷视频网为例,用户在上传视频时,需要经历转码一审核的过程(大概1个小时),然后一些热点视频也可能会被提前推送同步到CDN的核心节点或全国所有CDN服务器节点,用户访问时才会更快。
**凡是发布后不需要再改的网站服务,都可以直接静态化(一台顶十台动态)
改也行,但是公司内部人员也可以直接静态
用户上传修改,然后实时要求高
3. Blog/BBS/SNS/微博社区业务/电商(如淘宝、京东)
这几类业务的动态转静态是比较困难的,因为,用户发布完成内容,可能会随时更新并查看,这种情况一般会通过异步方式,例如消息中间件技术加上NoSQL集群技术实现实现转换,当然也会改进产品细节,例如:在访问的环节设置延时、异步加载等手段,较为详细的说明见如博客“浅谈千万级PV/IP规模高性能高并发网站”
动态转静态

生产Web架构优化实战方案
由于静态网页程序在客户端解析,大大降低了服务器端的访问压力,因此解析效率更高,在实际高并发网站架构中,可以考虑把用户请求的数据解析后存成静态文件放于磁盘中或放于内存中,来降低动态服务器的压力,节约企业成本,提升用户体验。有关高并发网站架构从动态转静态的内容,可以参考老男孩老师的文章“浅谈千万级PVIP规模高性能高并发网站架构” : http://oldboy.blog.51cto.com/2561410/736710。 1下面介绍几个高并发网站架构从动态转静态不用更改企业业务产品代码就可以实现的例子
网站访问量:
IP (Internet Protocol) :一个带有公网1P的电脑访问
IP (独立IP)即InternetProtocol,这里指独立IP数,独立IP数是指不同1P地址的计算机访问网站时被计算的总次数。独立IP数是衡量网站流量的一个重要指标。一般一天内(00:00-24:00)相同IP地址的客户端访问网 ,站页面只被计算为一次,记录独立IP的时间可为一天或一个月, 目前通用的标准为“一天"。网站独立IP 100万。推测至少100万人[।100万台具有公网I的电脑。不精准:网站独立IP 100万 100万人 200万人1000万人
PV (Page View)
PV (访问量)即Page View,中文翻译为页面浏览,即页面浏览量或点击量,不管客 ,端是不是椭同,也不管IP是不是相同,用户每次访问一个网站页面都会被计算一个PV
Uv (Unique visitoruv (独立访客)
即UniqueVisitor,同一台客户端1PC或移动端)访问网站被计算为一个访客。一天(00:00-24:00)内相同的客户端访问同一个网站只计算一次Uv. Uv一般是以客户端Cookie等技术作为统计依据的,实际统计会有误差。(例如多人用一台设备)
考虑到一台客户端电脑可能会有多人使用的情况,因此, Uv (独立访客)实际上并不一定是独立的自然人访问。
企业网站对IP, PV,UV的度量先来看对IP的度量:
口分析所有Web服务器的访问日志信息,对IP地址段去重后计数,这是IT人员的基本计算手段。
口在网站的每一个(所有)页面结尾,嵌入Js等统计程序代码,待用户加载网页后, IP即传给统计IP的服务器,这种方法一般被第三方统计公司或企业内部开发日志分析程序时使用。
口用第三方大家比较信任的统计工具例如:谷歌的统计(GA)IP的统计方法简单、易用,因此,成为了多数网站衡量网站流量的重要指标之一。对PV的度量如下:
口分析Web服务的访问日志(需要排除js. css及各种图片的日志信息),只计算HTML、 PHP等页面数量。
口在网站的每一个页面结尾,嵌入Js等统计程序代码,待用户加载网页后,访问数量即传给统计PV的服务器,这种方法一般被第三方统计公司或在企业内部开发日志分析程序时使用。НA) .
对于UV的度量如下:
通过客户端HTTP请求报文分析。
一个客户端会多次请求网站服务器,每次HTTP请求都会携带客户端自身的大量信息,比如: IP地址、请求发出的时间、浏览器版本,操作系统版本等等。网站服务器对这些请求进行分析,如果这些请求满足一些共同特征,比如来自同一个IP地址,且浏览器版本和操作系统版本相同,请求时间又相近等,那么就可以认为这些请求是来自于同一个客户端,那么多个页面访问也只算一个UV,共同特征的定义是由服务器方决定的。通常,用IP地址+其他特征共同来定义的情况较多。但此种度量方法无法解决以下问题,例如:多个人
通过Cookie鉴别。
当客户端第一次访问某个网站服务器的时候,网站服务器会给这个客户端的电脑发出一个Cookie,通常放在这个客户端电脑的C盘当中。在这个Cookie中会分配一个独一无 ,二的编号,这其中会记录一些访问服务器的信息,如访问时间、访问了哪些页面,等等。当你下次再访问这个服务器的时候,服务器就可以直接从你的电脑中找到上一次放进去的 Cookie文件,并且对其进行一些更新,但那个独一无二的编号是不会变的。如果在一定时间内,服务器发现2个来访者对应的是一个编号,那么自然可以认为它来源于同一个来访
工作场景:统计并发数的基本方法
1、统计当下时刻的inux的网络连接数并发, netstat-anlgrep-i" est "|wc-l
2, nginx web层active status。
每秒内网站最大处理的连接数,叫做并发连接数。
image.png
提示:以上数据于大约2015年7月从第三方http://alexa.chinaz.com/alexa more.aspx网站查找所得,仅供读者参考,不同的统计程序差别也很大,有一定误差,实际最高日访问量要比此表大,因为网站访问量也节假日等有关,另外统计的误差和chinaz.com的统计方法有关,后面的最大并发以及机器数量级别为作者根据访问量及业务类型估算而来,不代表网站的实际情况,仅对初学者是一个参考。
IP/PV/并发数/台数: 1w/5-10w/200/0.5
30-100万并发 150-1000PV 1500-5000 15-50台
期中架构15台, IP 10-30万IP, 50-200万PV 最大并发1500-2000
web服务软件:
1、静态软件: Nginx(Tengine) 、Apache,Lighttpd
2、动态软件: php程序(Php引擎)、JAVA程序(tomcat/resin/jboss/weblogic)、 python程序(Python)
3、web环境讲啥:30 Nginx. PHP, TOMCAT (tomcat)
网友评论