RHCE第四天之Web服务器详解

news2024/11/19 8:32:27

文章目录

      • 一、网址及HTTP简介
      • 二、www服务器的类型
      • 三、 www服务器的基本配置
      • 四、基于https协议的静态网站
      • 五、实验练习

web服务器提供的数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页。在redhat中,网站的首页目录默认在/var/www/html。

一、网址及HTTP简介

网址

URL:Uniform Resource Locator,统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。

网址格式:<协议>://<主机或主机名>[:port]/<目录资源,路径>

浏览器常支持的协议有:http、https、ftp等

主机地址或者主机名:主机地址就是服务器在因特网所在的IP地址。如果是主机名的话,那么就需要域名解析了

端口号(port):http为80,https为443 (IANA:互联网数字分配机构)

• 0-1023:众所周知,永久地分配给固定的应用程序使用,特权端口(只有管理员有权限启用并让进程监听)

• 1024-41951:亦为注册端口,但要求不是特别严格,分配给程序注册为某应用使用:3306/TCP

• 41952-60000:客户端程序随机使用的端口,动态端口,或私有端口

HTTP

http请求方法:在http通信中,每个http请求报文都包含一个方法,用以告诉web服务器端需要执行哪些具体的动作,这些动作包括:获取指定web页面、提交内容到服务器、删除服务器上资源文件等。

状态代码:由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

– 1xx:指示信息 —— 表示请求已接收,继续处理

– 2xx:成功 —— 表示请求已被成功接收、理解、接受

– 3xx:重定向 —— 要完成请求必须进行更进一步的操作

– 4xx:客户端错误 —— 请求有语法错误或请求无法实现

– 5xx:服务器端错误 —— 服务器未能实现合法的请求

– 常见状态代码、状态描述的说明如下:

• 200 OK:客户端请求成功

• 400 Bad Request:客户端请求有语法错误,不能被服务器所理解

• 401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用

• 403 Forbidden:服务器收到请求,但是拒绝提供服务

• 404 Not Found:请求资源不存在,举个例子:输入了错误的URL

• 500 Internal Server Error:服务器发生不可预期的错误

• 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常

HTTP报文:http报文中有很多行内容,这些行的字段内容都是由一些ASCII码串组成,但各个字段的长度是不同的。http报文可分为两种,一种是从web客户端发往web服务器的http报文,称为请求报文。另外一种是从web服务器发往web客户端的报文,称为响应报文

http请求报文

​ http请求报文由请求行、请求头部、空行和请求报文主体几个部分组成:

​ http响应报文由起始行、响应头部、空行和响应报文主体这几个部分组成:

HTTP协议请求的工作流程

(1)终端客户在web浏览器地址栏输入访问地址http://www.ceshi.com:80/index.html

(2)web浏览器请求DNS服务器把域名www.ceshi.com解析成web服务器的IP地址

(3)web浏览器将端口号(默认是80)从访问地址(URL)中解析出来

(4)web浏览器通过解析后的ip地址及端口号与web服务器之间建立一条TCP连接

(5)建立TCP连接后,web浏览器向web服务器发送一条HTTP请求报文

(6)web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文。

(7)web服务器关闭HTTP连接,关闭TCP连接,web浏览器显示访问的网站内容到屏幕上。

二、www服务器的类型

仅提供用户浏览的单向静态网页

单纯是由服务器单向提供数据给客户端,Server不需要与client端有互动,所以你可以到该网站上去浏览,但是无法进行数据的上传。

提供用户互动接口的动态网站

这种类型的网站可以让服务器与用户互动,常见的例如留言板,博客。这种类型的网站需要通过“网页程序语言”来实现与用户互动的行为。常见的例如:PHP网页程序语言,配合数据库系统来进行数据的读、写。当你在向服务器请求数据时,其实是通过服务器端同一个网页程序在负责将数据读出或写入数据库,变动的是数据库的内容,网页程序并没有任何改变。

