dns解析过程:
dns cache command:
ipconfig /displaydns -->显示DNS CACHE内容
ipconfig /flushdns -->清除DNS CACHE
windows hosts路径:
C:\Windows\System32\drivers\etc\hosts
http协议简介:
HTTP协议,全称HyperText Transfer Protocol,中文名称超文本传输协议,是互联网上应用最为广泛的一种网络协议。所有的www都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML(一种页面标记语言)页面的方法。
(HTTP(HyperText Transfer Protocol,超文本传输协议)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。)
WWW(World Wide Web),简称为Web,中文常议为“万维网”或“环球网”。它是目前Internet上最方便、最受用户欢迎的信息服务方式。
http协议www服务的默认端口是?80
加密的www服务https默认 443(网银,支付时候)。
写出以下端口对应的服务
端口21 ftp
端口22 ssh sftp
端口25 smtp(发邮件)
端口3306 mysql数据库
端口873 rsync
端口161 snmp(网关协议)
端口111 rpc(NFSrpcbind,portmap)
端口3389 windows远程桌面
端口80 http
端口443 https
端口110 pop3
端口53 dns
DNS原理及其解析过程【精彩剖析】 http://369369.blog.51cto.com/319630/812889
http服务请求过程简介:
我们每天都在使用HTTP客户端。最常见的客户端就是Web浏览器,比如微软的Internet Explorer,火狐浏览器,谷歌浏览器。Web浏览器向服务器请求HTTP对象,并将这些对象显示在的屏幕上。
浏览一个页面时(比如http://www.etiantian.org/index.html),浏览器会向服务器www.etiantian.org发送一条HTTP请求。服务器会去寻找所期望的对象(在这个例子中就是/index.html),如果成功,就将对象,对象类型,对象长度以及其他一些信息放在HTTP响应中发送给客户端。
http协议头部详解
[root@B ~]# curl -I baidu.com
HTTP/1.1 200 OK #200代表正常状态
Date: Thu, 20 Oct 2016 09:07:02 GMT
Server: Apache
Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT
ETag: "51-47cf7e6ee8400"
Accept-Ranges: bytes
Content-Length: 81
Cache-Control: max-age=86400
Expires: Fri, 21 Oct 2016 09:07:02 GMT
Connection: Keep-Alive
Content-Type: text/html
动态web服务器请求流程:
客户端发送请求->httpd得到请求->httpd解析请求的格式(html,css)
->请求相应PHP解析->php解析程序执行完毕-->db(数据库),返回结果(html)给httpd
->httpd把数据返回给客户端(可能是压缩过的)->浏览器接到返回结果,
根据HTML绘出界面展示出来!
http协议的请求原理过程:
http请求流程简介:
1、http属于tcp/ip模型中的应用协议
2、版本特点
http1.0:每次请求都要求建立一次单独的连接
http1.1:一次连接中可以处理多个请求,并且多个请求可以重叠进行
3、http请求流程
获取ip
在dns本地缓存表查找
网关dns查找
1、建立tcp连接
2、浏览器向服务器发送请求信息
3、服务器返回相应的答应信息
4、浏览器接收应答信息并解释执行
4、请求消息
一个请求行
若干消息头
实体内容
请求方式get或post
5、响应消息
一个状态行
若干消息头
实体内容
小结:http协议的通信原理
1、http是osi模型中应用层协议。http的重要应用是www服务。
2、dns解析原理
3、http请求信息包含的内容
4、http服务返回的内容,消息主体也是消息头(header)
5、用户通过浏览器访问网站服务器的请求到返回数据流程
详细了解http协议内容,建议看一本书http权威指南,前八章。
动态网页
概念:
动态网页是与静态网页相对应的,也就是说,网页URL的后缀不是htm、html、shtml、xml等静态网页的常见后缀扩展名形式,而是以.asp,.aspx,.php,.jsp,.do,.cgi,.perl等形式为后缀,并且一般在动态网页网址中经常会有标志性的符号--“?,&”等。
扩展名:常见扩展名为:asp,aspx,php,jsp,do,cgi,perl等。
特点:
(1)动态网页一般以数据库技术为基础,可以大大降低网站维护的工作量;
(2)采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查,投票、用户管理,订单管理、发博文等等;
(3)动态网页大多并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;
(4)动态网页中“?”对搜索引擎的收录存在一定问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或者处于技术方面的考虑,搜索蜘蛛一般不会抓取网址中“?”后面的内容。因此采用动态网页的网站在进行搜索引擎推广时需要做一定的技术处理(伪静态)才适合搜索引擎的抓取要求。
(5)程序在服务端解析,服务端如:-》php引擎,java容器(tomcat,resin,jboss,weblogic)
(6)由于程序在服务端解析,因此,会消耗大量的cpu和内存等资源,因此,效率远不如静态网页。
动态网页小结:
a.程序在服务器端解析,一般以数据库为基础,可以大量的和用户交互。
b.url地址后缀一般为asp,aspx,php,jsp,do,cgi,perl,并且常伴随“?,&等”。
c.架构优化:效率很差,并发也很低,尽可能转换成静态网页提供服务。
静态:动态====》10:1 系统架构师和程序架构师的职责。
伪静态网页
概念:
如标题,即把动态伪装成静态。由于搜索引擎无法正确读取带参数的动态网页内容,造成网页中很多具有丰富信息的页面无法给搜索引擎收录,使用伪静态的主要目的便于搜索引擎收录和提升用户体验。动态伪静态不能提升网站的性能,相反还会降低网站的性能。现在很多大型的网站都采用了动态网页生成静态网页的技术,消除动态网页中的参数,使搜索引擎收录更多的内容,达到优化网站的效果。生成静态网页确实可以很好的解决搜索引擎收录的问题,并且可以提升网站的访问性能。
另外的办法,就是动态网页伪静态技术了,为什么说伪静态呢?是因为这并不是真正的静态网页,而是通过某些技术(如rewrite规则),把网页的url地址重写,同样是消除了动态网页中的参数,但是并不需要生成任何网页,仅仅是改变了地址路径,但是能给搜索引擎看起来像是一个静态的网页,以达到有利于搜索引擎收录的效果。但是,伪静态的实质依然是动态网页,因此,在性能上存在瓶颈,效率没有任何提升,没有动态转静态网页效率高。因此,如何选择就要看业务需求了。例如:有些更新频率跟快的业务就不适合做动态转静态,此时可以考虑伪静态。
伪静态特点:从URL地址里看,给人感受是静态内容(如地址结尾带html),通过rewrite规则来实现url重写。地址规范、美观、有利于搜索引擎收录抓取。但是,从性能上考虑,伪静态不但没有提升网站性能,反而会降低网站的性能。
伪静态小结:
1、动态网页伪装成静态。
2、目的:便于搜索引擎收录,提升用户访问以及用户体验。
3、由于仅仅是伪装,实际上还是动态,性能没有提升,转换消耗资源因此性能反而下降。
4、尽可能装换成真正的静态页面,除非并发不是很大,用rewrite实现伪静态。
web架构优化方案
由于静态程序在客户端解析,大大降低了服务器的压力,因此解析效率更高,在实际高并发网站架构中,我们可以考虑把用户请求的数据解析后存成静态文件放于磁盘中或放在内存中,来降低动态服务器的压力,从而提升用户体验。有关高并发网站架构从动态转静态的内容,可以参考老男孩原创文章: 浅谈千万级PV/IP规模高性能高并发网站架构 http://oldboy.blog.51cto.com/2561410/736710
高并发网站架构从动态转静态例子:
1、门户新闻业务(一旦发布完成,几乎不会改变)。
对于新闻业务静态化相对比较简单,由于编辑人员发布新闻就可以生成静态文件,然后把静态内容同步到全国所有的CDN服务器节点上,在对用户提供访问。
2、视频网站业务(一旦发布完成,几乎不会改动)。
优酷视频网,用户上传视频,需要经历审核-转码的过程,大概1-2个小时,审核-转码-推送。
3、blog/bbs/sns/微博社区业务/电商(淘宝,京东)(用户发布完成,可能随时更新)
异步,消息中间件、消息队列。
浅谈千万级PV/IP规模高性能高并发网站架构
http://oldboy.blog.51cto.com/2561410/736710
web概念
概念总括
web1.0概念:以静态页面为主:早期门户新闻类页面,或者传统的企业宣传的静态页面。
特点:由网站提供方来更新和维护内容。
web2.0概念:以动态页面为主,以用户为中心,网站由用户参与或编辑的。产品如:bbs,blog,sns,微博。
特点:以用户为中心,由用户上传或参与编辑维护内容。
(1)web1.0基本采用的是技术创新主导模式,信息技术的变革和使用对于网站的新生与发展起到了关键性的作用。新浪的最初就是一技术平台起家,搜狐以搜索技术起家,腾讯以即时通讯起家,盛大以网络游戏起家,在这些网站的创始阶段,技术性的痕迹想到之重。
web3.0
简介:
web3.0只是由业内人员制造出来的概念词语,最常见的解释是,网站内的信息可以直接和其他网站相关的信息进行交互,能通过第三方信息平台同时对多家网站的信息进行整合使用;用户在互联网上拥有自己的数据,并能在不同网站上使用;完全基于web,用浏览器即可实现复杂系统程序才能实现的系统功能。用户数据审计后,同步与网络数据。
web3.0特点
第一、web3.0的API(应用程序编程接口)是基于全球范围的,也是XML Web Services;
第二、Web3.0的速度能够达到10G,所有的应用都不用担心速度;
第三、Web3.0是一个技术框架或平台。
静态web语言
HTML标记语言
<html>
<head>
<title>老男孩博客</title>
</head>
<body bgcolor=green>
<a href="http://sunrisenan.blog.51cto.com" target=_blank><font size=8 color="0000ff"><b> "this is oldboy's blog.</b></font></a><br>
<hr>
<div align=center>
<p>this is oldboy's blog.</p>
</dev>
<table border=1>
<tr>
<td>01</td>
<td>xiaofu</td>
</tr>
<tr>
<td>02</td>
<td>xiaofu</td>
</tr>
</table>
</body>
</html>
说明:标签一般成对出现。html,css,js
http://w3school.com.cn/
提示:传统的页面布局是表格,当今比较流行的页面设计:div+css(样式)
DIV+CSS布局
DIV+CSS是网站标准(或称“WEB标准“)中常用的术语之一,是当今的网页的布局方法,这种网页布局方法有别于传统的HTML网页设计语言中的表格(table)定位方式,可实现网页页面内容与表相分离。
XHTML是The Extensible HyperText Markup Language(可扩展的超文本标识语言)的缩写。XHTML基于可扩展标记语言(XML),是一种在HTML基础上优化和改进的新语言,目的是基于XML应用于强大的数据转换能力,适应未来网络应用更多的需求。在XHTML网站设计标准中,不再使用表格定位技术,而是采用DIV+CSS的方式实现各种定位。
布局优点
一、页面载入更快
由于将大部分页面代码写在了css当中,使得页面体积容量变得更小了。相对于表格嵌套的方式,DIV+CSS将页面独立成更多的区域,在打开页面的时候,逐层加载,而不像表格嵌套那样将整个页面圈在一个大表格里,导致加载速度很慢。
二、降低流量成本提升用户体验
页面体积变小了,消耗的带宽底了,用户浏览速度也变快了,用户体验得到了提升。
三、修改设计时更有效率
由于使用了DIV+CSS制作方法,在修改页面的时候更加容易省时,根据区域内容标记,到CSS里找到相应的ID,使得修改页面的时候更加方便,也不会破坏页面其他部分的布局样式。
四、保持视觉一致性
DIV+CSS最重要的优势之一:保持视觉的一致性;以往表格嵌套制作方法,会使得页面与页面,或者区域与区域之间的显现效果会有偏差。而使用DIV+CSS的制作方法,将所有页面,或所有区域统一用CSS文件控制,就避免了不同页面体现出的效果偏差。
五、有利于搜索引擎收录
由于大部分的HTML代码和内容样式写入了CSS文件中,这就使得网页中正文部分更为突出明显,便于被搜索引擎采集收录。
六、对浏览者和浏览器更具亲和力
我们都知道网站做出来是给浏览者使用的,对浏览者和浏览器里更具亲和力,DIV+CSS在这方面更具有优势。由于CSS富含丰富的样式,使页面更加灵活性,他可以根据不同的浏览器,而达到显示效果的统一和不变形。
参考自:http://baike.baidu.com/view/399288.htm
动态web语言
php语法
长格式:
<?php
phpinfo();
?>
短格式:
<? phpinfo(); ?>
嵌套于html中;
<html>
<head><title>oldboy's blog.</title></head>
<body>
<?phpinfo();
?>
</body>
</html>
php程序的典型架构就是lamp(Linux Apache Mysql Php)中小企业的首选,
lnmp(Linux nginx Mysql Php)大型首选,其中,lamp是经典组合。
jsp语法
<%=98+1>
java语法
package test;
import java.util.ArrayList;
import java.util.List;
import org.apache.oro.text.regex.MalformedPatternException;
import org.apache.oro.text.regex.Pattern;
public class Testl {
static final String linkspiltpreg = "\\{(.+?)\\}";
public static void main(String[] args){
String str1 = "北京{交通}大{学} ";
String str2 = “”;
List ls = new ArrayList();
PatternCompiler compile = new Per15Compiler();
Pattern pattern = null;
try {
pattern = comlile.compile.cpmpile(linkspiltpreg,
Per15Compiler.CASE_INSESITIVE_MASK);
} catch (MalformedPatternException e) {
e.printStackTrace();
}
Util.splitSection(ls,new Per15Compiler(),pattern,strl);
for(int i = 0 ; i<ls.size();i++){
str2 = (String)ls.get(i);
if(str2.toLowerCase().matches(linkspiltpreg)){
System.out.println(str2);
}
}
}
}
提示:java编译成*.class类文件使用。
JSP,JAVA程序--由Tomcat/Resin/weblogic/jboss当容器解析 典型架构就是lamt(Linux Apache Mysql tomcat)
lamr(Linux Apache Mysql/Oracle resin),lnmr(Linux nginx Mysql/Oracle resin)
asp语法
<html>
<body>
<%
response.write("Hello World!")
%>
</body>
</html>
.asp .aspx程序由pws、IIS(Internet Informaion Services)软件解析,后端数据库一般为sql server,access。
参考来自:http://www.w3school.com.cn/asp/asp_syntax.asp
网页技术与标准: 参考:http://baike.baidu.com/view/641394.htm
访问模式
b/s模式
b/s模式--browser/server 浏览器/服务器结构,常见协议如http 如:apache服务。
B/S架构的全称为Browser/Server,即浏览器/服务器结构。Browser指的是web浏览器,极少数事物逻辑在前端实现,但主要事物逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。B/S架构的系统无需特别安装,客户端只需有web浏览器即可。
B/S架构中,显示逻辑交给了Web浏览器,事务处理逻辑放在了WebAPP上,这样就避免了庞大的胖客户端,减少了客户端的压力。因此客户端包含的逻辑很少,因此也被成为瘦客户端。
优点:
1)无需安装客户端,有web浏览器即可,操作系统都会自带。
2)BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
3)BS架构无需升级多少客户端,升级服务器即可。
缺点:
1)在跨浏览器上(要兼容各种浏览器),BS架构不尽如人意。
2)BS架构的表现要达到CS程序的程度需要花费不少精力(需要测试人员做各种测试)。
3)在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。
4)客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户端乐意去做的。(Ajax实用化后此问题得到了一定程度的缓解)
C/S模式
C/S模式--client/server,酒店管理系统,考勤系统,会计用友软件,超市收银系统。C/S架构是一种典型的两层架构,其全称是client/server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户通过数据库连接访问服务器的数据;另一种是是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。
C/S架构也可以看做是胖客户端架构。因为客户端需要实现绝大多数的业务逻辑和界面展示。这种架构中作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是SQL或存储过程实现)来达到持久化数据,以满足实际项目的需要。
优点:
1、C/S架构的界面和操作可以很丰富。
2、安全性能可以很容易保证,实现多层认证也不难。
3、由于只有一层交互,因此响应速度较快。
4、服务器端和客户端可以更好的兼容。
缺点:
1、适用面窄,通常用于局域网中(当前的BS和CS架构差别比较模糊了),例如:魔兽,CS,收银系统。
2、用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
3、维护成本高,发生一次升级,则所有客户端的程序都要改变。
PV IP UV
IP-Internet Protocol
IP(独立IP):即Internet Protocol,指独立IP数。不同的IP地址的计算机访问网站的总次数。是网站流量分析的一个重要指标。00:00-24:00内相同IP地址被计算一次。
办公室所有同事打开我的博客,是几个IP?
赶集网:日300w IP,至少300万人访问。
独立IP数量网站访问量,不是很准确。国内上网多数都是NAT上网的,一个独立IP背后可能有数十上百个客户端访问。
PV-Page View
PV(访问量):即Page View,中文翻译即页面浏览,即页面浏览量或点击量,用户每次刷新即被计算一次。
PV的具体的度量方法就是从浏览器发出一个对网络服务器的请求(Request),网络服务器连到这个请求后,会将该请求对应的网页(Page)发送给浏览器,从而产生了一个PV。那么在这里只要是这个请求发送给了浏览器,无论这个页面是否完全打开了(下载完成),那么都是应当计为1个PV,但是为了防止用户刷PV,很多网站吧PV的统计程序放在页面的最下面。
PV反应的是浏览器某网站的页面数,所以每刷新一次也算一次。就是说PV与来访者的数量成正比,但PV并不是页面的来访者数量,而是网站被访问的页面数量。
问:如果用户访问一个网站,你觉得平均会产生多少pv?
IP/PV的度量:
PV的度量:
1.分析web服务的访问日志(排除,js,css,各种图片),html,php。
2.在所有页面结尾,嵌入js程序(GA),传给统计服务器。
3.用第三方大家比较信任的统计工具。(GA)
IP的度量:
1.分析web服务的访问日志,去重。
2.在所有页面结尾,嵌入js程序(GA),传给统计服务器。
3.用第三方大家比较信任的统计工具。(GA)
UV-Unique Visitor
UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端(pc和客户端)为一个访客。00:00-24:00内相同的客户端只被计算一次。
UV(独立访客):独立的自然人访客,一个人访问记一个UV,通过不同技术方法来记录,实际会有误差。
UV的度量
1、网站服务器分辨
网站服务器会接到很多页面请求,每次请求的信息内部都包含了你电脑的一些信息,比如:ip地址,请求发出的时间,浏览器的版本,操作系统版本等等。网站服务器对这些进行分析,如果这些请求满足一些特性,比如来自同一个IP地址,且浏览器版本,操作系统版本相同,请求时间有相近等等,如果满足这一系列的定义,那么就可以认为这些请求是来自同一个Visitor的,那么这些访问自然是产生一个UV。当然,共同特征的如何定义是由网站服务器的设置决定的,通常来讲,用IP地址+其他特征共同来定义的情况比较多见。
问题:a。多个人的电脑的软硬件经常雷同。 b。多人共用一个电脑。
2、用Cookie分辨
当客户端第一次访问某个网站服务器的时候,网站服务器会给这个客户端的电脑发出一个Cookie,通常放在这个客户端电脑的c盘中。在这个Cookie中分配一个独一无二的编号,这其中会记录一些访问服务器的信息,如访问时间,访问了哪些页面等等。当你再次访问这个服务器的时候,服务器就可以直接从你的电脑找到上一次放进去的Cookie文件,并且对其进行一些更新,但那个独一无二的编号是不会变的。如果在一定时间内,服务器发现2个Visitor所对应的是一个编号,那么我们自然可以认为这是来源于同一个Visitor,自然也就是1个UV。
使用Cookie的方法要比第一个更精确些。但也存在一些问题,比如:有的客户端为了保证更高级别的安全,关闭了Cookie的功能;或者是有些客户设置了在退出页面时自动删除Cookie,亦或你经常自己动手删除Cookie,那么这个方法就不那么准确了。
由此看来,两个方法都只能得到近似的UV,而不是绝对精确的。但在浩瀚的访问数据中,能计量出这些数据对我们的网站分析工作已经是可以有所指导并用于分析使用了。了解了这些数据的实际度量方法,有利于我们更加真实的还原用户的使用行为,让我们对网站真实的使用情况了解的更清楚。
IP,PV,UV的区别
独立IP表示,拥有特定唯一IP地址的计算机访问您的网站的次数,因为这种统计方式比较容易实现,具有较高的真实性,所以成为大多数机构衡量网站流量的重要指标。比如你是ADSL拨号上网的,你拨一次号都自动分配一个IP,这样你进入了本站,那就算一个ip,你断线了而没清理cookies,之后又拨了一次号,又自动分配到一个ip,你再进来了本站,那么又统计到一个ip,但是UV(独立访客)没有变,因为2次都是你进入了本站。
PV高不代表来访者多;PV与来访者的数量成正比,但是PV并不直接决定页面的真实来访者数量。比如一个网站就你一个人进来,通过不断的刷新页面,也可以制造出非常高的PV。
独立访客是指不同的、通过互联网访问、浏览一个页面的自然人。
比如,在同一台电脑上,哥哥打开了51cto的主页,注册了一个会员。弟弟一会儿也看了看,注册了另一个会员。由于兄弟两个使用的是相同的计算机,那么他们的ip是一样的,51cto的计数器记录到一个ip登录的信息。但是,具有统计功能的统计系统,可以根据其他条件判断出实际使用的用户数量,返回网站建设者真实、可信和准确的信息。比如通过注册的用户,甚至可以区分出网吧。机房等共享一个ip地址的不同计算机。上面例子就说明最然是同一个ip,但是有2个独立访客。
再举个例子,比如一个网吧里,有100个人都进入了www.etiantian.org的网站,但是一个网吧对外都是一个IP的,所以统计系统只统计到了一个IP,但是因为网吧里有100人在访问我的网站,尽管他们都仅仅打开我的网站首页,或者这100人都把我网站所有页面都看了一遍,统计到100个访客。
使用独立用户作为统计量有什么好处?它比ip更加准确吗?
ip是一个反应网络虚拟地址对象的概念,独立用户是反映实际使用者的概念,每个独立用户相对于每个ip,更加准确地对应一个实际的浏览者,使用独立用户作为统计量,可以更加准确的了解单位时间内实际上有多少访问者来到相应的页面。
面试
1)并发访问:一台服务器同时多少访问。
2)日PV,IP,UV,5000w/86400=网站的最高并发,最低是每秒这个数。
什么是并发?
怎么理解并发?
查看网站排名、IP、PV的地址:
http://alexa.chinaz.com/?domain=google.com
查看网站排名的地址:
http://www.alexa.cn/
http://top.chinaz.com/
dns cache command:
ipconfig /displaydns -->显示DNS CACHE内容
ipconfig /flushdns -->清除DNS CACHE
windows hosts路径:
C:\Windows\System32\drivers\etc\hosts
http协议简介:
HTTP协议,全称HyperText Transfer Protocol,中文名称超文本传输协议,是互联网上应用最为广泛的一种网络协议。所有的www都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML(一种页面标记语言)页面的方法。
(HTTP(HyperText Transfer Protocol,超文本传输协议)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。)
WWW(World Wide Web),简称为Web,中文常议为“万维网”或“环球网”。它是目前Internet上最方便、最受用户欢迎的信息服务方式。
http协议www服务的默认端口是?80
加密的www服务https默认 443(网银,支付时候)。
写出以下端口对应的服务
端口21 ftp
端口22 ssh sftp
端口25 smtp(发邮件)
端口3306 mysql数据库
端口873 rsync
端口161 snmp(网关协议)
端口111 rpc(NFSrpcbind,portmap)
端口3389 windows远程桌面
端口80 http
端口443 https
端口110 pop3
端口53 dns
DNS原理及其解析过程【精彩剖析】 http://369369.blog.51cto.com/319630/812889
http服务请求过程简介:
我们每天都在使用HTTP客户端。最常见的客户端就是Web浏览器,比如微软的Internet Explorer,火狐浏览器,谷歌浏览器。Web浏览器向服务器请求HTTP对象,并将这些对象显示在的屏幕上。
浏览一个页面时(比如http://www.etiantian.org/index.html),浏览器会向服务器www.etiantian.org发送一条HTTP请求。服务器会去寻找所期望的对象(在这个例子中就是/index.html),如果成功,就将对象,对象类型,对象长度以及其他一些信息放在HTTP响应中发送给客户端。
http协议头部详解
[root@B ~]# curl -I baidu.com
HTTP/1.1 200 OK #200代表正常状态
Date: Thu, 20 Oct 2016 09:07:02 GMT
Server: Apache
Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT
ETag: "51-47cf7e6ee8400"
Accept-Ranges: bytes
Content-Length: 81
Cache-Control: max-age=86400
Expires: Fri, 21 Oct 2016 09:07:02 GMT
Connection: Keep-Alive
Content-Type: text/html
动态web服务器请求流程:
客户端发送请求->httpd得到请求->httpd解析请求的格式(html,css)
->请求相应PHP解析->php解析程序执行完毕-->db(数据库),返回结果(html)给httpd
->httpd把数据返回给客户端(可能是压缩过的)->浏览器接到返回结果,
根据HTML绘出界面展示出来!
http协议的请求原理过程:
http请求流程简介:
1、http属于tcp/ip模型中的应用协议
2、版本特点
http1.0:每次请求都要求建立一次单独的连接
http1.1:一次连接中可以处理多个请求,并且多个请求可以重叠进行
3、http请求流程
获取ip
在dns本地缓存表查找
网关dns查找
1、建立tcp连接
2、浏览器向服务器发送请求信息
3、服务器返回相应的答应信息
4、浏览器接收应答信息并解释执行
4、请求消息
一个请求行
若干消息头
实体内容
请求方式get或post
5、响应消息
一个状态行
若干消息头
实体内容
小结:http协议的通信原理
1、http是osi模型中应用层协议。http的重要应用是www服务。
2、dns解析原理
3、http请求信息包含的内容
4、http服务返回的内容,消息主体也是消息头(header)
5、用户通过浏览器访问网站服务器的请求到返回数据流程
详细了解http协议内容,建议看一本书http权威指南,前八章。
动态网页
概念:
动态网页是与静态网页相对应的,也就是说,网页URL的后缀不是htm、html、shtml、xml等静态网页的常见后缀扩展名形式,而是以.asp,.aspx,.php,.jsp,.do,.cgi,.perl等形式为后缀,并且一般在动态网页网址中经常会有标志性的符号--“?,&”等。
扩展名:常见扩展名为:asp,aspx,php,jsp,do,cgi,perl等。
特点:
(1)动态网页一般以数据库技术为基础,可以大大降低网站维护的工作量;
(2)采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查,投票、用户管理,订单管理、发博文等等;
(3)动态网页大多并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;
(4)动态网页中“?”对搜索引擎的收录存在一定问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或者处于技术方面的考虑,搜索蜘蛛一般不会抓取网址中“?”后面的内容。因此采用动态网页的网站在进行搜索引擎推广时需要做一定的技术处理(伪静态)才适合搜索引擎的抓取要求。
(5)程序在服务端解析,服务端如:-》php引擎,java容器(tomcat,resin,jboss,weblogic)
(6)由于程序在服务端解析,因此,会消耗大量的cpu和内存等资源,因此,效率远不如静态网页。
动态网页小结:
a.程序在服务器端解析,一般以数据库为基础,可以大量的和用户交互。
b.url地址后缀一般为asp,aspx,php,jsp,do,cgi,perl,并且常伴随“?,&等”。
c.架构优化:效率很差,并发也很低,尽可能转换成静态网页提供服务。
静态:动态====》10:1 系统架构师和程序架构师的职责。
伪静态网页
概念:
如标题,即把动态伪装成静态。由于搜索引擎无法正确读取带参数的动态网页内容,造成网页中很多具有丰富信息的页面无法给搜索引擎收录,使用伪静态的主要目的便于搜索引擎收录和提升用户体验。动态伪静态不能提升网站的性能,相反还会降低网站的性能。现在很多大型的网站都采用了动态网页生成静态网页的技术,消除动态网页中的参数,使搜索引擎收录更多的内容,达到优化网站的效果。生成静态网页确实可以很好的解决搜索引擎收录的问题,并且可以提升网站的访问性能。
另外的办法,就是动态网页伪静态技术了,为什么说伪静态呢?是因为这并不是真正的静态网页,而是通过某些技术(如rewrite规则),把网页的url地址重写,同样是消除了动态网页中的参数,但是并不需要生成任何网页,仅仅是改变了地址路径,但是能给搜索引擎看起来像是一个静态的网页,以达到有利于搜索引擎收录的效果。但是,伪静态的实质依然是动态网页,因此,在性能上存在瓶颈,效率没有任何提升,没有动态转静态网页效率高。因此,如何选择就要看业务需求了。例如:有些更新频率跟快的业务就不适合做动态转静态,此时可以考虑伪静态。
伪静态特点:从URL地址里看,给人感受是静态内容(如地址结尾带html),通过rewrite规则来实现url重写。地址规范、美观、有利于搜索引擎收录抓取。但是,从性能上考虑,伪静态不但没有提升网站性能,反而会降低网站的性能。
伪静态小结:
1、动态网页伪装成静态。
2、目的:便于搜索引擎收录,提升用户访问以及用户体验。
3、由于仅仅是伪装,实际上还是动态,性能没有提升,转换消耗资源因此性能反而下降。
4、尽可能装换成真正的静态页面,除非并发不是很大,用rewrite实现伪静态。
web架构优化方案
由于静态程序在客户端解析,大大降低了服务器的压力,因此解析效率更高,在实际高并发网站架构中,我们可以考虑把用户请求的数据解析后存成静态文件放于磁盘中或放在内存中,来降低动态服务器的压力,从而提升用户体验。有关高并发网站架构从动态转静态的内容,可以参考老男孩原创文章: 浅谈千万级PV/IP规模高性能高并发网站架构 http://oldboy.blog.51cto.com/2561410/736710
高并发网站架构从动态转静态例子:
1、门户新闻业务(一旦发布完成,几乎不会改变)。
对于新闻业务静态化相对比较简单,由于编辑人员发布新闻就可以生成静态文件,然后把静态内容同步到全国所有的CDN服务器节点上,在对用户提供访问。
2、视频网站业务(一旦发布完成,几乎不会改动)。
优酷视频网,用户上传视频,需要经历审核-转码的过程,大概1-2个小时,审核-转码-推送。
3、blog/bbs/sns/微博社区业务/电商(淘宝,京东)(用户发布完成,可能随时更新)
异步,消息中间件、消息队列。
浅谈千万级PV/IP规模高性能高并发网站架构
http://oldboy.blog.51cto.com/2561410/736710
web概念
概念总括
web1.0概念:以静态页面为主:早期门户新闻类页面,或者传统的企业宣传的静态页面。
特点:由网站提供方来更新和维护内容。
web2.0概念:以动态页面为主,以用户为中心,网站由用户参与或编辑的。产品如:bbs,blog,sns,微博。
特点:以用户为中心,由用户上传或参与编辑维护内容。
(1)web1.0基本采用的是技术创新主导模式,信息技术的变革和使用对于网站的新生与发展起到了关键性的作用。新浪的最初就是一技术平台起家,搜狐以搜索技术起家,腾讯以即时通讯起家,盛大以网络游戏起家,在这些网站的创始阶段,技术性的痕迹想到之重。
web3.0
简介:
web3.0只是由业内人员制造出来的概念词语,最常见的解释是,网站内的信息可以直接和其他网站相关的信息进行交互,能通过第三方信息平台同时对多家网站的信息进行整合使用;用户在互联网上拥有自己的数据,并能在不同网站上使用;完全基于web,用浏览器即可实现复杂系统程序才能实现的系统功能。用户数据审计后,同步与网络数据。
web3.0特点
第一、web3.0的API(应用程序编程接口)是基于全球范围的,也是XML Web Services;
第二、Web3.0的速度能够达到10G,所有的应用都不用担心速度;
第三、Web3.0是一个技术框架或平台。
静态web语言
HTML标记语言
<html>
<head>
<title>老男孩博客</title>
</head>
<body bgcolor=green>
<a href="http://sunrisenan.blog.51cto.com" target=_blank><font size=8 color="0000ff"><b> "this is oldboy's blog.</b></font></a><br>
<hr>
<div align=center>
<p>this is oldboy's blog.</p>
</dev>
<table border=1>
<tr>
<td>01</td>
<td>xiaofu</td>
</tr>
<tr>
<td>02</td>
<td>xiaofu</td>
</tr>
</table>
</body>
</html>
说明:标签一般成对出现。html,css,js
http://w3school.com.cn/
提示:传统的页面布局是表格,当今比较流行的页面设计:div+css(样式)
DIV+CSS布局
DIV+CSS是网站标准(或称“WEB标准“)中常用的术语之一,是当今的网页的布局方法,这种网页布局方法有别于传统的HTML网页设计语言中的表格(table)定位方式,可实现网页页面内容与表相分离。
XHTML是The Extensible HyperText Markup Language(可扩展的超文本标识语言)的缩写。XHTML基于可扩展标记语言(XML),是一种在HTML基础上优化和改进的新语言,目的是基于XML应用于强大的数据转换能力,适应未来网络应用更多的需求。在XHTML网站设计标准中,不再使用表格定位技术,而是采用DIV+CSS的方式实现各种定位。
布局优点
一、页面载入更快
由于将大部分页面代码写在了css当中,使得页面体积容量变得更小了。相对于表格嵌套的方式,DIV+CSS将页面独立成更多的区域,在打开页面的时候,逐层加载,而不像表格嵌套那样将整个页面圈在一个大表格里,导致加载速度很慢。
二、降低流量成本提升用户体验
页面体积变小了,消耗的带宽底了,用户浏览速度也变快了,用户体验得到了提升。
三、修改设计时更有效率
由于使用了DIV+CSS制作方法,在修改页面的时候更加容易省时,根据区域内容标记,到CSS里找到相应的ID,使得修改页面的时候更加方便,也不会破坏页面其他部分的布局样式。
四、保持视觉一致性
DIV+CSS最重要的优势之一:保持视觉的一致性;以往表格嵌套制作方法,会使得页面与页面,或者区域与区域之间的显现效果会有偏差。而使用DIV+CSS的制作方法,将所有页面,或所有区域统一用CSS文件控制,就避免了不同页面体现出的效果偏差。
五、有利于搜索引擎收录
由于大部分的HTML代码和内容样式写入了CSS文件中,这就使得网页中正文部分更为突出明显,便于被搜索引擎采集收录。
六、对浏览者和浏览器更具亲和力
我们都知道网站做出来是给浏览者使用的,对浏览者和浏览器里更具亲和力,DIV+CSS在这方面更具有优势。由于CSS富含丰富的样式,使页面更加灵活性,他可以根据不同的浏览器,而达到显示效果的统一和不变形。
参考自:http://baike.baidu.com/view/399288.htm
动态web语言
php语法
长格式:
<?php
phpinfo();
?>
短格式:
<? phpinfo(); ?>
嵌套于html中;
<html>
<head><title>oldboy's blog.</title></head>
<body>
<?phpinfo();
?>
</body>
</html>
php程序的典型架构就是lamp(Linux Apache Mysql Php)中小企业的首选,
lnmp(Linux nginx Mysql Php)大型首选,其中,lamp是经典组合。
jsp语法
<%=98+1>
java语法
package test;
import java.util.ArrayList;
import java.util.List;
import org.apache.oro.text.regex.MalformedPatternException;
import org.apache.oro.text.regex.Pattern;
public class Testl {
static final String linkspiltpreg = "\\{(.+?)\\}";
public static void main(String[] args){
String str1 = "北京{交通}大{学} ";
String str2 = “”;
List ls = new ArrayList();
PatternCompiler compile = new Per15Compiler();
Pattern pattern = null;
try {
pattern = comlile.compile.cpmpile(linkspiltpreg,
Per15Compiler.CASE_INSESITIVE_MASK);
} catch (MalformedPatternException e) {
e.printStackTrace();
}
Util.splitSection(ls,new Per15Compiler(),pattern,strl);
for(int i = 0 ; i<ls.size();i++){
str2 = (String)ls.get(i);
if(str2.toLowerCase().matches(linkspiltpreg)){
System.out.println(str2);
}
}
}
}
提示:java编译成*.class类文件使用。
JSP,JAVA程序--由Tomcat/Resin/weblogic/jboss当容器解析 典型架构就是lamt(Linux Apache Mysql tomcat)
lamr(Linux Apache Mysql/Oracle resin),lnmr(Linux nginx Mysql/Oracle resin)
asp语法
<html>
<body>
<%
response.write("Hello World!")
%>
</body>
</html>
.asp .aspx程序由pws、IIS(Internet Informaion Services)软件解析,后端数据库一般为sql server,access。
参考来自:http://www.w3school.com.cn/asp/asp_syntax.asp
网页技术与标准: 参考:http://baike.baidu.com/view/641394.htm
访问模式
b/s模式
b/s模式--browser/server 浏览器/服务器结构,常见协议如http 如:apache服务。
B/S架构的全称为Browser/Server,即浏览器/服务器结构。Browser指的是web浏览器,极少数事物逻辑在前端实现,但主要事物逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。B/S架构的系统无需特别安装,客户端只需有web浏览器即可。
B/S架构中,显示逻辑交给了Web浏览器,事务处理逻辑放在了WebAPP上,这样就避免了庞大的胖客户端,减少了客户端的压力。因此客户端包含的逻辑很少,因此也被成为瘦客户端。
优点:
1)无需安装客户端,有web浏览器即可,操作系统都会自带。
2)BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
3)BS架构无需升级多少客户端,升级服务器即可。
缺点:
1)在跨浏览器上(要兼容各种浏览器),BS架构不尽如人意。
2)BS架构的表现要达到CS程序的程度需要花费不少精力(需要测试人员做各种测试)。
3)在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。
4)客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户端乐意去做的。(Ajax实用化后此问题得到了一定程度的缓解)
C/S模式
C/S模式--client/server,酒店管理系统,考勤系统,会计用友软件,超市收银系统。C/S架构是一种典型的两层架构,其全称是client/server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户通过数据库连接访问服务器的数据;另一种是是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。
C/S架构也可以看做是胖客户端架构。因为客户端需要实现绝大多数的业务逻辑和界面展示。这种架构中作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是SQL或存储过程实现)来达到持久化数据,以满足实际项目的需要。
优点:
1、C/S架构的界面和操作可以很丰富。
2、安全性能可以很容易保证,实现多层认证也不难。
3、由于只有一层交互,因此响应速度较快。
4、服务器端和客户端可以更好的兼容。
缺点:
1、适用面窄,通常用于局域网中(当前的BS和CS架构差别比较模糊了),例如:魔兽,CS,收银系统。
2、用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
3、维护成本高,发生一次升级,则所有客户端的程序都要改变。
PV IP UV
IP-Internet Protocol
IP(独立IP):即Internet Protocol,指独立IP数。不同的IP地址的计算机访问网站的总次数。是网站流量分析的一个重要指标。00:00-24:00内相同IP地址被计算一次。
办公室所有同事打开我的博客,是几个IP?
赶集网:日300w IP,至少300万人访问。
独立IP数量网站访问量,不是很准确。国内上网多数都是NAT上网的,一个独立IP背后可能有数十上百个客户端访问。
PV-Page View
PV(访问量):即Page View,中文翻译即页面浏览,即页面浏览量或点击量,用户每次刷新即被计算一次。
PV的具体的度量方法就是从浏览器发出一个对网络服务器的请求(Request),网络服务器连到这个请求后,会将该请求对应的网页(Page)发送给浏览器,从而产生了一个PV。那么在这里只要是这个请求发送给了浏览器,无论这个页面是否完全打开了(下载完成),那么都是应当计为1个PV,但是为了防止用户刷PV,很多网站吧PV的统计程序放在页面的最下面。
PV反应的是浏览器某网站的页面数,所以每刷新一次也算一次。就是说PV与来访者的数量成正比,但PV并不是页面的来访者数量,而是网站被访问的页面数量。
问:如果用户访问一个网站,你觉得平均会产生多少pv?
IP/PV的度量:
PV的度量:
1.分析web服务的访问日志(排除,js,css,各种图片),html,php。
2.在所有页面结尾,嵌入js程序(GA),传给统计服务器。
3.用第三方大家比较信任的统计工具。(GA)
IP的度量:
1.分析web服务的访问日志,去重。
2.在所有页面结尾,嵌入js程序(GA),传给统计服务器。
3.用第三方大家比较信任的统计工具。(GA)
UV-Unique Visitor
UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端(pc和客户端)为一个访客。00:00-24:00内相同的客户端只被计算一次。
UV(独立访客):独立的自然人访客,一个人访问记一个UV,通过不同技术方法来记录,实际会有误差。
UV的度量
1、网站服务器分辨
网站服务器会接到很多页面请求,每次请求的信息内部都包含了你电脑的一些信息,比如:ip地址,请求发出的时间,浏览器的版本,操作系统版本等等。网站服务器对这些进行分析,如果这些请求满足一些特性,比如来自同一个IP地址,且浏览器版本,操作系统版本相同,请求时间有相近等等,如果满足这一系列的定义,那么就可以认为这些请求是来自同一个Visitor的,那么这些访问自然是产生一个UV。当然,共同特征的如何定义是由网站服务器的设置决定的,通常来讲,用IP地址+其他特征共同来定义的情况比较多见。
问题:a。多个人的电脑的软硬件经常雷同。 b。多人共用一个电脑。
2、用Cookie分辨
当客户端第一次访问某个网站服务器的时候,网站服务器会给这个客户端的电脑发出一个Cookie,通常放在这个客户端电脑的c盘中。在这个Cookie中分配一个独一无二的编号,这其中会记录一些访问服务器的信息,如访问时间,访问了哪些页面等等。当你再次访问这个服务器的时候,服务器就可以直接从你的电脑找到上一次放进去的Cookie文件,并且对其进行一些更新,但那个独一无二的编号是不会变的。如果在一定时间内,服务器发现2个Visitor所对应的是一个编号,那么我们自然可以认为这是来源于同一个Visitor,自然也就是1个UV。
使用Cookie的方法要比第一个更精确些。但也存在一些问题,比如:有的客户端为了保证更高级别的安全,关闭了Cookie的功能;或者是有些客户设置了在退出页面时自动删除Cookie,亦或你经常自己动手删除Cookie,那么这个方法就不那么准确了。
由此看来,两个方法都只能得到近似的UV,而不是绝对精确的。但在浩瀚的访问数据中,能计量出这些数据对我们的网站分析工作已经是可以有所指导并用于分析使用了。了解了这些数据的实际度量方法,有利于我们更加真实的还原用户的使用行为,让我们对网站真实的使用情况了解的更清楚。
IP,PV,UV的区别
独立IP表示,拥有特定唯一IP地址的计算机访问您的网站的次数,因为这种统计方式比较容易实现,具有较高的真实性,所以成为大多数机构衡量网站流量的重要指标。比如你是ADSL拨号上网的,你拨一次号都自动分配一个IP,这样你进入了本站,那就算一个ip,你断线了而没清理cookies,之后又拨了一次号,又自动分配到一个ip,你再进来了本站,那么又统计到一个ip,但是UV(独立访客)没有变,因为2次都是你进入了本站。
PV高不代表来访者多;PV与来访者的数量成正比,但是PV并不直接决定页面的真实来访者数量。比如一个网站就你一个人进来,通过不断的刷新页面,也可以制造出非常高的PV。
独立访客是指不同的、通过互联网访问、浏览一个页面的自然人。
比如,在同一台电脑上,哥哥打开了51cto的主页,注册了一个会员。弟弟一会儿也看了看,注册了另一个会员。由于兄弟两个使用的是相同的计算机,那么他们的ip是一样的,51cto的计数器记录到一个ip登录的信息。但是,具有统计功能的统计系统,可以根据其他条件判断出实际使用的用户数量,返回网站建设者真实、可信和准确的信息。比如通过注册的用户,甚至可以区分出网吧。机房等共享一个ip地址的不同计算机。上面例子就说明最然是同一个ip,但是有2个独立访客。
再举个例子,比如一个网吧里,有100个人都进入了www.etiantian.org的网站,但是一个网吧对外都是一个IP的,所以统计系统只统计到了一个IP,但是因为网吧里有100人在访问我的网站,尽管他们都仅仅打开我的网站首页,或者这100人都把我网站所有页面都看了一遍,统计到100个访客。
使用独立用户作为统计量有什么好处?它比ip更加准确吗?
ip是一个反应网络虚拟地址对象的概念,独立用户是反映实际使用者的概念,每个独立用户相对于每个ip,更加准确地对应一个实际的浏览者,使用独立用户作为统计量,可以更加准确的了解单位时间内实际上有多少访问者来到相应的页面。
面试
1)并发访问:一台服务器同时多少访问。
2)日PV,IP,UV,5000w/86400=网站的最高并发,最低是每秒这个数。
什么是并发?
怎么理解并发?
查看网站排名、IP、PV的地址:
http://alexa.chinaz.com/?domain=google.com
查看网站排名的地址:
http://www.alexa.cn/
http://top.chinaz.com/
-------<oldboy听课整理>
本文转自 sunrisenan 51CTO博客,原文链接:http://blog.51cto.com/sunrisenan/1869140