python学习Day38
Day 38
今日内容概要
纯理论,围绕网络
- 软件开发架构
- 架构今后发展趋势
- 网络编程简介
- OSI七层协议
- 网络相关名词
- 各层特征1
- 各层特征2
今日内容详细
1.软件开发架构
1.什么是软件开发架构
程序员编写项目前需要遵循的代码层面上的规范(代码运行的流程、环节、步骤..)
eg:ATM三层架构 选课系统三层架构
2.软件开发架构
1)c/s架构:
client 客户端
server 服务端
"""
计算机上下载的各个互联网公司app软件 其实就是客户端
下载客户端其实就是为了体验对应服务端的服务
eg:
下载淘宝就是为了体验淘宝服务端提供的购物服务
客户端可以看成即将去消费的客人
服务端可以看成是给提供服务的店
服务端应该具备的特征:
1.24小时不间断提供服务
2.固定的地址(不能经常改变)
3.可以同一时间服务很多人
"""
2)b/s架构:
broswer 浏览器
server 服务器
"""
b/s架构本质也是c/s架构
通过浏览器来充当各个服务端的客户端 用户想要体验服务不需要下载指定的客户端
"""
3.架构优劣势
1)cs架构(app)
优势:下载对应的客户端,厂家可在客户端中高度定制相关服务
劣势:使用必须先下载客户端,较繁琐
2)bs架构(浏览器)
优势:不需要下载客户端,打开网页就可以快速体验服务
劣势:厂家想高度定制相关服务功能会比较繁琐
1.1架构今后发展趋势:
#cs架构与bs架构与我们学的三层架构其实一样
今后发展趋势:统一接口原则
微信
里面有很多小程序 可以直接体验其他服务
支付宝
里面有很多小程序 可以直接体验其他服务
后续就是cs和bs交错使用 避免各自的劣势
ps:可以方便用户使用 更重要的是可以给自己圈用户便于后期收割
2.网络编程简介
1.如何理解网络编程
基于互联网编写代码 程序可以实现远程数据交互
2.网络编程的目的
本质是为了解决计算机之间远程数据交互
3.网络编程的意义
学完网络编程就可以编写一个c/s架构的原件
4.网络编程的起源
任何先进的技术一般都来源于军事
"""
网络编程最早是由美国军方开发
没有网络编程的时候如果两台计算机之间要交互数据 只能使用硬盘拷贝,如果一个人在中国一个人在非洲那就得拿着硬盘坐飞机
"""
5.网络编程的要求
eg:
1)早期的电话
必须要有电话线
2)大屁股电脑
必须要有网线
3)笔记本电脑
必须要有网卡
总结:
'计算机之间要想实现远程数据交互 首要条件是要有物理连接介质'
3.OSI七层协议
"""
规定了计算机涉及到数据远程交互时必须要经过的部件或流程
(所有计算机在涉及网络传输时必须要有相同的零部件)
"""
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
#应表会传网数物
'针对以上七层也可以合并成五层'
应用层(把表示层和会话层合并在应用层中)
传输层
网络层
数据链路层
物理连接层
'也可以优化为四层'
应用层
传输层
网络层
网络接口层
各层都有各自的功能和规范
3.1网络相关名词:
1.交换机
能够让接入交换机的多台计算机实现彼此互联
2.以太网通信(mac通信)
原理:
有了交换机后根据电脑的mac地址就可以实现数据交互
广播:先在交换机中吼 所有接入交换机的设备都能收到
单播:只有被查找的设备才会回复相应信息
缺陷:
1.mac地址通信仅限于局域网内
2.接入交换机的设备过多时,可能会造成广播风暴
广播风暴:类似于教室中所有人同时讲话
3.局域网
某个固定区域组成的网络
广域网
某个更大区域的局域网
4.路由器
将多个局域网连接到一起的设备
3.2各层特征1
数据发从出去是从上往下走 应用层→物理层
数据接收回来是从下往上走 物理层→应用层
1.物理连接层
保证物理连接介质的条件,传递电信号(主要研究插网线情况)
2.数据链路层
1)规定了电信号的分组方式
2)规定了每台计算机都必须有一块网卡
网卡上必须有一串记录:电脑的mac(以太网)地址
mac地址:由12位16进制数组成
前6位:厂商编号
后6位:生产流水号
ps:mac地址相当于电脑的'身份证'号,那么就可以根据该地址找到相应计算机(可以基于mac地址实现数据交互)
3.网络层
1)IP协议:
规定了任何接入互联网的计算机都必须有一个IP地址(护照)
2)IP地址:
IPV4:点分十进制
最小: 0.0.0.0
最大: 255.255.255.255
ps:随着社会发展 同时能上网的人越来越多 上述地址不够分
IPV6:点分十六进制
号称能给地球每一粒沙分一个IP地址
3)IP特征:每个IP都自带定位
只有用ip代理才可以隐藏ip(隐藏在美国、西班牙..)
但是ip代理也会被查到 所以可以使用多层代理
4.传输层
PORT端口协议:
端口协议规定了一台计算机上每个正在运行的应用程序都必须有一个端口号,端口号相当于是计算机用来管理多个应用程序的标记
端口号特征:
1.端口号范围: 0~65535
2.端口号是动态随机分配的
3.同一时间同一台计算机端口号不能冲突
4. 0~1024:一般是操作系统内部需要使用的
1024~8000:一般是常见的软件已经使用了
8000+:我们平时写代码可以使用8000之后的端口号
"""
IP+PORT
IP:用于标识全世界任意一台接入互联网的计算机
PORT:用于标识一台计算机上的某个应用程序
IP+PORT:用于标识全世界任意一台接入互联网的计算机上的某一个具体的程序
"""
1)什么是网址:
网址(URL):统一资源定位符
2)URL的本质:
其实就是IP+PORT(ip:port)
www.baidu.com 124.12.11.232
作业
1.整理今日内容及博客
2.自行查阅
域名解析、DNS服务器
3.预习明日内容
socket套接字编程
域名解析、DNS服务器
域名解析:就是域名与IP地址转换的过程(如将域名解析为ip地址),可以让人们输入域名就能访问该网站
域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。