- Apache 支持 HTTPS
童心同萌
https服务器网络协议
证书文件提取私钥opensslpkcs12-incert.pfx-nocerts-outprivate.key-nodes打开命令行(CMD或PowerShell),进入证书所在目录,输入上面命令,它会提示你输入密码,可以从password.txt中复制提取证书opensslpkcs12-incert.pfx-clcerts-nokeys-outcert.pemhttpd.confLoadModu
- zlmediakit webrtc搭建使用
iummature
webrtc
webrtc编译与使用|ZLMediaKit官方文档参考编译机器:centos7.6gcc版本10.1.0(GCC)cmakeversion3.23.0web播放rtsp流视频,使用webrtc毫秒级延迟_webrtc播放rtsp流-CSDN博客依赖准备openssl安装(openssl版本要求1.1以上)我的安装目录在/opt/projects/open/openssllibsrtp安装对于一些
- linux 下libwebsockets编译
shxiongGL
thirdparty
陆陆续续编译了一段时间,期间碰到各种问题,回想起来也比较奇葩吧,特总结一下1、重装openssl导致系统启动黑屏的问题,可能是装openssl的时候误删除系统原有的openssl(/usr/lib64/usr/local/lib64相关信息)不要乱删东西!!不要乱删东西!!不要乱删东西!!PS:最后使用的openssl版本是1.1.1g2、SVN上libwebsockets版本问题,下载v4.0.
- Nginx安全防护与HTTPS部署实战
lml4856
nginx安全https
一.核心安全配置1.编译安装Nginx(1)安装支持软件Nginx的配置及运行需要pcre、zlib等软件包的支持,因此应预先安装这些软件的开发包(devel),以便提供相应的库和头文件,确保Nginx的安装顺利完成命令:dnfinstall-ygccmakepcre-develzlib-developenssl-develperl-ExtUtils-MakeMakergitwgettar(2)创
- Openssl生成RSA证书,Java实现公钥证书加密,私钥证书解密
RonTech
Java算法SecurityRSA证书加密公钥加密私钥解密API数据加密
1、证书生成过程生成RSA私钥:genrsa-outprivate_key.pem1024把RSA私钥转换成PKCS8格式pkcs8-topk8-informPEM-inprivate_key.pem-outformPEM–nocrypt生成RSA公钥rsa-inprivate_key.pem-pubout-outrsa_public_key.pem生成供Java使用的私钥pkcs8_privat
- OpenSSL自签名证书
Lucky_Turtle
Linuxlinux
文章目录生成1.生成根证书的私钥(root_private_key.pem)2.创建根证书的CSR和自签名证书(root_csr.pem)3.生成服务器证书的私钥(server_private_key.pem)4.创建服务器证书的CSR(server_private_key.pem)5.使用根证书签发服务器证书(server_csr.pem)6.验证证书生成1.生成根证书的私钥(root_priv
- Centos7.9安装Openssl 3.5
石小千
Linux运维linux
下载github下载地址https://github.com/openssl/openssl/releases/download/openssl-3.5.0/openssl-3.5.0.tar.gz国内镜像站下载地址https://raw.gitcode.com/gh_mirrors/ope/openssl/archive/refs/heads/openssl-3.5.0.zip准备yuminst
- Centos 系统安装 Python3.8.5
程序视界Up
centoslinuxpython
1.准备编译环境及配置环境依赖yuminstallgccpatchlibffi-develpython-develzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devel-y2.下载Python的源码包并解压参考地
- qt集成openssl
baidu_19552787
运维qt
第一:下载项目中对应版本的openssl的库https://openssl-library.org/source/old/1.0.2/老版本的openssl的下载地址,这个下载的好像是源码,还要编译。https://indy.fulgan.com/SSL/在这里下载不需要编译,下载下来直接用dll文件。第二:下载完库,配置库Qt本身不包含OpenSSL库,因此在使用需要SSL/TLS的功能时(如H
- linux配置Minio为https
shiGuang°
运行环境linuxhttpsminio
使用自签名方式配置minio为https进入minio证书路径root/.minio/certs,此文件夹是安装minio时自动生成的cd/root/.minio/certs/在证书路径下生成私钥opensslgenrsa-outprivate.key2048创建配置文件openssl.confvimopenssl.conf设置IP.1和/或DNS.1指向正确的IP/DNS地址:复制以下内容到op
- minio升级https操作
1.使用openssl生成私钥opensslgenrsa-outprivate.key20482.生成自签证书2.1创建一个以openssl.conf以下内容命名的文件。设置IP.1和/或DNS.1指向正确的IP/DNS地址:注:1.IP.1、IP.2、IP.3....是可配的,把用到的所有IP都配置在这,例如:docker容器ip和主机公网ip;2.同理多个DNS.1....也是可配的[req]
- nginx
huang714
nginxnginx
安装依赖安装nginx之前,确保系统已经安装gcc、openssl-devel、pcre-devel和zlib-devel软件库gcc可以通过光盘直接选择安装openssl-devel、zlib-devel可以通过光盘直接选择安装,https时使用pcre-devel安装pcre库是为了使nginx支持HTTPRewrite模块编译安装通过上面的下载页下载最新的稳定版#wgethttp://ngi
- Python 3.13.2 源码安装指南
hnlucky
python运维学习运维开发linux运维pythoncentos
Python3.13.2源码安装指南1.下载安装包wgethttps://www.python.org/ftp/python/3.13.2/Python-3.13.2.tgz2.安装依赖sudoyuminstall-ygccopenssl-develbzip2-devellibffi-develzlib-devel3.解压安装包tar-zxvfPython-3.13.2.tgz4.进入解压目录cd
- openssl命令行之AES-CBC文件加密并实现解密还原
我不是程序员~~~~
C&C++开发语言python
使用随机key和ivD:\softwares\openssl1.1.1\OpenSSL-Win64\bin>opensslenc-aes-128-cbc-in1.txt-out1.txt.encenteraes-128
- [openssl]pem文件及openssl-rsa使用
_orangeP
CRYPTOopenssl安全加密解密
PEM全称是PrivacyEnhancedMail,该标准定义了加密一个准备要发送邮件的标准,主要用来将各种对象保存成PEM格式,并将PEM格式的各种对象读取到相应的结构中。它的基本流程是这样的:信息转换为ASCII码或其它编码方式;使用对称算法加密转换了的邮件信息;使用BASE64对加密后的邮件信息进行编码;使用一些头定义对信息进行封装,这些头信息格式如下(不一定都需要,可选的):Proc-Ty
- 第十四章 加密和安全 -- OpenSSL(一)
Raymond运维
Linux云计算SRE运维--入门阶段(已完结)运维linux云计算云原生安全
2.OpenSSL2.1OpenSSL介绍官网:https://www.openssl.org/OpenSSL计划在1998年开始,其目标是发明一套自由的加密工具,在互联网上使用。OpenSSL以EricYoung以及TimHudson两人开发的SSLeay为基础,随着两人前往RSA公司任职,SSLeay在1998年12月停止开发。因此在1998年12月,社群另外分支出OpenSSL,继续开发下去
- Ubuntu上搭建Nginx环境
编程小邢啊
ubuntunginx数据库
1.软件包下载nginx下载地址下载linux版本的nginx,如图圈示2.将下载好的软件包上传至Linux服务器假设上传到/opt/nginx目录,进入目录cd/opt/nginx解压,根据版本自行修改版本号tarzxvfnginx-1.16.0.tar.gz3.安装安装编译所需的依赖,这通常包括OpenSSL库,用于SSL支持sudoapt-getinstallbuild-essentialz
- centos8 编译 openstall 后,无法使用一堆系统命令
Terry_Tsang
ssl
背景oscentos8编译了openssl-1.1.1g编译参数./config--prefix=/usr/local/openssl-Wl,-rpath,/usr/local/openssl/libcentos7正常,centos8上出现下面问题(同样sshd服务也不再正常)#rpm-qarpm:symbollookuperror:/lib64/librpmio.so.8:undefinedsy
- CentOS6.5安装配置Nginx1.11.5
co-n00b
一、安装pcre查看是否已经安装了pcrerpm-qa|greppcre如果存在,则删除已经安装的pcre(最好不要用系统自带的pcre)rpm-e--nodepspcre-7.8-6.el6.x86_64安装pcreyuminstallpcre*二、安装opensslyum-yinstallopenssl*三、下载Nginx编译安装包下载地址:http://nginx.org/en/downlo
- OpenSSL和cpr库安装
搬砖者(视觉算法工程师)
开发语言
安装依赖项sudoaptupdate&&sudoaptinstalllibssl-dev#1.克隆CPR仓库gitclonehttps://github.com/libcpr/cpr.gitcdcpr#2.创建编译目录mkdirbuild&&cdbuild#3.生成构建文件cmake..-DCPR_USE_SYSTEM_CURL=ON#使用系统curl#或cmake..-DCPR_BUILD_TE
- mydumper安装及使用
weixin_34268843
数据库运维操作系统
mydumper官网:https://launchpad.net/mydumper安装方式:1、yuminstallglib2-develmysql-develzlib-develpcre-developenssl-devel(现在安装这些依赖)2、cmake.(解压编译tarxvfmydumper-0.9.1.tar.gz)3、make&&makeinstall(编译安装)4、ln-s/usr/
- mysql5.5开启ssl_在MySQL中,启用SSL
慕酒
mysql5.5开启ssl
问题描述我正在运行UbuntuServer12.04,并且想启用与MySQL的SSL连接。我已经使用OpenSSL生成了以下密钥/证书文件:ca-cert.pemserver-cert.pemserver-key.pem我将它们存储在/etc/mysql,然后将以下行添加到/etc/mysql/my.cnf:ssl-ca=/etc/mysql/ca-cert.pemssl-cert=/etc/my
- MYSQL8安全之SSL认证_mysql ssl,太香了_mysql userssl
heike_沧海
安全sslmysql
查看openssl版本opensslversion生成SSL连接所需要的RSA密钥对datadir指定数据库文件鹿筋user和uid指定运行mysql_ssl_rsa_setup命令的用户mysql_ssl_rsa_setup--datadir=/var/lib/mysql--user=mysql--uid=mysql默认执行即可mysqld_ssl_rsa_setup-vvv详细,debug模式
- Linux系统中自签名HTTPS证书
在Linux系统中,我们可以通过OpenSSL工具生成自签名的HTTPS证书,并将其配置到Web服务器(如Nginx)中。以下是详细步骤:一.生成自签名HTTPS证书安装OpenSSL:首先,确保你的系统上安装了OpenSSL,这是一个强大的加密工具,用于生成和管理SSL/TLS证书。大多数Linux发行版默认已经安装了OpenSSL。对于Ubuntu/Debian系统:sudoapt-getup
- Visual studio编译的程序运行报错:“由于找不到libcrypto-1_1.dll,无法继续执行代码”的解决方法
LuxiZheng_
Bugc++
错误使用OpenSSL库中的函数,在Visualstudio中项目的属性页中已经添加了OpenSSL的包含目录和库目录,并且也在链接器的输入选项中添加了libssl.lib、libcrypto.lib依赖项,程序成功编译,但运行程序将会弹出错误框,如下图解决方法在OpenSSL的安装目录的bin目录下找到缺失的dll,并把它复制到源代码的目录下,如下图。
- 升级openssl后无法使用cmake和curl的解决方法
Lazy Dave
服务器linux运维
现象Linux升级openssl后(笔者的案例是编译源码升级1.1.1f到1.1.1k)无法使用curl,提示libcurl.so无法加载符号SSLv3_*,cmake因为依赖libcurl也无法使用。原因新版openssl默认不支持ssl3,需要手动开启。解决方案增加enable-ssl3enable-ssl3-method,重新编译openssl,重新安装。mkdirbuildcdbuild.
- 血缘系统 datahub + Sqllineage
CesarChoy
linux大数据
1.说明业界比较主流的数据血缘系统,目前还没能达到与调度系统耦合,最大难点在于代码解析。当某张表下游太多时(特别是维度表),展示也失去了意义,所以多用于排查某张应用表的上游从哪里开。使用方一般为对数仓表结构不太熟悉的业务/数据经理想要了解有哪些数据。2.部署2.1yumyuminstall-yzlib-develbzip2-devel\openssl-develncurses-develepel-
- 从0开始的ios自动化测试
程序员潇潇
软件测试ios功能测试软件测试自动化测试程序人生职场和发展
最近由于工作内容调整,需要开始弄ios自动化了。网上信息有点杂乱,这边我就按我的实际情况,顺便记录下来,看是否能帮到有需要的人。环境准备安装tidevicepip3install-U“tidevice[openssl]”它的作用是,帮你绕开ios必须用mac的xcode启动wda,直接在windows上使用tidevice启动wda就行了(windows电脑需要先安装iTunes)。安装faceb
- 【经验篇】自签名TLS证书生成
目录生成自签名证书使用OpenSSL生成自签名证书生成RSA密钥和自签名证书一步生成自签名证书生成带SAN(SubjectAlternativeName)的证书使用keytool生成自签名证书生成Java密钥库(JKS)格式的自签名证书生成PKCS12格式的自签名证书使用mkcert生成受信任的自签名证书安装mkcert生成受信任的自签名证书使用CloudflareCFSSL生成自签名证书安装CF
- 如何为服务器生成TLS证书
jllllyuz
服务器数据库运维
TLS(TransportLayerSecurity)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证书,并对每一步骤进行详细解释。1.准备工作在生成TLS证书之前,您需要确保服务器上安装了OpenSSL,这是一个开源的加密工具包,提供了生成和管理证书
- java工厂模式
3213213333332132
java抽象工厂
工厂模式有
1、工厂方法
2、抽象工厂方法。
下面我的实现是抽象工厂方法,
给所有具体的产品类定一个通用的接口。
package 工厂模式;
/**
* 航天飞行接口
*
* @Description
* @author FuJianyong
* 2015-7-14下午02:42:05
*/
public interface SpaceF
- nginx频率限制+python测试
ronin47
nginx 频率 python
部分内容参考:http://www.abc3210.com/2013/web_04/82.shtml
首先说一下遇到这个问题是因为网站被攻击,阿里云报警,想到要限制一下访问频率,而不是限制ip(限制ip的方案稍后给出)。nginx连接资源被吃空返回状态码是502,添加本方案限制后返回599,与正常状态码区别开。步骤如下:
- java线程和线程池的使用
dyy_gusi
ThreadPoolthreadRunnabletimer
java线程和线程池
一、创建多线程的方式
java多线程很常见,如何使用多线程,如何创建线程,java中有两种方式,第一种是让自己的类实现Runnable接口,第二种是让自己的类继承Thread类。其实Thread类自己也是实现了Runnable接口。具体使用实例如下:
1、通过实现Runnable接口方式 1 2
- Linux
171815164
linux
ubuntu kernel
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1.2-unstable/
安卓sdk代理
mirrors.neusoft.edu.cn 80
输入法和jdk
sudo apt-get install fcitx
su
- Tomcat JDBC Connection Pool
g21121
Connection
Tomcat7 抛弃了以往的DBCP 采用了新的Tomcat Jdbc Pool 作为数据库连接组件,事实上DBCP已经被Hibernate 所抛弃,因为他存在很多问题,诸如:更新缓慢,bug较多,编译问题,代码复杂等等。
Tomcat Jdbc P
- 敲代码的一点想法
永夜-极光
java随笔感想
入门学习java编程已经半年了,一路敲代码下来,现在也才1w+行代码量,也就菜鸟水准吧,但是在整个学习过程中,我一直在想,为什么很多培训老师,网上的文章都是要我们背一些代码?比如学习Arraylist的时候,教师就让我们先参考源代码写一遍,然
- jvm指令集
程序员是怎么炼成的
jvm 指令集
转自:http://blog.csdn.net/hudashi/article/details/7062675#comments
将值推送至栈顶时 const ldc push load指令
const系列
该系列命令主要负责把简单的数值类型送到栈顶。(从常量池或者局部变量push到栈顶时均使用)
0x02 &nbs
- Oracle字符集的查看查询和Oracle字符集的设置修改
aijuans
oracle
本文主要讨论以下几个部分:如何查看查询oracle字符集、 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题。
一、什么是Oracle字符集
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货
- png在Ie6下透明度处理方法
antonyup_2006
css浏览器FirebugIE
由于之前到深圳现场支撑上线,当时为了解决个控件下载,我机器上的IE8老报个错,不得以把ie8卸载掉,换个Ie6,问题解决了,今天出差回来,用ie6登入另一个正在开发的系统,遇到了Png图片的问题,当然升级到ie8(ie8自带的开发人员工具调试前端页面JS之类的还是比较方便的,和FireBug一样,呵呵),这个问题就解决了,但稍微做了下这个问题的处理。
我们知道PNG是图像文件存储格式,查询资
- 表查询常用命令高级查询方法(二)
百合不是茶
oracle分页查询分组查询联合查询
----------------------------------------------------分组查询 group by having --平均工资和最高工资 select avg(sal)平均工资,max(sal) from emp ; --每个部门的平均工资和最高工资
- uploadify3.1版本参数使用详解
bijian1013
JavaScriptuploadify3.1
使用:
绑定的界面元素<input id='gallery'type='file'/>$("#gallery").uploadify({设置参数,参数如下});
设置的属性:
id: jQuery(this).attr('id'),//绑定的input的ID
langFile: 'http://ww
- 精通Oracle10编程SQL(17)使用ORACLE系统包
bijian1013
oracle数据库plsql
/*
*使用ORACLE系统包
*/
--1.DBMS_OUTPUT
--ENABLE:用于激活过程PUT,PUT_LINE,NEW_LINE,GET_LINE和GET_LINES的调用
--语法:DBMS_OUTPUT.enable(buffer_size in integer default 20000);
--DISABLE:用于禁止对过程PUT,PUT_LINE,NEW
- 【JVM一】JVM垃圾回收日志
bit1129
垃圾回收
将JVM垃圾回收的日志记录下来,对于分析垃圾回收的运行状态,进而调整内存分配(年轻代,老年代,永久代的内存分配)等是很有意义的。JVM与垃圾回收日志相关的参数包括:
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-Xloggc
-XX:+PrintGC
通
- Toast使用
白糖_
toast
Android中的Toast是一种简易的消息提示框,toast提示框不能被用户点击,toast会根据用户设置的显示时间后自动消失。
创建Toast
两个方法创建Toast
makeText(Context context, int resId, int duration)
参数:context是toast显示在
- angular.identity
boyitech
AngularJSAngularJS API
angular.identiy 描述: 返回它第一参数的函数. 此函数多用于函数是编程. 使用方法: angular.identity(value); 参数详解: Param Type Details value
*
to be returned. 返回值: 传入的value 实例代码:
<!DOCTYPE HTML>
- java-两整数相除,求循环节
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class CircleDigitsInDivision {
/**
* 题目:求循环节,若整除则返回NULL,否则返回char*指向循环节。先写思路。函数原型:char*get_circle_digits(unsigned k,unsigned j)
- Java 日期 周 年
Chen.H
javaC++cC#
/**
* java日期操作(月末、周末等的日期操作)
*
* @author
*
*/
public class DateUtil {
/** */
/**
* 取得某天相加(减)後的那一天
*
* @param date
* @param num
*
- [高考与专业]欢迎广大高中毕业生加入自动控制与计算机应用专业
comsci
计算机
不知道现在的高校还设置这个宽口径专业没有,自动控制与计算机应用专业,我就是这个专业毕业的,这个专业的课程非常多,既要学习自动控制方面的课程,也要学习计算机专业的课程,对数学也要求比较高.....如果有这个专业,欢迎大家报考...毕业出来之后,就业的途径非常广.....
以后
- 分层查询(Hierarchical Queries)
daizj
oracle递归查询层次查询
Hierarchical Queries
If a table contains hierarchical data, then you can select rows in a hierarchical order using the hierarchical query clause:
hierarchical_query_clause::=
start with condi
- 数据迁移
daysinsun
数据迁移
最近公司在重构一个医疗系统,原来的系统是两个.Net系统,现需要重构到java中。数据库分别为SQL Server和Mysql,现需要将数据库统一为Hana数据库,发现了几个问题,但最后通过努力都解决了。
1、原本通过Hana的数据迁移工具把数据是可以迁移过去的,在MySQl里面的字段为TEXT类型的到Hana里面就存储不了了,最后不得不更改为clob。
2、在数据插入的时候有些字段特别长
- C语言学习二进制的表示示例
dcj3sjt126com
cbasic
进制的表示示例
# include <stdio.h>
int main(void)
{
int i = 0x32C;
printf("i = %d\n", i);
/*
printf的用法
%d表示以十进制输出
%x或%X表示以十六进制的输出
%o表示以八进制输出
*/
return 0;
}
- NsTimer 和 UITableViewCell 之间的控制
dcj3sjt126com
ios
情况是这样的:
一个UITableView, 每个Cell的内容是我自定义的 viewA viewA上面有很多的动画, 我需要添加NSTimer来做动画, 由于TableView的复用机制, 我添加的动画会不断开启, 没有停止, 动画会执行越来越多.
解决办法:
在配置cell的时候开始动画, 然后在cell结束显示的时候停止动画
查找cell结束显示的代理
- MySql中case when then 的使用
fanxiaolong
casewhenthenend
select "主键", "项目编号", "项目名称","项目创建时间", "项目状态","部门名称","创建人"
union
(select
pp.id as "主键",
pp.project_number as &
- Ehcache(01)——简介、基本操作
234390216
cacheehcache简介CacheManagercrud
Ehcache简介
目录
1 CacheManager
1.1 构造方法构建
1.2 静态方法构建
2 Cache
2.1&
- 最容易懂的javascript闭包学习入门
jackyrong
JavaScript
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。
下面就是我的学习笔记,对于Javascript初学者应该是很有用的。
一、变量的作用域
要理解闭包,首先必须理解Javascript特殊
- 提升网站转化率的四步优化方案
php教程分享
数据结构PHP数据挖掘Google活动
网站开发完成后,我们在进行网站优化最关键的问题就是如何提高整体的转化率,这也是营销策略里最最重要的方面之一,并且也是网站综合运营实例的结果。文中分享了四大优化策略:调查、研究、优化、评估,这四大策略可以很好地帮助用户设计出高效的优化方案。
PHP开发的网站优化一个网站最关键和棘手的是,如何提高整体的转化率,这是任何营销策略里最重要的方面之一,而提升网站转化率是网站综合运营实力的结果。今天,我就分
- web开发里什么是HTML5的WebSocket?
naruto1990
Webhtml5浏览器socket
当前火起来的HTML5语言里面,很多学者们都还没有完全了解这语言的效果情况,我最喜欢的Web开发技术就是正迅速变得流行的 WebSocket API。WebSocket 提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。让我们看一看6个HTML5教程介绍里 的 WebSocket API:它可用于客户端、服
- Socket初步编程——简单实现群聊
Everyday都不同
socket网络编程初步认识
初次接触到socket网络编程,也参考了网络上众前辈的文章。尝试自己也写了一下,记录下过程吧:
服务端:(接收客户端消息并把它们打印出来)
public class SocketServer {
private List<Socket> socketList = new ArrayList<Socket>();
public s
- 面试:Hashtable与HashMap的区别(结合线程)
toknowme
昨天去了某钱公司面试,面试过程中被问道
Hashtable与HashMap的区别?当时就是回答了一点,Hashtable是线程安全的,HashMap是线程不安全的,说白了,就是Hashtable是的同步的,HashMap不是同步的,需要额外的处理一下。
今天就动手写了一个例子,直接看代码吧
package com.learn.lesson001;
import java
- MVC设计模式的总结
xp9802
设计模式mvc框架IOC
随着Web应用的商业逻辑包含逐渐复杂的公式分析计算、决策支持等,使客户机越
来越不堪重负,因此将系统的商业分离出来。单独形成一部分,这样三层结构产生了。
其中‘层’是逻辑上的划分。
三层体系结构是将整个系统划分为如图2.1所示的结构[3]
(1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。
该层用于向客户端用户提供GUI交互,它允许用户