网络编程
面向对象:什么是类?类最重要的部分?
1.一系列属性和方法的集合体(一个类就是一个功能)
2.类的继承与封装
对象属性和方法查找
反射
自我学习方法
1.养成看源码的习惯
2.遇到问题的做法(给自己规定一个解决问题的时间)
1.先自行百度/谷歌
2.1不行的时候问同学
3.1,2都不可以的时候问老师
3.养成自我解决问题的能力
看官方文档,照着文档实例敲一遍代码
4.不会的问题多截图,可以加上自己对该知识点的理解!
网络编程
软件开发架构
c/s架构
c:客户端
s:服务端
b/s架构
b:浏览器
s:服务器
手机端:好像是c/s架构比较火,但是并不是,尤其是这几年b/s架构逐渐回升,比如微信小程序,支付宝第三方接口
这样做的目的是:统一接口,拉到客户!!
pc端:b/s架构比较火
本质上:b/s其实也是c/s
服务端的特点:24小时不间断提供服务,谁来就给谁提供服务
客户端特点:想体验服务的时候就去找服务端体验服务
学习网络编程可以干什么 >>>>>>>> 开发cs架构的软件
学习并发编程,前端,数据库,框架 >>>>>>>开发bs架构的软件
网络变成起源:美国军事(所有的技术都是从军事起源)
想实现远程的数据传输
如何实现远程沟通交流?
狼烟
...
电话插电话线
大屁股电脑插网线
笔记本电脑的无线网卡
要想实现远程通信,第一个需要具备的条件就是:物理连接介质
不同国家的人之间交流需要一个公共的语言作为媒介》》英文
计算机和计算机之间想实现远程通信,光有物理连接介质不够,也需要一个
共同的交流的媒介,也就是一个共同的标准,这个标准就是协议
标准 >>>>>互联网协议
互联网协议模型
OSI七层协议
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
重点了解五层:
应用层
传输层
网络层
数据链路层
物理连接层
从底层往上学习
1.物理连接层:
实现计算机之间的物理连接,传输的数据都是010101的二进制
电信号的工作原理:电只有高低电频,01代表的就是高低电频
2.数据链路层(以太网协议!):
1.规定了二进制数据的分组方式
2.规定了只要是接入互联网的计算机,都必须有一块网卡!
网卡上面刻有世界唯一的编号:
每块网卡出厂时都会被烧制上一个世界唯一的mac地址
mac地址:长度为48位2进制,通常由12位16进制数表示(前6位是厂商编号,后6位是流水线号)
mac地址:我们管网卡上刻有的编号叫电脑的mac地址
----》上面的两个协议就是’以太网协议!‘
基于以太网协议通信:通信基本靠吼!
弊端:广播风暴
交换机:如果没有交换机,你的电脑就变成了马蜂窝,有了交换机之后,所有的电脑只需要有一个网卡连接交换机,即可实现
多台电脑之间物理连接
3.网络层(IP协议):
规定了计算机都必须有一个IP地址
IP地址特点:点分十进制
有两个版本ipv4和ipv6为了能够兼容更多的计算机
最小:0.0.0.0
最大:255.255.255.255
IP协议可以实现跨局域网传输
IP地址是能够唯一标识互联网中独一无二的一台机器
4.传输层(端口协议)
TCP,UDP基于端口工作的协议!
其实计算机之间通信其实是计算机上面的应用程序与应用程序之间的通信
端口(port):唯一标识一台计算机某一个基于网络通信的应用程序
端口范围:0~65535(动态分配)
注意:0~1024通常是归操作系统分配的端口号
通常情况下,我们写的软件端口号建议起在8000之后
flask框架默认端口5000
django框架默认端口8000
MySQL数据库默认端口3306
redis数据库默认端口6379
注意:一台计算机上同一时间一个端口号只能被一个应用程序占用
小总结:IP地址:唯一标识全世界接入互联网的独一无二的机器
port端口号:唯一标识一台计算机上的某一个应用程序
IP+port:能够唯一标识全世界上独一无二的一台计算机上的某一个应用程序
补充:arp协议:根据IP地址解析mac地址
应用层:(HTTP协议,FTP协议)
三次握手四次挥手
三次握手连接
四次挥手断连接
星轨:明星出轨的请求连接状态
洪水攻击