动态静态网页
我们使用web浏览器的过程是是什么?
- 用户浏览器里输入网址
- DNS域名解析出IP地址
- TCP三次握手
- 发送http用户请求
- 对方服务器收到用户请求
- 对方处理请求,返回数据,响应报文(响应报文,响应主体)
- 浏览器接收返回的数据显示
HTTP是WWW中的一种,中文是:超文本传输协议,默认端口 80
WWW 中文:万维网
curl -v www.baidu.com
HTTPS是HTTP升级版,是加密格式,默认端口 443
常见的HTTP请求:
- GET: 客户端请求指定资源信息,服务器返回指定资源。速度快,读。
- HEAD: 只请求响应报文中的HTTP首部
- POST: 将客户端的数据提交到服务器。加密,写。
- PUT: 从客户端向服务器传送的数据取代指定的文档
- DELETE:请求服务器删除Request-URI所标识的资源
- MOVE: 请求服务器将制定的页面移到另一个网络位置
状态码范围
100-199 : 用于指定客户端响应的某些动作
200-299 : 表示成功
300-399 : 用于已经移动的文件并且常被包含在定位头信息中的指定新的地址信息
400-499 : 用于指定客户端的错误
500-599 : 用于指定服务端的错误
常用状态代码返回值
- 200-OK:服务器成功返回网页,这是成功的http请求,返回的标准状态码
- 301-Moved Permanently:永久跳转,所有请求的网页将永久跳转到被设定的新的位置
- 302-Found:这个响应代码是造成大多数重定向方面的混乱的最根本原因。
- 304-Not Modified:响应实体主体都必须为空。但204用于没有主体数据的情况,而304用于有主体数据,但客户端已拥有该数据,没必要重复发送的情况。
- 403-Forbidden:禁止访问,这个请求是合法的,是但是服务器端因为匹配了预先设置的规则而拒绝 响应客户端的请求,此类问题一般为服务器或服务权限配置不当所致
- 404-Not Found:服务器找不到客户端请求的指定页面,可能是客户端请求了服务器上不存在的资源导致
- 500-Internal Server Error:内部服务器错误,服务器遇到了意料不到的情况,不能完成客户的请 求。这是一个较为笼统的报错,一般为服务器的设置或者内部程序问题导致。 例如SElinux开启,而又没有为http设置规则许可,客户端访问就是500
- 502-Bad Gateway:坏的网关,一般是代理服务器请求后端服务时,后端服务不可用或没有完成响应 网关服务器。一般为反向代理服务器下面的节点出了问题导致。
- 503-Service Unavailable:服务器当前不可用,可能因为服务器超载或停机维护导致,后者是反响 代理服务器后面没有可以提供服务的节点
- 504-Gateway Timeout:网关超时,一般是网关代理服务器请求后端服务时,后端服务没有在特定的时间内 完成处理请求,一般是服务器过载导致没有在指定的时间内返回数值给前端代理服务器
i
Web开发用到什么了?
- html语言:浏览器删给的具体内容 静态网页:
- CSS语言: 内容如何显示,显示格式优化 静态网页
- JavaScript(JS):这不是时java 动态网页
URL:用户请求;网址;域名。
由域名+URI(域名后面的页面存储路径)
URI:统一资源定位符
吞吐量:每秒请求数(RPS)
NFS吞吐量:每秒字节数
QPS:每秒查询率
IOPS:每秒读写I/O操作次数
静态网页:没有后台数据库,不含程序(php,jsp,asp),和可交互网页
开发者编写什么,就显示什么,一旦编写成,不会有任何改变。所以维护更新麻烦。
静态网页资源的对应程序及资源文件的常见扩展名:
- 纯文本类程序或文件:htm,html,xml,shtml,js,css等
- 图片类文件或数据文档:jpg,gif,png,bmp,txt,doc,ppt等
- 视频类流媒体文件:mp4,swf,avi,wmv,flv等
静态网页特征: - 每个网页有一个固定的URL,并且网址是以html等格式结尾
- 是实实在在保存在服务器上的文本实体,每个网页都是独立的文件
- 内容固定不变,容易被搜索引擎找到(优点)
- 网页程序在用户浏览器端解析,效率高。(优点)对服务器没压力!
- 没有数据库支持,制作和维护工作量大,当信息量很大时,不能完全依靠静态网页制作(缺点)
- 网页的交互性差,程序功能实现方面有较大的限制(缺点)
静态网页架构思想:
在高并发,高访问量的场景下做架构优化,设计的关键环节就是把动态网页转成静态网页,而不直接请求数据库和动态服务器,并且可以把静态内容推送到前端缓存,提高用户体验,节约成本
动态网页特点:
- 网页扩展名:asp,aspx,php,jsp,do,cgi等
- 以数据库为基础,降低网站维护的工作量
- 可以实现更过功能:用户注册,用户登录,在线调查,投票,用户管理,订单管理,发微博等
- 不是独立存在于服务器删给的网页文件,当用户请求动态程序时,服务器解析程序并返回内容
- 程序在服务端解析时会消耗大量资源,并且多数还要读取数据库等,效率不如静态网页。解析动态程序的服务常见有PHP引擎,Java容器等
- 带 “?”号的搜索慢,我们运维会在设计时时屏蔽,企业通过搜索引擎推广时,针对动态网页做技术处理(伪静态技术),以适应搜索引擎抓取的需要
动态网页架构思想:
一般来说,静态网页性能的效率是动态网页的10~30倍。且动态网站效率很差,并发能力低,早高并发场景中,应尽可能转换成静态网页提供服务。
此外,动态转静态也要根据业务需求设计,比如更新频繁的网站如果设计不好,就可能禅城数据不一致,即用户看的不是最新的内容,而是静态的内容。
网站流量度量术语
IP(独立IP):指独立IP数,是指不同IP(公网IP)地址的计算器访问网站是被计算的总次数。独立IP数是衡量网站流量的一个重要指标。一般一天内(00:00-24:00)相同IP地址的客户端防卫网站页面值被计算为一次,记录独立IP的时间可为一天或一个月,目前标准为一天
注意:不准确,同一网段的不同ip,其公网IP是相同的,我们可以awk看访问日志文件,取出独立ip。
PV(访问量)即Page View:中文是页面浏览,即页面浏览器或点击量,用户每次防卫一个网站页面都会被计算一个PV (不管客户端或ip是否相同)
具体方法:从客户浏览器发出一个对Web服务器的请求(Request),Web服务器街道这个请求后,将该请求对应的一个网页(Page)发送给浏览器,就产生一个PV。但是,只要这个请求发送给了浏览器,无论这个页面是否完全打开(或下载完成),都会被计数一个PV(服务器日志),所以为了防止用户快刷PV,很多网站都会把PV的统计程序放在页面的最下面。
用PV衡量网站时,PV数量反映的时浏览某网站的页面数量,每刷新一次页面也算一次。因此,可以说PV数与来访用户的数量成正比,但PV数并不是真正的页面来访者数量,而是网站被访问的页面的数量,因为来访者可能产生多个PV。
注意:也可以用awk访问日志检测
UV(Unique Visitor)独立访客,同一台服务器访问网站被计算为一个访客。一天(00:00-24:00)内相同的客户端访问同一个网站只计算一次UV,UV一般是以客户端Cookie等技术中最为统计依据的,实际统计会有误差。
考虑到一台客户端电脑可能会有多人使用的情况,因此,UV实际上并不一定时独立的自然人访问
- http请求报文:浏览器版本,OS
- http响应报文:cookie(id)
并发连接
统计并发:netstat -an | grep “ESTAB” |wc -l 或 ss -an | grep “ESTAB” |wc -l
最大连接数:网站服务器在单位时间内能够处理的最大连接数
测试磁盘读写性能:dd if=/dev/zero of=/tmp/test01.bin bs=1K count=10000
评估PV,并发,独立IP的网站:http://alexa.chinaz.com/alexa_more.aspx
请问网站并发是多少?访问量是多少?怎么计算的?
运维从日志分析解说
www服务软件介绍
静态Web服务的软件:
Apache,IIS,Nginx,tengine(Nginx的其中一个版本,被淘宝开发所得到了),tomcat
Apache:中小型Web服务器主流,效率低,但是稳定,(自学)
Nginx: 大型网站Web服务主流,效率高,分支tengine也很火。
Lighttpd:社区不活跃,静态解析效率很高,在Nginx前是大并发静态业务的首选
动态服务软件:
PHP(fastcgi):大中小型网站都会用,动态网页语言PHP程序的解析容器。可以配合Apache解析动态程序,不过这里的PHP不是Fadtcgi守护进程模式,而是mod_php5.so(module).也可配合Nginx解析动态程序,此时的PHP常用Fastcgi守护进程模式提供服务。
tomcat:中小企业动他Web服务主流,互联网Java容器主流(如jsp,do)
resin:大型动态Web服务主流,互联网Java容器主流(如jsp,do)
IIS(internet information services):微软下的Web服务软件