-
-
网络编程简介
-
OSI七层协议
-
互联网相关专业名词
-
TCP与UDP协议
软件开发架构
# 什么是软件开发架构
程序员在编写软件的时候应该遵循的架构设计
类似于我们写ATM和选课系统所采用的三层架构
# 软件开发架构的分类
1.C/S架构
C:client(客户端)
S:server(服务端)
"""
类比学习:
客户端相当于是需要体验服务的客人
服务端相当于是对外提供服务的店面
我们手机上下载的各种app其实是各大厂家的客户端
打开app使用功能的时候其实就是相当于是基于网络去到厂家的店里面让服务员给你提供服务
"""
2.B/S架构
B:browser(浏览器)
S:server(服务器)
"""
B/S架构本质也是C/S架构
让浏览器充当各个厂家的客户端 用户无需对应下载相应客户端
"""
# 两种架构的优缺点
C/S架构:
优势:针对客户端可以高度定制
劣势:需要用户去下载才能使用
B/S架构:
优势:无需下载 急速体验
劣势:无法做到高度定制 体验效果较差
'''
目前的趋势其实更加偏向于B/S架构
微信小程序
只需要下载一个微信就可以通过微信去访问很多服务端
支付宝诸多应用
只需要下载一个支付宝就可以通过支付宝体验很多服务
统一提供接口服务>>>:获取大量用户及数据 中途还可以提供广告服务
'''
网络编程简介
# 什么是网络编程
网络编程的研究前提就是基于互联网 网络编程就是基于互联网编写代码
# 学习网络编程的目的/结果
学习完网络编程之后就可以开发C/S架构的软件(掌握原理 使用框架)
# 网络编程发展史
该技术源于美国军方:很多先进的技术都是由军事发明后续转为民用
实际应用:
军方想要实现不同计算机之间的数据交互
没有网络编程技术的时候之恶能用U盘拷贝并携带
为了跨区域交互数据所有发明了网络编程
# 早期远程通讯
1.座机电话
彼此打电话需要电话线
2.大屁股电脑
数据交互需要插网线
3.智能手机
数据交互需要无线网卡
'''
电话线 网线 无线网卡
远程通话的前提是必须具备一个物理链接介质
'''
# 互联网协议
不同计算机之间想要实现无障碍交互
除了需要有物理链接介质之外还需要一套公有的标准
这个标准是:互联网协议(OSI七层协议)

OSI七层协议
"""
所有的计算机在生产过程中必须有相同的部分和相同的功能
"""
1.应用层
2.表示层
3.会话层
4.传输层
5.网络层
6.数据链路层
7.物理链接层
# 上述的七层也有很多人总结为五层
1.应用层(三层)
2.传输层
3.网络层
4.数据链路层
5.物理链接层
OSI七层的本质其实就是规定了数据要想基于网络发送出去必须在计算机上经历一些固定的流程
# 物理链接层
物理链接介质,传递电信号
# 数据链路层
"""
基于物理链接层收到一串二进制数 如何切分才能正常解析?
"""
1.规定二进制数据的分组方式
2.规定了'以太网协议'
但凡能够接入互联网的计算机都必须有一块网卡
每块网卡在出场的时候都会被烧制一个全世界独一无二的编号
该编号是由12位16进制组成
前六位是产商编号
后六位是流水线号
这个独一无二的编号也有一个称呼:'mac地址'(类似于身份证号)
ps:基于mac地址就可以实现计算机之间的数据通信了
# 网络层
IP协议
规定了每台接入互联网的计算机都必须有一个IP地址(取决于网线)
IP地址目前有两个版本
IPV4:点分十进制
最小:0.0.0.0
最大:255.255.255.255
# 随之社会的进步 计算机的使用越来越普遍 IPV4地址不够用
IPV6:十六进制
'''IPV6可以表示出地球上的每一粒沙子'''
ps:IP地址可以唯一标识地球上独一无二的一台接入互联网的计算
"""
IP地址分为公网IP和私网IP
公网IP是可以直接被浏览器访问到的 但是私网IP是不可以的
我们所有人的电脑默认使用的都是私网IP
公网IP需要花钱购买并且需要实名认证并备案
很多非法网站都是在国外注册备案
"""
# 传输层
PORT协议(端口协议)
"""
一台计算机上面可以运行很多数据交互软件 比如微信、qq、钉钉...
他们都是从内存中获取数据 为什么不会错乱
就是因为端口协议的存在
"""
用于标识一台计算机上面正在运行的应用程序(端口号类似于手牌号)
端口号的范围是:0~65535
0~1024:系统经常使用的端口号
1024~8000:常用软件端口号
我们以后在写项目的时候推荐使用8000之后的端口
1.同一时间同一台计算机上面端口号不能冲突
2.端口号是动态分配的
eg:打开微信随机分配一个没有被使用的端口号8888
关闭微信重新打开那么会随机分配可能还是8888也可能是其他
"""
IP地址:用于标识全世界独一无二的一台接入互联网的计算机
PORT号:用于标识一台计算机上面的某一个应用程序
IP+PORT:能够标识世界上独一无二的一台计算机上面的某一个应用程序
我们日常生活使用浏览器访问的各个网址其实就是IP+PORT
www.baidu.com 好记
14.215.177.29:80 难记
ip:port
很多常见的服务端都不需要指定端口 只要访问了ip地址内部去会自动映射
域名解析
将好记地址解析成真正的地址
www.baidu.com 解析 202.108.22.5:80
"""
# 应用层
这里完全可以取决于程序员自己
HTTP协议 HTTPS协议