软件的结构与网络基础


一、软件结构

什么是软件:

软件,国际中对软件的定位:与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档以及数据。

其他定义:

1.运行时,能够提供所要求功能和性能的指令或计算机程序集合。

2.程序能够满意地处理信息的数据结构。

3.描述程序功能需求以及程序如何操作和使用所要求的文档。

以开发语言作为描述语言,可以认为:软件=程序+数据+文档(代码也可理解成是一种文档)

二、常见的软件表现形式

  • App
  • Web
  • 小程序

三、程序架构

C/S架构

C/S架构:Client/Server(客户端/服务器)结构 需要服务器端部署;用户单独安装客户端,客户端软件升级,服务器端要为每个用户服务!!!可以单机不联网使用。

 业务逻辑主要放在了客户端(服务端也许会有部分业务逻辑需要处理),服务端主要做数据存储。

 优点

充分发挥客户端计算机处理能力,客户端能将用户请求处理后再提交给服务器,将用户请求处理之后再提交给服务器; 将服务器提供的数据处理后再以某种方式显示给客户,所以客户端的响应速度较快,网络通信量低。

缺点

因为业务逻辑处理主要集中在客户端,所以应用需求只要发生变化,就必须对客户端和服务器端的应用程序进行修改,服务器端应用程序修改比较容易,主要是服务器数量少,而且涉及数据存储改动量较小,但是新的客户端应用程序需要重新分发给所有的用户,工作量大。而且,开发客户端往往是针对某一操作系统编写的。如适用于Windows操作系统的软件,通常不适用于Linux,而且就算都是Windows系统,WindowsXP下能运行,但在Windows10下就未必了。

B/S架构

B/S架构是Browser/Server的缩写,翻译过来就是“浏览器/服务器”。

优点

B/S架构解决了C/S架构存在的部分问题,首先没有客户端的差异,用户只需要安装浏览器,无须另外安装客户端。如果应用的业务逻辑发生变化,只需要更新服务端的应用程序就可以了。其次,客户端将不受到操作系统的限制,目前主流的浏览器往往在多种操作系统下都有对应的版本可供使用。

缺点

增加了服务器的负担,因为业务逻辑集中在服务器端,服务器需要对不同用户的多次请求都做出响应,同时又要对数据库进行维护,工作量较大。

四、软件组成

软件一般分为:前端和后端

前端

前端主要的作用就是与用户交互,接收用户输入并发送给后端,接收后端返回的数据,友好的展示给客户。

这里就跟前台后台不一样。(前台、后台一般指的是业务层,比如淘宝前台展示给买家,后台展示给卖家,后台和前台只是业务逻辑上的区别,与软件组成无瓜,有的程序只有前台而没有后台 )

常用技术:Html,Css,JavaScript等 

后端

后端的作用主要是:处理消息,生成结果,存储数据。

常用技术:Java,C,C++,Python,Go等

后端常用架构:单体架构、垂直架构、分布式架构、微服务架构

五、网络基础

域名

由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们涉及出了域名,并通过网络名称系统(DNS,Domain Name System)来将域名和ip地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

特点和作用就是:方便记忆

某种意义上来说:域名=IP,只是表现形式不一样

IP

  • 公网IP

        百度IP可找到自己家的公网IP,意味着我家在互联网上的一个地址(一般家用网络不能用作为服务器,运营商限制了端口)

  • 局域网IP

        少数电脑连成的局域网,每一台连接的设备都会有一个局域网IP

  • 本机IP

        127.0.0.1

        localhost

端口

服务器有65535个端口(65535为2的16次方减1)

常用端口

  • http协议:80
  • https协议:443
  • MySQL:3306
  • FTP:21
  • SSH:22
  • Tomcat:8080

OSI七层模型

