网络编程
1、用户与数据库,浏览器与数据库,都是基于网络通信
C/S client<----基于网络通信---->server
B/S browser<----基于网络通信---->server
server端必须满足的条件:
1、稳定运行(网络、硬件、操作系统、服务端应用软件)对外一直提供服务(我们接触的是服务端应用软件,前三样都是运维在弄)
2、服务端必须绑定一个固定地址(因为只有固定地方才方便用户的访问,地址不固定每次访问都是艰辛的,就像开的餐饮店地址不断变化客户也会流失)
2、什么是互联网
两大要素
1、底层的物理连接介质,是为通信铺好道路的
2、一套统一的通信标准-->互联网通信协议(因为世界是不同语言组成,而英语成为国际语言,互联网全世界在用,通信协议就是计算机连接全世界的统一“语言”)
互联网协议就是计算机世的英语
3、自定义协议:
任何一种通信协议都必须包含两部分
1、报头:在网络协议通讯中,被附加到用于控制信息的运载和传输的数据包掐面的定义位长度的特殊保留字段,并且是固定长度,
当数据包到达其目标时,因为该数据包是以每个协议层对应的反顺序处理和解包的,所以该字段将被分离丢弃
2、数据
4、OSI五层协议
互联网协议按照功能不同分为osi七层或者tcp/ip五层:
osi为开放式系统互联,定义了不同计算机互联标准。
tcp/ip为网络通讯协议,TCP负责发现传输问题,IP是给因特网每一台联网设备规定一个独一无二的地址
其五层为:
物理层->数据链路层->网络层->传输层->应用层
用户通过使用应用软件,是属于应用层,应用层会将用户的所需内容给操作系统发送请求,再由操作系统控制网卡将用户需求发送给数据库
其中间过程是应用程序提供的用户需求到传输层,经过传输层包装,再由网络层包装,再由数据链路层包装,再由物理层包装传输到服务器端的网卡处,
再由逆向解包从物理层开始解包,接着数据链路层,再网络层接着传输层,接着操作系统将用户需求控制硬件通知给,数据库,然后数据库将请求处理
并继续按照这个规律返回给用户
传输层 TCP/IP协议 端口是0-65535 基于网络通信的软件端口号,其中0-1024是公认端口号,从1024-65535是动态端口号,而1024是动态端口的开始
5、标识地址的方式:
ip+mac就能标识全世界范围内独一无二的一台计算机
ip+mac+port就能标识全世界范围内独一无二的一个基于玩过通信的应用软件
url地址:标识全世界范围内独一无二的一个资源
6、tcp协议
三次握手建立连接
四次挥手断开连接
1、为何建连接要三次而断开连接却需要四次
建立连接因为没有实际的数据传输所以中间的两步并做一步走,而断开连接需要4次是因为,用户传输完之后请求断开,数据库同意后一条线路断了,但是数据
库并不一定将数据传输给用户完毕,需要过一段时间才会传输完毕后请求用户端断开,然后经过用户同意之后最后一条线路断开。不过一般都是数据库先断开,
然后等用户断,因为数据库要接收用户的请求多,所以数据库在传输完毕后都会主动申请断开
2、为何tcp协议是可靠协议,而udp协议是不可靠协议
tcp协议可靠是在传输数据时候并不是直接传输完就清理内存,而是等用户明确接收后才会清理,udp是不像tcp一样需要路径传输,直接传输完毕就清空内存,
udp的传输是在传输前,是发送方和接收方相互交换信息使双方同步,utp传送数据较tcp快速,系统开销也少
3、tcp协议建立连接与断开连接的状态信息以及表示的意义
connect是建立连接的状态信息,close是断开连接状态的信息。
connect是表示连接的请求,close是连接状态的关闭,TIME_WAIT表示访问人多,服务端出现rcvd表示被攻击
7、半连接池:
限制的是同一时刻的请求数,而非连接数,以队列形式进出