另外一种交互式的动态网页主要是在客户端实现。服务端将可执行的程序代码(JavaScript)传送给客户端,客户端的浏览器如果提供JavaScript的功能,那么该程序就可以在客户端的计算机上面工作了;另外一种可在客户端执行的就是flash动画格式,在这种动画格式内还可以进行程序设计。

搭建动态网站的需求

  1. 可支持的操作系统:让所有需要的软件都能够进行安装。

  2. 可运行的www服务器:例如Apache。

  3. 网页程序语言:Perl(Practical Extraction and Report Language,实用报表提取语言)、PHP(Hypertext Preprocessor,超文本预处理器,是一种通用开源脚本语言)、JSP(Java Server Pages,java服务器页面)、CGI(Common Gateway Interface,公共网关接口)、ASP(Active Server Pages,动态服务器页面)。

  4. 数据存储的数据库系统 :MySQL、MSSQL、Oracle等。

LAMP(linux+Apache+MySQL+PHP)

• Apache主要提供www的服务器平台

• MySQL:传统的文件读取是很麻烦的,如果你只要读取该文件当中的一小部分,系统还是会将整个文件读出来,若又有人同时读取同一个文件时,那就会造成效率与系统上的问题,所以才会有数据库系统的推出。数据库其实是一种特殊格式的文件,这种文件要通过特殊接口(数据库软件)来进行读写。由于这个特殊接口已经针对数据的查询、写入做过优化设计,因此很适合多人同时写入与查询工作。

• PHP:PHP可以被用来建立动态网页,PHP程序代码可以直接在HTML网页当中嵌入,就像编辑HTML网页一样简单。PHP是一种“程序语言”,这种程序语言可以直接在网页当中编写,不需要经过编译即可执行。

三、 www服务器的基本配置

服务器端:在linux上面实现网页服务器需要Apache这套服务器软件,httpd提供Apache主程序 http://httpd.apache.org/docs/2.4/

安装软件:httpd

yum install httpd -y

请添加图片描述