OSI(Open System Interconnect),即开放式系统互连。一般都叫OSL参考模型,是ISO组织在1985年研究的网络互连模型

  • 应用层:应用层给应用程序提供了接口,使应用程序介入到网络。
  • 表示层:负责数据格式的转换。
  • 会话层:负责建立、维护、终止会话连接,提供会话管理服务等。
  • 传输层:负责传送完整1的报文,并进行流量控制和差错控制。
  • 网络层:负责路由、传送分组。
  • 数据链路层:负责传输帧。
  • 物理层:负责传送比特流。

  TCP/IP协议  

TCP/IP参考模型最多划分了5个层次,分别是物理层,数据链路层,网络层,传输层和应用层;

划分4个层次则为:应用层,传输层,网际互联层,网络接口层; 

在层次结构上,相同之处:都采用了分层体系结构;不同之处:TCP/IP参考模型比OSI参考模型更简化。

 

 三次握手四次挥手

        TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接。

三次握手

  • 首先Client端发送连接请求报文
  • Server段接受连接后回复ACK报文,并为这次连接分配资源。
  • Client端接收到ACK报文后也向Server端发送ACK报文,并分配资源,这样TCP连接就建立了。

 为什么要使用三次握手

1、在第一次通信过程中,A向B发送信息之后,B收到信息后可以确认自己的收信能力和A的发信能力没有问题。

2、在第二次通信中,B向A发送信息之后,A可以确认自己的发信能力和B的收信能力没有问题,但是B不知道自己的发信能力到底如何,所以就需要第三次通信。

3、在第三次通信中,A向B发送信息之后,B就可以确认自己的发信能力没有问题。

四次挥手

  • 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
  • 第二次挥手:Server收到FIN后,发送一个ACK给Client,Server进入CLOSE_WAIT状态。
  • 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
  • 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,发送ACK给Server,Server进入CLOSED状态,完成四次握手。

 为什么连接的时候是三次握手,关闭的时候却是四次挥手?

1、因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中
ACK报文是用来应答的,SYN报文是用来同步的。
2.但是关闭连接时,当Server端收 到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先
回复一个ACK报文, 告诉Client端 ,"你发的FIN报文我收到了"。
3、只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故
需要四步握手。

HTTP协议

简介

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信
息系统。于1990年提出。
●HTTP协议,即超文本传输协议(Hypertext transfer protocol)。 是一种详细规定了浏览器和
万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档
的数据传送协议。
●HTTP协议作为TCP/IP模型中的应用层协议也不例外。HTTP协议通常承载于TCP协议之上。
●HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一
无状态的协议。
●HTTP默认的端口号为80,HTTPS的端口号为443。
 

 主要特点
●支持客户/服务器模式
●简单快速,客户向服务器请求服务时,只需传送请求方法和路径和数据。常用的请求方法
有: get、post。 由于HTTP协议简单,使得HTTP服务器的程序规模小,通信速度快。
●灵活: HTTP允许传输任意类型的数据对象,传输的类型由Content- Type加以标记。
●无连接:无连接的含义时限制每次连接只处理一 个请求。服务器处理完客户端的请求并收到
客户应答后,即断开连接,采用这种方式可以节约资源节省传输时间。
●无状态: HTTP协议是无状态协议,对于事务处理没有记忆能力,使得其应答速度较快。

 会话跟踪技术
●Session
Session是依赖Cookie实现的,Session是服务器端对象。Session 是浏览器和服务器会话过
程中,服务器分配的一块储存空间。服务器默认为浏览器在Cookie中设置sessionid,浏览
器在向服务器请求过程中传输的Cookie包含sessionid,服务器根据sessionid获取出会话
中存储的信息,然后确定会话的身份信息。
●Cookie 
Cookie是由Web服务器保存在用户浏览器上的小文件(key-value格式),包含用户相关的
信息。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客
户端浏览器发送一个Cookie。 客户端浏览器会把Cookie保存起来。当浏览器再请求该网站
时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie, 以此来
辨认用户身份。
●Token
Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服
务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求
数据即可,无需再次带上用户名和密码。
使用Token的目的: Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服
务器更加健壮。


 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值