目录
1、服务器种类
按网络规模划分:工作组级服务器、部门级服务器、企业级服务器
按架构划分:CISC(复杂指令集)架构服务器、RISC(精简指令集)架构服务器
按用途划分:通用型服务器、专用型服务器
按外观划分:台式度武器、机架式服务器、刀片服务器
2、web服务器工作原理
1)服务器软件
apache(静态网站)
nginx(动静)
tomcat(动态网站:php,weblogic,websphere,Resin,IIS)
2)架构
lnmp(linux、nginx、mysql、php/python/perl)
lamp(linux、apache、mysql、php/python/perl)
3)协议
HTTP超文本传输协议,应用层协议,基于TCP 端口80 HTTP请求报文 HTTP响应报文
HTTPS安全(封装了SSL安全套接字层)的HTTP协议,端口443
HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT(8种)
注1:GET与POST区别?
(1) 地址栏处的变化:
GET提交请求的数据会附在URL之后用?拼接的方式显示在地址栏处(请求行)。
POST提交把提交的数据封装在HTTP请求中,地址栏并不会改变。
(2)传输数据的大小:
GET提交时,传输数据就会受到URL长度的限制;
POST提交时由于不是通过URL传值,理论上数据不受限;肯定是比GET传输数据大
(3)安全性:
POST的安全性要比GET的安全性高。
注2:简述静态网页与动态网页的区别
(1)更新和维护:动态网页以数据库技术为基础,所以维护成本低
(2)交互性:动态网页交互性强
(3)响应速度:静态网页响应速度快
(4)访问特点:动态网页URL含有"?",搜索引擎一般不可能从一个网站的数据库中访问全部网页,收益不能直接双击打开
注3:简述Web1.0和Web2.0的区别
Web1.0的注重在于用户通过浏览器获取信息;
Web2.0则更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者
注4:HTTP请求响应报文
- HTTP请求报文:请求行、请求头、请求体
- HTTP响应报文:状态码、响应头、响应体
状态码:
1xx:指示信息–表示请求已接收,继续处理。
2xx:200 请求成功
3xx:302 重定向。
4xx:404 请求资源不存在
5xx:500 服务器端产生错误
4)HTTP工作原理
(1)建立TCP连接
客户端通过浏览器输入地址向服务器请求,首先建立TCP连接,开启80端口
(2)建立了TCP连接,Web浏览器向Web服务器发送请求报文
(请求行:GET/post方法,协议版本号等;请求头:以头信息的形式向Web服务器发送一些别的信息;空白行:通知服务器,它已经结束了该头信息的发送。)
(3)Web服务器向web客户端发送响应报文(状态码,响应头,响应体:数据)
服务器端向客户端发送数据,并显示在客户端屏幕上
(4)Web服务器关闭TCP连接
5)HTTP加密通信
客户端发起HTTPS请求,服务器端把证书发给客户端,客户端会验证数字签名是否有效,如果有效的话,客户端就产生会话密钥,然后用公钥对密钥加密再传给服务器,服务器就可以用私钥解密,然后客户端与服务器端就可以通信
过程:
(1)客户端发起HTTPS请求
用户在浏览器里输入一个https网址,然后连接到服务器端的443端口。
(2)服务器接收客户端请求,然后向客户端传送证书(公钥和数字签名)
证书内容就是证书的颁发机构,过期时间等等。
服务器端会有一套数字证书,可以自己制作,也可以向组织申请。
区别就是自己颁发的证书需要客户端验证通过(即需要自己在网络验证接口写验证代码),才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。
这套证书是一对公钥和私钥,即不对称的加密方式。
(3)客户端接收来自服务器端的证书并进行解析认证,成功就产生一个hash值,并用服务器端传来的公钥对该hash值加密,然后HTTPS把这个hash值传给服务器
客户端会验证数字签名是否有效,比如颁发机构,过期时间等等。如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就产生一个hash值,然后对该hash值用公钥进行加密。
(4)服务端对客户端传来的加密后的hash值进行解密(就可以获得原hash值),这样双方就可以实现更加安全的通信。
这个原hash值就是会话秘钥。以后客户端和服务端的通信就通过秘钥进行对称加密。现在只有客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。
注:公钥和私钥成对出现;公开的密钥叫公钥,只有自己知道的叫私钥;用公钥加密的数据只有对应的私钥可以解密;用私钥加密的数据只有对应的公钥可以解密
3、DHCP工作原理
四个广播过程,客户端发送广播数据包给整个物理网段内所有主机,若局域网有dhcp服务器,才会响应客户端IP参数要求并分配地址
(1)DHCP动态主机配置协议:应用层网络协议,基于UDP,客户端端口68,服务器端口67,能解决IP地址冲突集中管理地址
(2)工作过程
a.客户端寻找DHCP服务器:客户端进行IP请求,会以广播的方式发送DHCP DISCOVER报文。源地址:0.0.0.0-目标地址:255.255.255.255
b.DHCP服务器提供IP地址:DHCP服务器端接收到客户端的请求,从尚未出租的IP地址中挑选一个分配给客户端,并为为客户保留这个IP地址,然后通过广播的方式发送DHCP OFFER报文给客户端。源地址:DHCP服务器的地址-目标地址:255.255.255.255
DHCP OFFER报文:客户的MAC地址、服务器提供的IP地址、子网掩码、租期以及提供的IP地址
c.客户端在第一个到达自己的DHCP OFFER报文中进行选择IP地址,然后客户端会广播发送DHCP REQUEST报文到DHCP服务器,进行请求申请这个IP地址。广播就是告诉所有的DHCP服务器我接收的是哪一台服务器提供的IP地址,然后那些其他的DHCP服务器会撤销提供的IP地址,以便下一次租用。源地址:0.0.0.0-目标地址:255.255.25
d.DHCP服务器收到客户端的DHCP REQUEST报文后,会广播发送DHCP ACK报文到客户端,表明把这个IP地址供给客户端使用。源地址:DHCP服务器的IP地址-目标地址:255.255.255.255
注1:如果客户端收到DHCP服务器的DHCP ACK后,通过地址冲突检测(无故ARP)发现DHCP服务器提供的IP地址冲突,客户端就会向DHCP服务器发送DHCP DECLINE来通知服务器,并且会重新向服务器申请地址。
关于DHCP报文,可以看下这篇文章DHCP八种报文
4、DNS域名解析服务器工作原理
DNS:域名(FQDN)–>IP地址,存在正向解析和反向解析;
基于TCP/UDP,端口53。
一个Ip地址对应多个域名,而一个域名只能对应一个IP地址
1、域名层次树状结构的命名方法
根域:13个根服务器:一个主根服务器,12个辅助服务器,a~m。记录顶级域名服务器详细信息 .
顶级域:国家或者地区、公司。记录该顶级域名服务器注册的所有的二级域 名服务器的详细信息
(1)国家顶级域名:cn代表中国,us代表美国,uk代表英国,国家域名又常记为ccTLD(cc表示国家代码contry-code)。
(2)通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。
(3)基础结构域名(infrastructure domain):这种顶级域名只有一个,即rarp,用于反向域名解析,因此称为反向域名。
二级域:上层域名服务器记录下层域名服务器的信息
等其他域:三级、四级等
2、DNS域名解析过程
(1)从浏览器访问http://www.sina.com.cn的全过程
www.sina.com.cn.上层域名服务器记录下层域名服务器的信息
根域名服务器记录注册的所有的顶级域名服务器的详细信息
顶级域名服务器记录注册的所有的二级域名服务器的详细信息
二级域名服务器记录注册的所有的三级域名服务器的详细信息…
步骤:
1、主机发出请求解析www.sina.com.cn域名的报文
2、首先检查本地的host文件匹配ip地址(lC:/widnows/system32/drvices/etc/hosts)
3、检查本地的缓存,看是否有该信息,有匹配ip地址
4、本地路由器dns查看对应ip
若以上步骤都查不到
5、主机请求本地所匹配的本地域名服务器,有则回复,如果本地域名服务缓存了该域名所对应的IP地址,就把结果返回;
6、若不存在缓存或者缓存过期,本地服务器是否设置了转发地址,则将查询请求转发给响应的转发DNS服务器
7、无转发器,本地域名服务器就会把www.sina.com.cn.信息请求根域名服务器,根域名服务器收到请求后,查询自己的信息(NS,A),判断该域名属于.cn域,并把结果返回给本地域名服务器,本地域名服务器收到结果就会请求.cn域名服务器,查询自己的信息,判断该域属于.com.cn域,并把结果返回给本地域名服务器,本地域名服务器收到结果就会请求.com.cn域名服务器,查询自己的信息,判断该域属于.sina.com.cn域,并把结果返回给本地域名服务器,本地域名服务器收到结果就会请求.sina.com.cn域名服务器(权限域名服务器),该域名服务器就会查找自己所注册的记录(NS A),找到www.sina.com.cn记录所对应的的IP地址,就会把结果返回给本地域名服务器,本地域名服务器接收后,就把结果返还给请求该域名的主机。
解析过程有两种不同的查询轨迹:递归查询、迭代查询
实际解析分为两段:一段递归(通常是本机向本地DNS服务器使用)、一段 迭代(本地域名服务器向根域名服务器、顶级域名服务器,二级服务器的请求)
8.主机拿到ip地址后,想要进行通信,先要和对方取得联系。看对方在不在,这个通常是由三次握手来实现。
9.三次握手完成后,主机和服务器之间就建立了一个可靠地虚拟通道。浏览器知道了这个消息后。就将http请求消息打包,通过tcp协议发送给了服务端。
10.服务端收到请求报文后,处理报文信息,处理完成后将数据打包返回给客户端
11.通信完成后,通过四次挥手,拆除tcp连接。客户端或服务器均可主动发起挥手动作。
12.最后,客户端拿到返回数据。
5、NFS网络文件系统
实现文件共享,NFS负责将数据以文件系统的方式发布在网上,并对访问者进行登录管理和权限管理,客户端则将该文件挂载在本机进行操作。要实现NFS共享资源在不同主机传输,还得依赖RPC远程过程调用,进行端口映射。
1、NFS工作过程:
a.首先服务器端启动RPC服务,并开启111端口
b.服务器端启动NFS服务,并向RPC注册端口信息
c.客户端启动RPC,向服务端的RPC服务请求服务端的NFS端口
d.服务端的RPC将NFS端口信息给客户端。
e.客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。
6、FTP文件传输协议
基于TCP协议 21命令端口 20数据端口
实现不同Os之间上传下载
FTP服务系统由服务端、客户端、FTP通信协议构成
数据通道建立模式:
主动模式:服务器主动连接客户端
被动模式:服务器被动等待客户端连接自己
1、FTP工作原理
-
主动模式下的FTP
主动模式下,FTP客户端从任意的非特殊的端口(N > 1023)连入到FTP服务器的命令端口–21
端口。然后客户端在N+1(N+1 >= 1024)端口监听,并且通过N+1(N+1 >= 1024)端口发送命令给FTP服务器。服务器会反过来连接用户本地指定的数据端口,比如20端口。
以服务器端防火墙为立足点,要支持主动模式FTP需要打开如下交互中使用到的端口:
FTP服务器命令(21)端口接受客户端任意端口(客户端初始连接)
FTP服务器命令(21)端口到客户端端口(>1023)(服务器响应客户端命令)
FTP服务器数据(20)端口到客户端端口(>1023)(服务器初始化数据连接到客户端数据端口)
FTP服务器数据(20)端口接受客户端端口(>1023)(客户端发送ACK包到服务器的数据端口)
用图表示如下:
-
被动模式下的FTP
为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。在被动方式FTP中,命令连接和数据连接都由客户端,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N >; 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P >; 1024),并发送PORT 命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:
FTP服务器命令(21)端口接受客户端任意端口(客户端初始连接)
FTP服务器命令(21)端口到客户端端口(>1023)(服务器响应客户端命令)
FTP服务器数据端口(>1023)接受客户端端口(>1023)(客户端初始化数据连接到服务器指定的任意端口)
FTP服务器数据端口(>1023)到客户端端口(>1023)(服务器发送ACK响应和数据到客户端的数据端口)
用图表示如下:
-
主动模式与被动模式优缺点:
主动模式对ftp对服务器管理有利,是由FTP服务器主动与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞。
而被动模式对客户端管理有效,它是企图 与服务端的随机端口建立连接但是这个端口很可能又会被服务端的防火墙所拒绝。
一般做安全措施我们是在被动模式下做,由于主动模式是打开一个端口给客户端传送数据,我们做安全措施都是基于端口来做所以不太好做,一般也不建议去做。但是被动模式也是在不停地放端口,所以慢慢的ftp慢慢的在淘汰。
防火墙的意义:链接追踪/RELATED,自动监听该端口,并且设置防火墙允许被人来访问该端口
2、ftp传输模式:
文本模式、二进制模式:程序、压缩包、图片
3、ftp用户的类型
匿名用户、本地用户:账号密码保存在passwd,shadow中、虚拟用户