客户端服务器

第一章 Java Web应用开发概述

佐手、 提交于 2020-03-17 10:59:00
第一章 Java Web应用开发概述 知识点: (1) 了解 C/S 结构和 B/S 结构 (2) 理解 Web 应用程序的工作原理 (3) 了解 Web 应用的客户端应用技术 (4) 了解 Web 应用的服务器端应用技术 (5) 了解 Java Web 成功案例 (6) 了解 Java Web 开发的常用网上资源 本章概述: 随着网络技术的迅猛发展,国内外的信息化建设已经进入了以 Web 应用开发为核心的阶段。与此同时, Java 语言也在不断完善优化,更适合开发 Web 应用。因此,越来越多的程序员或编程爱好者走上了 Java Web 应用开发之路 。 1.1 程序开发体系结构 随着网络技术的不断发展,单机的软件程序已难以满足网络计算的需要。为此,各种各样的网络程序开发体系结构应运而生。其中,运用最多的网络应用程序开发体系结构可以分为两种,一种是基于客户端 / 服务器的 C/S 结构,另一种是基于浏览器 / 服务器的 B/S 结构。下面进行详细介绍。 1.1.1 C/S 体系结构介绍 C/S 是 Client/Server 的缩写,即客户端 / 服务器结构。在这种结构中,服务器通常采用高性能的 PC 机或工作站,并采用大型数据库系统(如 Oracle 或 SQL Server ),客户端则需要安装专用的客户端软件,如图 1.1 所示。这种结构可以充分利用两端硬件环境的优势

nginx 加上ssl配置

强颜欢笑 提交于 2020-03-16 14:23:13
某厂面试归来,发现自己落伍了!>>> #user nobody; #双核2个进程 #worker_processes 2; #worker_cpu_affinity 01 10; #8核开启8个进程 worker_processes 8; worker_cpu_affinity 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001; error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; pid logs/nginx.pid; # 每进程最大可打开文件描述符数量(linux上文件描述符比较广义,网络端口、设备、磁盘文件都是) # 文件描述符用完了,新的连接会被拒绝,产生502类错误 # linux最大可打开文件数可通过ulimit -n FILECNT或 /etc/security/limits.conf配置 # 理论值 系统最大数量 / 进程数。但进程间工作量并不是平均分配的,所以可以设置的大一些 #设置了这个后,修改worker_connections值时,是不能超过worker_rlimit_nofile的这个值。 worker_rlimit_nofile

TLS/SSL 梳理

