01、web开发相关概念与常见web服务器
用户通过浏览器,访问网络程序,才能访问比如1.html,这个网络程序就是一台web服务器。
服务器上的一个网络资源,外界到底是怎么拿到手的? 就是通过网络程序,即web服务器。
常见的web服务器
1、WebLogic BEA公司的产品,支持J2EE(支持13门技术),商业产品,收费的。
2、WebSphere 支持J2EE,也是商业产品。
3、apache 的Tomcat,仅支持JSP以及servlet规范,免费。
安装apache tomcat之前必须先安装JDK(tomcat 是用java写的程序)
安装JDK的方法:
1、下载JDK 1.7版本:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
2、配置环境变量:http://jingyan.baidu.com/article/bea41d435bc695b4c41be648.html
(1)用鼠标右击“我的电脑”,选择“属性”->“高级”->“环境变量”->“系统变量”->“新建”。
在“变量名”输入框中写入“java_home”,在“变量值”输入框中写入“C:\Program Files\Java\jdk1.6.0” (根据安装路径填写),然后点击“确定”,java_home就设置完成了。
(2)下面开始“classpath”的配置。选中“系统变量”查看是否有classpath项目,如果没有就点击“新建”,如果已经存在就选中classpath选项,点击“编辑”按钮,然后在“变量名”中填写“classpath”,在“变量值”中填写“C:\Program Files\Java\jdk1.6.0\jre\lib”(根据安装路径填写)。
(3)现在可以进行“path”的配置了。同上在“classpath”设定时类似,“变量名”输入框填写“path”,“变量值”输入框填写“C:\Program Files\Java\jdk1.6.0\bin”(根据安装路径填写)。
(4)JDK的环境变量已经配置完成,可以通过打开命令提示符窗口,输入命令“java -version”, 看到Java版本的信息,来确定安装是否成功。
02、tomcat的安装与启动
1、6.0版下载地址:http://tomcat.apache.org/download-60.cgi
2、安装是用户名asus 密码:12135(自己随便写的)
3、本地打开http://localhost:8080或者 http://127.0.0.1:8080 ,出现那只可爱的猫咪logo,即表示成功!
注:端口的查看方法,找到目录中Tomcat\conf\server.xml中的
<Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" />
或者使用小工具:fport 查到所用的端口,可通过杀死进程的方法,来杀掉端口。如果杀不死进程,就去关服务。
注:在win7下貌似fport不能正常使用,可以使用tcpView来查看各端口。
tomcat的简单的启动与终止方法(也可以用这种语法来启动和终止别的服务)
cmd中输入 net start tomcat6 / net stop tomcat6
也可在管理工具中的服务面板来手动关闭apache tomcat 6.0的这个服务。
03、tomcat服务器的目录结构
1、bin 存放启动和关闭 Tomcat的脚本文件
2、conf 存放Tomcat服务器的各种配置文件,最核心的 配置文件是server.xml
3、lib 存放Tomcat服务器的支撑jar包
4、logs 存放日志文件,希望引起重视
5、temp 存放运行时产生的临时文件
6、webapps web应用所在目录,即供外界访问web资源的存放目录
7、work Tomcat的工作目录,在学习JSP的时候会用到。
8、license
9、notice
10、release-notes
04、web应用和虚拟目录的映射
web应用程序(供浏览器访问的程序)
一个web应用由多个静态web资源和动态web资源组成。
web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚拟目录的映射。
可以在服务器的配置文件server.xml中进行配置。
<Context path="/itcast" docBase="c:\news" /> //Context代表web应用
配成缺省的,<Context path="" docBase="c:\news" />
注意:配置完成后,需要重启服务器才能加载。所以这种需要重启的配置方法不好,不常用。
其他不需要重启的方法:
1、可以在conf/context.xml中配置,在这里面配置的信息会被服务器中所有的web共享,若在这里写reloadable,则全局性的更新,尽量不要用。
2、可以在conf...............也是被共享。
3、可以在conf/Catalina/localhost/中新建一个.XML的文件,文件的名称会被用作path,即Context内只需要写docBase即可。
多级虚拟目录可以通过命名来实现,比如命名为a/b/c.xml,则就可以映射为a/b/c/1.html
把文件名命名为ROOT.XML即为缺省的,http:localhost:8080打开的,但此时需要重启服务器。
4、以后的课程会介绍。
让tomcat服务器自动映射:tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚拟目录。
05、web应用的组织结构和web.xml文件的作用
开发web应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错。
比如:HTML、JSP、CSS、JS文件一般存在web应用的根目录下,根目录下的文件外界可以直接访问。
java类(放在WEB-INF下的classes目录中)、jar包(放在WEB-INF中的lib目录中)、web应用的配置文件(web.xml,每一个web应用必须要有一个这个文件,是整个web最重要的文件,对web中的资源进行配置和管理。只要涉及到web资源进行配置通通要通过他)存在WEB-INF目录下(必须大写,不能写错!!),该目录下的文件外界无法直接访问,由web服务器负责调用。
web.xml的作用
可以通过web.xml把某个web资源配置成网站首页。
06、配置虚拟主机(搭建网站)
在一个tomcat服务器中可以放置多个网站,所谓配置虚拟主机,就是在tomcat服务器中配置一个网站。
如需在web服务器中配置一个网站,需使用host元素进行配置。
<Host name="site1" appBase="c:\app"> </Host>
实例: 在conf中的server.xml 中添加一个host :
<Host name="www.sohu.com" appBase="c:\sohu">
<context path="mail" docBase="c:\sohu\mail"/>
</Host>
这时在浏览器地址栏输入http://www.sohu.com/mail/1.html 能访问到我们自己建立的1.html吗?(假若端口地址已经改为了80)
答案是否定的,你要搞清楚输入www.sohu.com到底发生了什么。
1、IE中输入www.sohu.com,浏览器要先向windows Host查询他知不知道搜狐的IP,如果他知道,则直接取,如果windows不知道,则向DNS查找对应的IP地址。
2、IP地址会返给IE。
(即,一个网站访问不了,可能是搜狐挂了,也可能是DNS挂了,如果是DNS挂了,我们要是知道搜狐的IP,也可以直接访问)
注:windows的host文件在system32/drivers/etc/hosts(可以用来做外挂,也可以防止软件的升级)
配置的主机(网站)要想被外部访问,必须在DNS服务器或者windows系统中注册。
07、UML描述web资源访问流程
有个专门的软件来画程序的交互图 rational rose,这部分的说明,请参见我的另一篇博客:http://blog.csdn.net/snioper007/article/details/9283899
将web应用打war包
用cmd进到响应的目录中,使用jar -cvf news.war new(文件夹名)
打成war包后服务器认识,放到webapps中会自动解压
配置context元素的reloadable
例如:<Host name=www.sohu.com appBase="c:\google">
<Context path="" docBase="c:\google" reloadable="true">
</Host>
好处:java程序更改后会自动发布。
实际开发中建议大家不要配,服务器只要发现程序更改就自动更改,程序大的话,不停的更改,增加负担,出现很多奇怪的问题。
如果程序小的话,可以使用,方便。
08、tomcat体系结构
上面的这个图是和server.xml文件相对应的。
09、软件密码学基础和配置tomcat的https连接器
密码学基础参考我的另一篇博文:http://blog.csdn.net/snioper007/article/details/9286399
要实现加密传输数据,首先要生成一份数字证书,再配一个加密的连接器,之后你一访问这个网站,这个网站就向你出示这份证书,浏览器安装这个证书,就相当于安装了这个网站的公钥,然后你提交的数据就可以用公钥加密,再提交给服务器。
1、创建数字证书
创建数字证书,使用java中自带的一个工具:keytool-genkey(密钥对)-alias(别名) tomcat-keyalg RSA
打开cmd,keytool -genkey -alias tomcat -keyalg RSA
先输入密码,然后最重要的一步是,您的名字和姓氏是什么?本地测试时输入:localhost
其他的都可以不填,回车即可
最后他会把你输入的信息显示出来,输入Y确定。
打开命令提示行对应的目录,就可以找到生成的密钥库,.keystore
2、配置服务器
将.keystore复制到$catalina\conf目录下
打开,server.xml
普通连接器 <connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
里面有个注释掉的加密连接器:
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
这个加密的连接器收到用户的请求后,向用户出示那个数字证书呢?
我们怎么把这个密钥库配置给他呢?
这个我们看tomcat的文档,http://localhost:8080/docs/config/http.html
找到SSL Support 下面的keystoreFile,keystorePass
提取上面的加密连接器,并补充
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="conf/.keystore" keystorePass="123456" />
恭喜大家,配好了,再次重启服务器。
登陆加密连接器:https://localhost:8443
出现下面的界面:
因为当前的证书没有在CA验证,CA没有给你担保,浏览器自动阻止,因为是在测试,所以我们忽略,继续打开,点击安装证书。
可以在internet选项中内容页面的证书里删除已安装的证书。
这里有个问题,如果用户的浏览器被劫持了,强制安装了不受CA认证的非法证书,则可能通过钓鱼的方式非法获取用户的信息。
为了解决这个问题,现在好多银行,通过U宝来传递证书。
注意:此处配置的只是单方的加密连接器,实际开发中应配置https双向加密连接器。这部分内容后期补充。
tomcat服务器的管理平台
http://localhost:8080 打开tomcat然后左侧有个tomcat manager,用户名和密码参见conf下的tomcat-users.xml
<tomcat-users>
<user name="asus" password="12135" roles="admin-gui,manager-gui" />
<!--
NOTE: The sample user and role entries below are wrapped in a comment
and thus are ignored when reading this file. Do not forget to remove
<!.. ..>
that surrounds them.
-->
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
</tomcat-users>
账户asus,密码12135,是安装tomcat时设置的账户和密码。
系统提供了5个账户,但是默认是注释的。可以取消,取消后要重启服务器。
<role />是配置角色
<user />是配置用户
使用下面这个账户登录时,会提示无法访问,权限不够
<user username="tomcat" password="tomcat" roles="tomcat"/>
我们重新配置下权限
<role rolename="manager"/>
<user username="tomcat" password="tomcat" roles="tomcat,manager" />
使用用户名密码进入管理界面后,就可以看到webapps下的所有目录了
点击stop,停掉web应用,外界就无法访问了。reload就是重新加载,undeploy删除这个web应用。
实际开发中,这个界面的意义:当你的web应用放在远程的服务器中,你在家里面可以通过操作这个来操作你的web应用。
所以这里要强调一下,你的用户名密码非常重要,防止非法操作。
这个页面的下边还有个:war file to deploy 可以用来部署war文件
10、http协议概述和动手实践http协议
客户端脸上web服务器后,若想获得web服务器中的某个web资源,必须遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通讯的格式。
为了增加大家的认识:下面使用telnet程序脸上web服务器,并使用HTTP协议获取某个页面,快速了解HTTP协议的作用。
在CMD中输入telnet localhost 8080 (如果提示没有telnet,请到控制面板的添加删除程序中,把telnet添加到本机中)
如果输入telnet localhost 8080 ,显示横杠而不是字符的话,按下ctrl+],然后回车即可
这时就可以测试你自己的web程序了,
比如输入:GET /test/1.html HTTP/1.1
Host: //如果是默认主机,即localhost,可以不写直接回车
若一切正确会返回HTTP/1.1 200 OK,如下图:
安装IE浏览器插件HttpWatch,查看IE浏览器通过HTTP协议获取某个页面。
HttpWatch的详细介绍,请参见我的另一篇博文:http://blog.csdn.net/snioper007/article/details/9284409
HTTP协议时TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。
HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源,如下图。
HTTP1.1协议中,允许客户端与web服务器建立连接后,在一个连接上可以获取多个web资源。
HTTP1.1协议,完成当前任务后,不会断开连接,光标还会在最后闪烁,这时还可以再输入GET命令。
一个容易混淆的问题:
我的test/1.html中的内容:
this is 1.html
<img src="1.jpg">
<img src="2.jpg">
<img src="3.jpg">
一个web页面中,使用img标签引用了三幅图片,当客户端访问服务器中的这个web页面是,客户端总共会访问几次服务器,即向服务器发送了几次HTTP请求呢?
打开httpWatch,可以看到浏览器向服务器发送了4次请求。
第一次是向test/1.html发送请求。
第二、三、四次是浏览器解析1.html,发现里面有很多需要请求的资源,然后再向test/1.jpg(2、3、4)分别发送请求。
web页面设计的很重要的一个要求是,web页面要尽量减少HTTP请求。
如果页面没有设计不好的话,可能导致页面承载过多的访问请求。
可以将三幅图片搞到一张图片上,减少请求次数。
如果页面是:
this is 1.html
<script src="1.js"></script>
<script src="2.js"></script>
这样的界面也不好,所以建议把能归并的js都归并到一起。
11、HTTP请求行和请求方式详解
分为两个部分,一个是请求,一个是响应。
HTTP请求:
客户端连接上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括如下内容:
一个请求行、若干请求头、以及实体内容,如下所示:
举例:
GET /books/java.html HTTP/1.1 //请求行,用于描述客户端的请求方式+请求资源的名称+使用的HTTP协议的版本号。
Accept:*/* //以下为多个请求头,用于描述客户端请求的哪台主机,以及客户端的一些环境信息。
Accept-Language:en -us
Connection:Keep-Alive
Host:localhost // 描述客户机要请求服务器的哪台主机
Referer:http://localhost/links.asp
User-Agent:Mozilla/4.0 //User Agent中文名为用户代理,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。注意:别指望能从 Mozilla 版本中得到什么靠谱的信息。
Accept-Encoding:gzip,deflate //客户端支持的压缩格式
//一个空行
XXXXXXXXXXXXXXXXXX //有时会有请求数据,比如上网时填写的表单,使用POST方式提交。
具体来看:
(1)请求行:
请求行中的GET称之为请求方式,请求方式有以下七种:
POST、GET、PUT、HEAD、OPTIONS、DELETE、TRACE
互联网常用的是:POST和GET,
用户如没有设置,默认情况下浏览器向服务器发送的都是GET请求,例如在浏览器直接输地址访问。点超链接访问等都是GET,用户如想把请求方式改为POST,可通过更改表单的提交方式来实现。
<form action="/1.html" method="post">
</form>
除了上述的方式外,其余的通通都是GET!!!
不管POST或GET,都用于向服务器请求某个Web资源,这两种方式的区别主要表现在数据传递上:
如请求方式为GET,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分割,例如:
GET /mail/1.html?name=adc&password=xyz HTTP/1.1
GET方式的特点,在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。
若上传文件,肯定不能用GET
如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。
实验:
1、使用get方式传输:
html:
<form action="/1.html" method="get">
<input type="text" name="username">
<input type="submit" value="提交">
</form>
检测到的:
GET /1.html?username=getttttttttttttttttttt HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://localhost:8080/test/1.html
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: localhost:8080
Connection: Keep-Alive
注意:1、get方式提交,参数会显示在地址栏上,所以用户名密码不能用get方式。
2、用户在点击超链接的时候,带点数据给服务器
<a href="/2.html?username=aaaaa">请点我</a>
2、使用post方式传输:
POST /1.html HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://localhost:8080/test/1.html
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 37
Connection: Keep-Alive
Cache-Control: no-cache
username=posttttttttttttttttttttttttt
12、HTTP请求头各个字段详解
用于HTTP的常用请求头:
Accept:text/html,image/* 告诉服务器,客户机支持的数据类型,若为*/*,则表示什么都支持
Accept-Charset:ISO-8859-1 告诉服务器,客户机采用的编码
Accept-Eencoding:gzip,compress 告诉服务器,客户机支持的数据压缩格式
Accept-Language:en-us,zh-cn 客户机支持的语言,比如说你访问google,看到的是中文界面,美国人看到的是英文界面,就是根据这个值
Host:www.baidu.com 客户机通过这个字段告诉服务器,想访问的主机名
If-Modified-Since:Tue,11 jul 2013 09:57:48 客户机通过这个头告诉服务器,当前资源的缓存时间,并比较这个时间和网页的最近更新时间,如果页面没有更新则直接读取缓存
Referer:http://www.google.com
告诉服务器,客户机访问当前的页面是从哪个页面过来的(可用来防盗链)
User-Agent: Mozilla/4.0(compatible;MSIE 5.5;Window NT 6.1) 告诉服务器,客户机的软件环境
Cookie: 客户机通过这个头可以向服务器带去数据
Connection:close/Keep-Alive 这个请求后是保持还是关闭链接
Date:Tue ,11 Jul 2013 22:32:50 GMT
13、HTTP响应和响应状态行详解
一个HTTP响应代表服务器向客户端回送的数据,它包括:
一个状态行、若干消息头、以及实体内容。
举例:
HTTP/1.1 200 OK 状态行:用于描述服务器对请求的处理结果(协议+状态码+状态说明)
Server:Microsoft-IIS/5.0 以下为多个响应头:用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处
Date:Thu, 13 Jul 2013 17:23:52 GMT 理等一会儿它回送的数据。
Content-Length:2291
Content-Type:text/html
Cache-control:private
//一个空行,区分上下两部分
<HTML> 实体内容,代表服务器向客户端回送的数据
<BODY>
HTTP响应的细节——状态行
状态行:
格式:HTTP版本号 状态码 原因叙述<CRLF>
举例:HTTP/1.1 200 OK
状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为五类,如下所述:
状态码 | 具体含义 |
---|---|
100~199 | 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程(不常用) |
200~299 | 表示成功接收请求并已完成整个处理工程,常用200 |
300~399 |
未完成请求,客户端需进一步细化请求。例如,请求的资源已经移动到一个新地址,常用302、307和304 |
400~499 | 客户端的请求有错误,常用404 |
500~599 | 服务器端出现错误,常用500 |
常用状态码解释:
200 一切没问题
302 你请求我我让你去请求别人,我会给你回送一个location头
304或307 你请求我资源,我让你去读取缓存
403 服务器有这个资源,你没有权限,服务器拒绝你的访问
404 服务器里没有你请求的资源
500 服务器在处理请求的资源时出问题了
14、HTTP响应头字段详解
常用响应头:
Location:http://www.baidu.com 这个头配合302状态码使用,用于告诉客户端找谁
Server:apache tomcat 服务器通过这个头告诉浏览器,服务器的类型
Content-Encoding:gzip 服务器的数据压缩格式,通知浏览器服务器的压缩格式:response.setHeader("Content-Encodin","gzip")
Content-Length:80 通知浏览器回送数据的长度:response.setHeader(“Content-Length”,"gzip.length+"");
Content-Language:zh-cn
Content-Type:text/html;charet=GB2312 告诉浏览器回送数据的类型,服务器收到的都是0011010,怎么知道有的是文字有的是图片呢?
response.setHeader(“Content-Type”,"image/bmp")
Last-Modified:Tue,11 Jul 2013 17:52:41 GMT
Refresh:1;url=http://www.google.com 告诉浏览器隔多长时间刷新一次 response:setHeader(“refresh”,"3,url='http://www.sohu.com'");
Content-Disposition:attachment;filename=aaa.zip 告诉浏览器以下载方式打开数据 response.setHeader("Content-Disposition","attachment;filename=1.jpg")
Transfer-Encoding:chunked 告诉浏览器数据的传送格式
Set-Cookie:SS=Q0=5Lb_nQ;path=/search 和cookie相关的
ETag:w/'7777-1242234904000' 缓存相关的头,根据资源的内容生成一个唯一的标识符,内容不同标识符不通,客户机下次访问服务器会带着这个标识符,服务器,相对其他的缓存控制,它可以做到实时更新,用时间比较判断缓存,只能做到秒一级的。
Expires:-1 用来控制浏览器对数据缓存的时间,-1或0,是不缓存
Cache-Control:no-cache 不要缓存,实时性很高的如股票页面不要缓存
Pragmano-cache 通过以上两个头控制浏览器不要缓存,不同浏览器对浏览器的缓存的控制方法不一样,不需要缓存的话三个都设置
Connection:close/Keep-Alive
Date:tue,11 Jul 2013 17:52:41 GMT
注:怎么实现服务器的数据压缩 java帮你设计好了API:GZIPOoutputStream,调用其write方法,把数据给他,他就会自动压,压缩完写入输出流
15、HTTP响应头之range头实现断点下载
HTTP请求头字段
range头指示服务器只传输一部分web资源。这个头可以用来实现断点续传功能。range字段可以通过三种格式设置要传输的字节范围:
range: bytes=1000-2000 传输范围从1000至2000字节
range: bytes=1000- 传输web资源中第1000个字节以后的所有内容
range bytes=1000 传输最后1000个字节。
HTTP响应消息头字段
Accept-Ranges:这个字段说明web服务器是否支持Range,支持则返回Accept-Ranges:bytes,如果不支持,则返回Accept-Ranges:none
Content-Range:指定了返回的web资源的字节范围。这个字段值的格式是:
例如:Content-Range:1000-3000/5000(整个资源是5000)
补充知识:
1、打开本地服务 services.msc
2、本地组策略 gpedit.msc
组策略,就是基于组的策略。它以Windows中的一个MMC管理单元的形式存在,可以帮助系统管理员针对整个计算机或是特定用户来设置多种配置,包括桌面配置和安全配置。譬如,可以为特定用户或用户组定制可用的程序、桌面上的内容,以及“开始”菜单选项等,也可以在整个计算机范围内创建特殊的桌面配置。简而言之,组策略是Windows中的一套系统更改和配置管理工具的集合。
注册表是Windows系统中保存系统软件和应用软件配置的数据库,而随着Windows功能越来越丰富,注册表里的配置项目也越来越多,很多配置都可以自定义设置,但这些配置分布在注册表的各个角落,如果是手工配置,可以想像是多么困难和烦杂。而组策略则将系统重要的配置功能汇集成各种配置模块,供用户直接使用,从而达到方便管理计算机的目的。
其实简单地说,组策略设置就是在修改注册表中的配置。当然,组策略使用了更完善的管理组织方法,可以对各种对象中的设置进行管理和配置,远比手工修改注册表方便、灵活,功能也更加强大。
3、本地用户和组 lusrmgr.msc
通过本地用户和组,可以为用户和组分配权利和权限,从而限制用户和组执行某些操作的能力。权利可授权用户在计算机上执行某些操作,如备份文件和文件夹或者关机。权限是与对象(通常是文件、文件夹或打印机)相关联的一种规则,它规定哪些用户可以访问该对象以及以何种方式访问。