网络编程并发编程
- 软件开发架构
- 网络编程简介
- OSI七层协议
- 网络相关设施
- TCP与UDP协议
- http 超文本传输协议
软件开发架构
1.什么是软件开发架构
编写项目之前需要遵循代码层面上的规范(代码运行的流程环节步骤)
2.软件开发架构
c/s 架构
client 客户端
server 服务端
'''
计算机上下载各个互联网公司app软件本质就是客户端
下载客户端的目的是为了体验对应服务端的服务
客户端类似于去消费的客人
服务端类似于给客人提供服务的店
服务端具备的特征:
1.24小时不间断提供服务
2.固定地址不经常改变
可以同一时间服务多人
'''
b/s架构
broswer 浏览器
server 服务器
'''
b/s也是c/s架构
通过浏览器来充当各个服务端的客户端,体验服务不需要下载指定客户端
'''
3.架构优劣势
c/s架构
优势:下载对应的客户端,可以在客户端软件内高度定制相关服务
劣势:使用必须先下载客户端
b/s架构
优势:使用不需要下载客户端,能快速的体验服务
定制功能较为繁琐
架构发展趋势
发展趋势:统一接口原则
c/s和b/s交错使用避免各自的劣势
网络并发编程简介
1.如何理解网络编程
基于互联网编写代码,程序可以实现远程数据交互
2.网络编程的目的
网络编程的本质是为了解决计算机之间远程数据交互
3.网络编程的意义
学完网络编程,可以使编写的程序实现远程数据交互
4.网络编程的起源
任何先进的技术一般都来源于军事
"""
网络编程由美国军方开发
没有网络编程的时候 如果两台计算机之间要交互数据
只能使用硬盘拷贝 如果一个人在中国一个人在非洲
那就拿着硬盘坐飞机
"""
5.网络编程的要求
1.早期的电话
必须要有电话线
2.大屁股电脑
必须要有网线
3.笔记本电脑
必须要有网卡
"""
计算机之间要想实现远程数据交互 首要条件就是要有物理连接介质
"""
OSI七层协议
"""
规定了计算机涉及到数据远程交互的时候 必须要经过的部件/流程
所有的计算机在涉及到网络传输这块必须要有相同的零部件
"""
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
ps:记忆小技巧>>>: 应\表\会\传\网\数\物
'''针对上述的七层 我们也可以合并成五层'''
应用层
传输层
网络层
数据链路层
物理连接层
'''也可以优化成四层'''
应用层
传输层
网络层
网络接口层
ps:每一层都有各自的功能和规范
互联网协议与osi模型
互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层

每层运行常见物理设备

每层运行常见的协议

各层特征
数据发送出去的时候 是从上往下走
数据接收回来的时候 是从下往上走
'''我们按照从下往上的顺序研究'''
1.物理连接层
保证物理连接介质的条件 传递电信号(主要研究插网线情况)
2.数据链路层
1.规定了电信号的分组方式
2.规定了每台计算机都必须有一块网卡
网卡上必须有一串记录>>>:电脑的以太网地址(身份证号) mac地址
以太网地址\mac地址:由12位16进制数组成的
前6位:产商编号
后6位:生产流水线号
ps:既然mac地址相当于电脑的身份证号 也就意味着可以根据该地址查找计算机(可以基于mac地址实现数据交互)
网络相关名词
1.交换机
能够让接入交换机的多台计算机实现彼此互联
2.以太网通信(mac通信)
原理
有了交换机之后 根据电脑的mac地址就可以实现数据交互
广播:先在交换机中吼 所有接入交换机的设备都能收到
单播:只有被查找设备 才会回复相应信息
缺陷
1.mac地址通信仅限于局域网
2.接入交换机的设备过多 可能会造成广播风暴
广播风暴:类似于所有人同时吼!!!
3.局域网
有某个固定区域组成的网络
广域网可以看成是更大区域的局域网
4.路由器
将多个局域网连接到一起的设备
早期 : 联机

以太网 : 局域网与交换机

广域网与路由器

各层特征02
3.网络层
IP协议
规定了任何接入互联网的计算机都必须有一个IP地址(护照)
IP地址
IPV4:点分十进制
最小: 0.0.0.0
最大: 255.255.255.255
ps:随着社会的发展 同时能够上网的人越来越多 上述地址不够分
IPV6:
能够给地球上每一粒沙分一个IP地址
IP特征
每个IP都自带定位
ps: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
http超文本传输协议
简单地说,TCP 协议是 HTTP 协议的基石——HTTP 协议需要依靠 TCP 协议来传输数据。在网络分层模型中,TCP 被称为“传输层协议”,而 HTTP 被称为“应用层协议”。

HTTP 对 TCP 连接的使用,分为两种方式:俗称“短连接”和“长连接”(“长连接(Keep-Alive)”又称“持久连接(Persistent Connection)”)

假设有一个网页,里面包含好多图片,还包含好多【外部的】 CSS 文件和 JS 文件。在“短连接”的模式下,浏览器会先发起一个 TCP 连接,拿到该网页的 HTML 源代码(拿到 HTML 之后,这个 TCP 连接就关闭了)。然后,浏览器开始分析这个网页的源码,知道这个页面包含很多外部资源(图片、CSS、JS)。然后针对【每一个】外部资源,再分别发起一个个 TCP 连接,把这些文件获取到本地(同样的,每抓取一个外部资源后,相应的 TCP 就断开

URI 和 URL 之间的关系
URI (Uniform Resource Identifier,统一资源标识符)。
URI 属于 URL 更高层次的抽象,一种字符串文本标准。就是说,URI 属于父类,而 URL 属于 URI 的子类。URL 是 URI 的一个子集。
二者的区别在于,URI 表示请求服务器的路径,定义这么一个资源。而 URL 同时说明要如何访问这个资源(http://)
—————————————————————————————————————————
版权声明:本文为CSDN博主「jeanboydev」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/freekiteyu/article/details/76423436

浙公网安备 33010602011771号