情到浓时终转凉″ 提交于 2020-03-16 03:16:16
数据加密通篇都是为了防止第三方的劫持伪造,保证连接安全, 毫无遮掩的明文传输只有民风淳朴的时候才是安全的。 先是一些基础的内容: 对称加密 最开始为了对数据进行加密,使用的是对称加密算法,即双方协商好一个密钥,传输的时候使用这个密钥对数据进行加密和解密,但是这个密钥当然不能使用网络传输,不然同样被第三方劫持就没有意义了,所以只能私下协商交换密钥。 最开始的DES(Data Encryption Standard)对称加密算法使用的是56bit的密钥,这个密钥稍微有点短,在后来完全可以暴力破解加密信息,对于56位的密码,只需要2的56次方就可以暴力穷举。 然后又有了新的算法,triple—DES也交3DES,三重加密算法,最高168位密钥,还有AES,以前搭梯子的时候经常能见到,最高256bit密钥,安全性和速度都很出色。 但是,和谁通信都私下传密钥明显不现实,于是就有了 非对称加密 各自有个私钥,使用公钥传输,全程只暴露公钥,具体过程: A先用自己的私钥加密数据,然后传递公钥和密文给B,B可以用自己的私钥解密 (在一篇文章中提到,使用私钥加密的是hash值,而数据本身是明文的,因为使用密钥加密任意的数据内容存在风险,比如可以刻意的上传一些特定的数据在下载下来,从而破解得到密钥(如RSA),对数据只是payload,所以文章中的逻辑是这样的:A用自己的私钥加密hash

解析大型.NET ERP系统 分布式应用模式设计与实现

别等时光非礼了梦想. 提交于 2020-03-16 02:28:41
C/S架构的应用程序,将一些复杂的计算逻辑由客户端转移到服务器端可以改善性能,同时也为了其它方面的控制。.NET Remoting在局域网内调用的性能相当不错。ERP系统中基于.NET Remoting和WCF构建一个应用程序服务器(Application Server)。 分布式应用设计目标: 1 客户端的连接,服务器要能控制。服务器根据授权许可文件的内容,控制客户端并发数。 2 服务器崩溃,客户端要得到通知,挂起当前数据输入操作,当服务器可用时,客户端可自动重新连接 。 3 支持数据加密,对敏感的数据可用加密的端口和通道传输。 4 支持数据压缩,改善数据传输效率,因为要做一个压缩与解压缩动作,性能有所降低。 5 安全控制,应用程序服务器阻止未授权的或未签名的应用程序的连接。 6 客户端向服务器传送大文件,传送图片需要时性能优化 7 服务器端发现错误时,支持堆栈传回客户端以诊断原因。 8 开发和部署简单方便。 先设计服务器与客户端通信的接口,一个简单销售合同数据表的访问接口代码如下所示。 public interface ISalesContractManager { SalesContractEntity GetSalesContract(Guid sessionId, String ContractNo); SalesContractEntity

oracle服务器和客户端字符集的查看和修改

こ雲淡風輕ζ 提交于 2020-03-15 20:36:22
oracle服务器和客户端字符集的查看和修改 https://www.cnblogs.com/lcword/p/5854186.html 一、什么是oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响oracle数据库字符集最重要的参数是NLS_LANG参数。 它的格式如下:   NLS_LANG = language_territory.charset 它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。 其中: Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK 从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。 所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。 二.查看数据库字符集 这涉及三方面的字符集, 一是oracel server端的字符集; 二是oracle client端的字符集; 三是dmp文件的字符集。

TCP的三次握手与四次挥手总结(详解+动图) 面试准备

纵饮孤独 提交于 2020-03-15 19:04:42
背景描述 我们知道网络层,可以实现两个主机之间的通信。但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进程在交换数据。IP协议虽然能把数据报文送到目的主机, 但是并没有交付给主机的具体应用进程 。而 端到端的通信 才应该是应用进程之间的通信。 UDP,在传送数据前不需要先建立连接,远地的主机在收到UDP报文后也不需要给出任何确认。虽然UDP不提供可靠交付,但是正是因为这样,省去和很多的开销,使得它的速度比较快,比如一些对实时性要求较高的服务,就常常使用的是UDP。对应的应用层的协议主要有 DNS,TFTP,DHCP,SNMP,NFS 等。 TCP,提供面向连接的服务,在传送数据之前必须先建立连接,数据传送完成后要释放连接。因此TCP是一种可靠的的运输服务,但是正因为这样,不可避免的增加了许多的开销,比如确认,流量控制等。对应的应用层的协议主要有 SMTP,TELNET,HTTP,FTP 等。 常用的熟知端口号 应用程序 FTP TFTP TELNET SMTP DNS HTTP SSH MYSQL 熟知端口 21,20 69 23 25 53 80 22 3306 传输层协议 TCP UDP TCP TCP UDP TCP TCP的概述 TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种断点我们叫作套接字

Linux FTP 服务

江枫思渺然 提交于 2020-03-15 18:41:17
【FTP介绍】 FTP协议 文件传输协议(英文:File Transfer Protocol,缩写:FTP)是一个应用层协议,是用于在网络上进行文件传输的一套标准协议。 FTP协议概述 FTP服务默认运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,通常客户端向FTP服务器的21端口发送指令达完成上传下载文件等其他控制操作。当数据通过数据流传输时,控制流处于空闲状态。而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功的传输,但因为控制会话,会被防火墙断开;传输会产生一些错误。 FTP用户分类 real帐户: 这类用户是指在FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。 guest用户: 在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。这类帐户,在Vsftpd软件中就叫做Guest用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。 anonymous(匿名)用户: 这也是我们通常所说的匿名访问

(1)基于tcp协议的编程模型 (2)tcp协议和udp协议的比较 (3)基于udp协议的编程模型 (4)反射机制

耗尽温柔 提交于 2020-03-15 16:09:15
1.基于tcp协议的编程模型(重中之重) 1.1 编程模型 服务器: (1)创建ServerSocket类型的对象,并提供端口号; (2)等待客户端的连接请求,调用accept()方法; (3)使用输入输出流进行通信; (4)关闭Socket并释放有关的资源; 客户端: (1)创建Socket类型的对象,并提供服务器的IP地址和端口号; (2)使用输入输出流进行通信; (3)关闭Socket并释放有关的资源; 1.2 相关类和方法的解析 (1)ServerSocket类 java.net.ServerSocket类主要用于描述服务器的套接字(大插排)。 ServerSocket(int port) - 根据参数指定的端口号来构造对象。 Socket accept() - 侦听并接受到此套接字的连接请求。 void close() - 关闭套接字。 (2)Socket类 java.net.Socket类用于描述客户端的套接字,该套接字是两台机器间通信的端点。 Socket(String host, int port) - 根据参数指定的主机名和端口号来构造对象。 InputStream getInputStream() - 用于获取当前Socket的输入流。 OutputStream getOutputStream() - 用于获取当前Socket的输出流。 void close()

浏览器输入URL后发生了什么

拈花ヽ惹草 提交于 2020-03-15 11:42:46
  假如在浏览器中输入了www.cnblogs.com,然后回车 DNS解析   浏览器检查 浏览器缓存 是否有域名对应的IP。   浏览器查找操作系统是否有对应的DNS解析成果( hosts文件 )。   查找路由器缓存。   浏览器客户端向 本地域名服务器 发送一个含有域名www.cnblogs.com的DNS查询报文。(大约80%的域名解析到这里就完成了)   本地DNS服务器把查询报文转发到 根DNS服务器 ,根DNS服务器注意到其com后缀,于是向本地DNS服务器 返回com的顶级域名服务器的IP地址。   本地DNS服务器再次向 comDNS服务器 发送查询请求,comDNS服务器注意到其cnblogs.com后缀并用负责该域名的 权威DNS服务器的IP地址 作为回应。   本地DNS服务器向 权威DNS服务器 发出请求,得到www.cnblogs.com的IP地址。   最后,本地DNS服务器将含有www.cnblogs.com的IP地址的响应报文发送给浏览器。 DNS负载均衡:   它的原理是在DNS服务器中为同一个域名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。例如可以根据每台机器的负载量

对nginx进行平滑升级

删除回忆录丶 提交于 2020-03-15 10:14:38
1.查看服务器当前nginx版本 [root@instance-hwl9ix5l licenses]# nginx -v #查看版本 nginx: nginx version: nginx/1.0.8 [root@instance-hwl9ix5l licenses]# nginx -V #查看配置 nginx: nginx version: nginx/1.0.8 nginx: built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) nginx: configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --add-module=/lnmp/upstream/ 2.下载要安装的版本,下载地址 : http://nginx.org/en/download.html 3.上传服务器并解压进入 tar -xzvf nginx-1.14.2.tar.gz cd nginx-1.14.2/ 4.按原版本编译 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status