配置文件:

  1. 主要的配置文件 /etc/httpd/conf/httpd.conf。
  2. 额外的参数文件/etc/httpd/conf.d/*.conf。
    如果你不想要修改原始配置文件httpd.conf的话,那么你可以将你自己的额外参数文件独立出来,例如你想要有自己的额外设置值,可以将它写入/etc/httpd/conf.d/zhuji.conf(注意,扩展名一定是.conf),而启动Apache时,这个文件就会被读入主要配置文件当中了。
  3. 默认的首页所在目录/var/www/html/,当输入网址时所显示的数据,就是放在这个目录当中的首页文件(默认为index.html)。
  4. 默认给一些可执行的CGI(网页程序)程序放置的目录/var/www/cgi-bin/,当输入网址/cgi-bin/时所显示的数据所在。
  5. 默认的Apache日志文件都放在/var/log/httpd/,对于流量比较大的网站来说,一个星期的日志文件的数据可以达到1GB左右

主配置文件内容:

[root@qingyuxin ~]# vim /etc/httpd/conf/httpd.conf 

31   ServerRoot "/etc/httpd"                 #http服务的顶级目录为/etc/httpd
42 Listen 80		#监听在80端口,80为web服务器的默认端口
56 Include conf.modules.d/*.conf     #包括/etc/httpd/conf.modules.d/*.conf的所有文件
66 User apache		#服务的用户(ps -ef | grep httpd,先以root用户把/usr/sbin/httpd服务启动起来)。启动服务后转换的身份,在启动服务时通常以root身份,然后转换身份,这样增加系统安全
67 Group apache
86 ServerAdmin root@localhost		#你的邮箱,有事的时候给你发邮件
95 #ServerName www.example.com:80    ServerName 0.0.0.0:80匹配任意IP地址,监听端口在80端口
注:默认是不需要指定的,服务器通过名字解析过程来获得自己的名字,但如果解析有问题(如反向解析不正确),或者没有DNS名字,也可以在这里指定ip地址,当这项不正确的时候服务器不能正常启动。解决办法就是启动该项把www.example.com:80修改为自己的域名或者直接修改为localhost
 
102 <Directory />    #目录为根,<>为起始标志,</>为结束标志
103     AllowOverride none 	#不允许这个目录下的访问控制文件来改变这里的配置,这也意味着不用查看这个目录下的访问控制文件。
104     Require all denied 		#拒绝访问根
105 </Directory>        #和<Directory />是一组标签,目录控制容器
 
119 DocumentRoot "/var/www/html"			#网页文件存放的目录
 
124 <Directory "/var/www">
125     AllowOverride None
126     # Allow open access:
127     Require all granted
128 </Directory>
 
131 <Directory "/var/www/html">
144     Options Indexes FollowSymLinks   #索引,跟踪软链接
151     AllowOverride None
156     Require all granted
157 </Directory>
 
163 <IfModule dir_module>		#加载一个目录模块
164     DirectoryIndex index.html
165 </IfModule>
 
171 <Files ".ht*">		#不能访问
172     Require all denied
173 </Files>
182 ErrorLog "logs/error_log"
189 LogLevel warn
191 <IfModule log_config_module>	
	#日志配置模块 /var/log/httpd,日志模块:通过时间节点去记录(man date)
196     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{    Referer}i\" \"%{User-Agent}i\"" combined
197     LogFormat "%h %l %u %t \"%r\" %>s %b" com    mon
198 
199     <IfModule logio_module>
201       LogFormat "%h %l %u %t \"%r\" %>s %b \"    %{Referer}i\" \"%{User-Agent}i\" %I %O" combi    nedio
202     </IfModule>
217     CustomLog "logs/access_log" combined
218 </IfModule>
 
 
220 <IfModule alias_module>		#别名模块
247     ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
248 
249 </IfModule>
cgi(通用网关接口)是web服务器运行时外部程序的规范,按cgi编写的程序可以扩展服务器的功能。cgi应用程序能与浏览器进行交互,还可通过数据库API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据
 
255 <Directory "/var/www/cgi-bin">
256     AllowOverride None
257     Options None
258     Require all granted
259 </Directory>
261 <IfModule mime_module>    #多用途互联网邮件扩展模块
266     TypesConfig /etc/mime.types
283     AddType application/x-compress .Z
284     AddType application/x-gzip .gz .tgz
305     AddType text/html .shtml
306     AddOutputFilter INCLUDES .shtml
307 </IfModule>
mime多用途互联网邮件扩展类型,是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问时,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。 
316 AddDefaultCharset UTF-8  默认字符集
318 <IfModule mime_magic_module>
324     MIMEMagicFile conf/magic
325 </IfModule>
348 EnableSendfile on
353 IncludeOptional conf.d/*.conf

设置防火墙和selinux的状态

[root@qingyuxin ~]# systemctl stop firewalld
[root@qingyuxin ~]# systemctl status firewalld
[root@qingyuxin ~]# setenforce 0
[root@qingyuxin ~]# getenforce 

重启服务

[root@qingyuxin httpd]# systemctl restart httpd

四、基于https协议的静态网站

HTTPS(超文本传输安全协议),是以安全为目标的HTTP通道。HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。
SSL (安全套接层),SSL 应用广泛,已经成为互联网上的事实标准。IETF 就把SSL 标准化。标准化之后SSL被改为 TLS(Transport Layer Security传输层安全协议)。
SSL协议提供的服务:
1)认证用户和服务器,确保数据发送到正确的客户机和服务器
2)加密数据以防止数据中途被窃取
3)维护数据的完整性,确保数据在传输过程中不被改变。
CA就是一个公认的公证单位,你可以自行产生一把密钥且制作出必要的证书数据并向CA单位注册,那么当客户端的浏览器在浏览时,该浏览器会主动向CA单位确认该证书是否为合法注册过,如果是,那么该次连接才会建立,如果不是,浏览器会发出警告信息,告知用户应避免建立连接。所以说,如此一来WWW服务器不但有公证单位的证书,用户在建立连接时也比较有保障。
在这里插入图片描述
请添加图片描述

五、实验练习

  1. 基于同一IP的不同端口访问不同的网站(可以通过域名去访问)
    ip+port1 -> 对应一个域名
    ip+port2 -> 对应一个域名
    使用域名1我应该访问到 ip+port1对应的内容
    使用域名2我应该访问到 ip+port2对应的内容
    有两种访问方式:①Linux上用命令访问②Windows上用浏览器访问
    步骤:
    ①如果要在Linux上访问,则在/etc/hosts文件下写入ip和域名,进行域名解析
192.168.15.130:1111	www.port1.com
192.168.15.130:2222	www.port2.com

请添加图片描述

②创建访问目录并写入内容

[root@qingyuxin httpd]# mkdir /www/{port1,port2}
[root@qingyuxin httpd]# echo "This is port1" > /www/port1/index.html
[root@qingyuxin httpd]# echo "This is port2" > /www/port2/index.html

③在额外配置文件目录下新建配置文件并写入配置

<Directory "/www">
AllowOverride None
Require all granted
</Directory>

Listen 192.168.15.130:1111
Listen 192.168.15.130:2222

<VirtualHost 192.168.15.130:1111>
DocumentRoot "/www/port1"
</VirtualHost>

<VirtualHost 192.168.15.130:2222>
DocumentRoot "/www/port2"
</VirtualHost>

请添加图片描述
④重启服务;访问测试
请添加图片描述
若要在Windows的浏览器上进行访问测试,则需要在Windows里面的hosts文件中写入ip和域名,进行域名解析
Windows的hosts文件路径:C:\Windows\System32\drivers\etc
请添加图片描述
请添加图片描述
实验成功!

2、模拟CA机构生成自签名证书,利用生成的server.crt来完成通过https来访问网站
步骤:
(一)生成自签名证书
①装包

yum install mod_ssl -y

②创建证书文件需要存放的目录

mkdir -p /root/ssl/crt
cd /root/ssl/crt

③生成证书私钥

openssl genrsa -out ca.key  2048

④生成证书公钥

openssl rsa -in ca.key -pubout out ca.pub

⑤给签名的证书设置有效期

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt 

请添加图片描述
⑥生成私钥

openssl genrsa -out server.key 2048	

说明:生成rsa私钥,2048位强度,server.key是秘钥文件名
请添加图片描述
⑦生成证书请求文件

openssl req -new -key server.key -out server.csr

说明:命令执行后需要输入密码,然后依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。请添加图片描述
⑧生成自签名crt证书
请添加图片描述
(二)写配置文件并重启http服务

<VirtualHost 192.168.15.130:443>
  
    SSLEngine on
    SSLProtocol all -SSLv2
#密码套件,列出允>许客户端协商的密码。
    SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
    SSLCipherSuite PROFILE=SYSTEM
#指定证书路径: 证书的位置
    SSLCertificateFile /root/ssl/crt/server.crt
#指定密钥文件路径
    SSLCertificateKeyFile /root/ssl/crt/server.key
#访问的根目录
    DocumentRoot /www/https
#访问的服务器名字 
    ServerName 192.168.126.130
</VirtualHost>

<Directory /www/https>
AllowOverride None
Require all granted
</Directory>

请添加图片描述

systemctl restart httpd

向访问的主目录下写入index.html文件

echo "This is https" > /www/https/index.html![请添加图片描述](https://img-blog.csdnimg.cn/bf8efecf9b96425ea154576726247d90.png)

(三)访问网站
请添加图片描述
请添加图片描述
请添加图片描述
点击网址前面的“不安全”按钮,查看证书详情
请添加图片描述
可以看到证书的详细信息是我们模拟CA机构颁发的证书信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/149094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Profiler导致的严重性能问题

背景客户反馈系统突然运行非常缓慢&#xff0c;持续了近20分钟的时间&#xff0c;通过SQL专家云定位到有人开启了Profiler导致&#xff0c;但是不能定位是谁开启的&#xff0c;请我们协助分析。现象登录SQL专家云&#xff0c;进入实时可视化页面&#xff0c;在活动会话中看到在…

【Ctfer训练计划】——(十)

作者名&#xff1a;Demo不是emo主页面链接&#xff1a; 主页传送门创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座右…

智公网:这几类人员报考公务员无法被录取

对于很多人来讲&#xff0c;毕业之后都想找一份稳定的工作&#xff0c;目前最受欢迎的就是公务员和教师编了&#xff0c;我们今天来说下公务员这个铁饭碗。 公务员考试可是很不容易的&#xff0c;有两场考试&#xff0c;第一场是笔试&#xff0c;第二场是面试。笔试通过之后才…

2021-06-10 Multisim的74LS192功能表及555时基74LS190

缘由https://ask.csdn.net/questions/7445811?spm1005.2025.3001.5141以及60s倒计时电路连接后没有显示 - 24小时必答区 74LS192芯片是一个具有双计数功能的芯片&#xff0c;既可以做加计数&#xff0c;也可以做减计数。 1、A、B、C、D 置数输入端&#xff0c;管脚悬空相当…

Web端接入视频设备(NVR/IPC)

概述 本文主要介绍视频监控设备&#xff0c;视频监控设备接入&#xff0c;常用的开源流媒体及接入过程中的一些问题。 第一章 视频监控设备 目前常见的视频监控设备主要有NVR和IPC&#xff0c;以海康为例。 1.1 视频监控设备介绍 IPC即IP Camera&#xff0c;可以接入网络的…

06-GC垃圾收集器有那些?

如图展示了HotSpot虚拟机中7种不同的垃圾收集, 连线代表两者可搭配使用 1.Serial 垃圾收集器&#xff08;单线程、复制算法&#xff09; Serial&#xff08;英文连续&#xff09;是最基本垃圾收集器&#xff0c;使用复制算法&#xff0c;曾经是JDK1.3.1 之前新生代唯一的垃圾…

【基础】Flink -- DataStream API

Flink -- DataStream API执行环境 Execution Environment创建执行环境设置执行模式触发程序执行源算子 Source从集合中读取数据从文件读取数据从 Socket 读取数据自定义数据源转换算子 Transformation基本转换算子映射 map过滤 filter扁平映射 flatMap聚合算子 Aggregation按键…

WPS配置mathtype

笔者电脑软件版本&#xff1a;WPS Office mathtype_7.4.8.0 请注意WPS适配的mathtype版本。 下载地址 mathtype_7.4.8.0&#xff1a;https://wwl.lanzoum.com/iuJDz0guffuh wps.vba.exe&#xff1a;https://handong1201.lanzouw.com/iX5GZtn70pe&#xff08;mathtype右侧选…

查找算法之线性查找

目录 线性查找 算法实现 算法实现 python C 复杂度分析 优点与缺点 线性查找 线性查找&#xff08;Linear Search&#xff09;是一种最基础的查找方法&#xff0c;其从数据结构的一端开始&#xff0c;依次访问每个元素&#xff0c;直到另一端后停止。 算法实现 线性查…

【凸优化】Gradient Descent and Newton Descent【梯度下降法和牛顿下降法】(含Python代码绘制等高线图)

文章目录Gradient Descent and Newton Descent一、下降法【Descent】二、梯度下降法【Gradient Descent】三、牛顿下降法【Newton Descent】四、示例Example五、ReferenceGradient Descent and Newton Descent 一、下降法【Descent】 首先介绍什么是下降法【Descent Methods】…

【Git】下载安装学习记录

【下载安装】 1.官网下载64位的安装包 2.双击安装&#xff0c;设置安装路径&#xff0c;一路next即可 使用学习指南&#xff1a;一、设置用户签名二、操作本地库的命令git initgit statusgit add 文件名git rm --cached 文件名git commit -m "注释" 文件名git refl…

在PyCharm中配置Anaconda环境

目录 1.创建项目 2.设置解释器 ​​​​​​ 3.常见问题 1.创建项目 2.设置解释器 3.常见问题 1.%matplotlib inline报错&#xff1a;Python关于%matplotlib inline 2.from d2l import torch as d2l报错&#xff1a; 报错原因&#xff0c;没有导入d2l这个包 如何导入呢&…

JDK8下载安装与配置环境变量(linux)

一、前言 基于Linux平台的MySQL安装文件有三个版本&#xff0c;分别是RPM软件、GenericBinaries软件包、源码包&#xff0c;具体介绍如下&#xff1a; ①RPM软件包是一种Linux平台下的安装文件&#xff0c;通过相关命令可以很方便地安装与卸载。该软件包分为两个&#xff1a;…

SVF Saber的实现

SVF Saber1.基本原理2.API类型定义3.Memory Leak Checker3.1.示例3.2.初始化3.3.程序切片3.4.路径约束求解3.5.报告错误4.总结5.参考文献Saber是一个静态漏洞检测器&#xff0c;最初集成到open64中&#xff0c;现已集成到SVF中&#xff0c;主要检测内存泄漏&#xff0c;DoubleF…

GAN的损失函数

1.GAN 在训练过程中&#xff0c;生成器和判别器的目标是相矛盾的&#xff0c;并且这种矛盾可以体现在判别器的判断准确性上。生成器的目标是生成尽量真实的数据&#xff0c;最好能够以假乱真、让判别器判断不出来&#xff0c;因此生成器的学习目标是让判别器上的判断准确性越来…

PCL点云处理之快速点特征直方图(FPFH)描述符(八十六)

PCL点云处理之快速点特征直方图(FPFH)描述符(八十六) 前言一、快速点特征直方图理论二、FPFH和PFH的区别二、实验过程1.代码2输入法线的NAN值检查用 OpenMP 加速 FPFH前言 对于具有 n 个点的给定点云 P,点特征直方图(见点特征直方图(PFH)描述符)的理论计算复杂度为 O (nk…

VueRouter路由的使用(上)

文章目录VueRouter路由的使用p21路由的原理_hash改变historyP22 认识vue-router路由的基本使用流程默认路径router-link路由懒加载路由的其他属性动态路由的基本匹配NotFound路由嵌套编程式导航VueRouter路由的使用 p21 路由的原理_hash改变 <!DOCTYPE html> <html …

JavaScript 运算符

文章目录JavaScript 运算符JavaScript 算术运算符JavaScript 赋值运算符用于字符串的 运算符对字符串和数字进行加法运算JavaScript 运算符 运算符 用于赋值。 运算符 用于加值。 运算符 用于给 JavaScript 变量赋值。 算术运算符 用于把值加起来。 实例 指定变量值&am…

Java基础学习笔记(十)—— 异常

异常1 异常概述2 异常处理方式2.1 JVM默认处理异常的方式2.2 throws方式处理异常2.3 throw抛出异常2.4 try-catch方式处理异常2.5 Throwable成员方法2.6 异常的练习3 自定义异常1 异常概述 异常&#xff1a;就是程序出现了不正常的情况。程序在执行的过程中&#xff0c;出现的…

Vivado综合设置之-gated_clock_conversion

本文验证-gated_clock_conversion设置为on或off时&#xff0c;给Schematic带来的差异。 -gated_clock_conversion设置为on时&#xff0c;用于移除门控时钟&#xff0c;门控时钟是由门电路而非专用时钟模块&#xff08;例如MMCM或PLL&#xff09;生成的时钟。 门控时钟会对设计…