了解网络编程
网络编程
软件开发架构
c/s架构(client/server)
c:客户端
s:服务端
d/s架构(browser/server)
d:浏览器
s:服务端
服务端:24小时不间断提供服务,谁来服务谁
客户端:什么时候想体验服务就去找心意的服务端寻求服务
b/s架构本质也是c/s架构
ps:手机端看上去c/s架构比较火,实际上b/s已经崛起,微信支付宝都在做一件事:统一接口
学习网络编程就可以开发一个c/s架构的软件
学习并发 数据库 django 就可以开发一个b/s架构软件
实现远程通信的条件
一.物理连接介质
计算机与计算机之间要想实现远程通信的基本条件
二.OSI 协议
计算机与计算机之间要想实现远程通信的公共标准
OSI 七层协议 :应用层 表示层 会话层 传输层 网络层 数据链路层 物理连接层
1.物理连接层
基于电信号传输的二进制数据
2.数据链路层
1.规定了电信号的分组方式
2.规定了任何一台介入互联网的计算机都有必须有一块网卡,没块网卡上刻有独一无二的编号
12位16进制数 也叫mac地址 前六位是厂商编号 都六位是流水编号
物理连接层 + 数据链路层 也被称为:以太网协议(局域网)
3.网络层
IP 协议: 规定了只要介入互联网的计算机都必须有一个IP地址
ip地址的特点:点分十进制
ip地址最小: 0.0.0.0 最大:255.255.255.255
ip地址版本:IPV4 / IPV6
ip地址是动态分配的
4.传输层
TCP/UDP 都是基于 端口(port) 工作的协议
TCP协议: 流式协议 / 可靠协议 基于TCP协议通信 必选先建立双向通道
三次握手:
第一次:客户端向服务端发送链接请求
第二次:服务端同意请求并向客户端发送链接请求
第三次:客户端同意请求
四次分手
第一次:客户端向服务端发送断开请求
第二次:服务端同意
第三次:服务端检测是否还有未发送的数据,若有,发送完后再向客户端发送断开请求
第四次:客户端同意
TCP的可靠性
计算机与计算机之间其实是计算机上的应用程序之间的通信
端口(port): 用来唯一标识一台计算机上的某个应用程序
端口号范围:0-65535 建议是有8000之后的端口号
操作系统默认使用的端口号 0-1024
MySQL 默认端口 3306
Redis 默认端口 6379
Django 默认端口 8000
flask 默认端口 5000
端口号是动态分配的
ip + port : 唯一标识介入互联网的一台计算机上的某个应用程序
5.应用层
HTTP 协议