day27网络编程开始,面向过称补充
1..知识点补充
1.json知识点扩展.,不支持类型,自定义转化.py
1 """""" 2 """ 3 知识点补充: 4 """ 5 6 """ 7 from datetime import datetime,date 8 # 1.年月日,时分秒 9 print(datetime.today()) #2019-08-06 15:30:46.306446 10 # 2.年月日 11 print(date.today()) # 2019-08-06 12 """ 13 """ 14 import json 15 from datetime import datetime,date 16 res = {'c1':datetime.today(),'c2':date.today()} 17 print(json.dumps(res)) 18 """ 19 20 """ 21 TypeError: Object of type 'datetime' is not JSON serializable 22 类型错误:“datetime”类型的对象不是可序列化的JSON 23 """ 24 25 """ 26 import json 27 from datetime import datetime,date 28 res = {'c1':datetime.today,'c2':date.today()} 29 print(json.dumps(res)) 30 """ 31 """ 32 TypeError: Object of type 'builtin_function_or_method' is not JSON serializable 33 类型错误:“builtin_function_or_method”类型的对象不可JSON序列化 34 """ 35 import json 36 import time 37 from datetime import datetime,date 38 class MyJson(json.JSONEncoder): 39 def default(self, o): 40 if isinstance(o,datetime): 41 return o.strftime('%Y-%m-%d %X') 42 elif isinstance(o,date): 43 return o.strftime('%Y-%m-%d ') 44 elif isinstance(o,time.localtime()): 45 return o.localtime() 46 47 else: 48 return super().default(self,o) 49 # res = {'c1':datetime.today(),'c2':date.today()} 50 # print(json.dumps(res,cls=MyJson)) # {"c1": "2019-08-06 16:42:36", "c2": "2019-08-06 "} 51 ret = time.localtime() 52 print(json.dumps(ret,cls=MyJson))
2.网络编程
1.软件开发架构
1 1.软件开发架构 2 c/s架构(client/server) 3 c:客户端 4 s:服务器 5 b/s架构(browser/server) 6 b:浏览器 7 c:服务器 8 ps:b/s架构本质也是c/s架构 9 手机端看上去c/s比较火,实际上b/s已经崛起 10 微信支付宝都在做一件事:统一接口 11 手机端之后肯定也是b/s比较火 12 13 服务端24小时服务: 14 服务端什么时候想体验服务就去找心仪的服务器体验
2.学习网络编程的目的
1 学习完网络编程 的目的: 2 1.就可以开发一个c/s架构的软件 3 2.(之后学习)并发 数据库 前端 Django 就可以开发一个b/s架构的软件
3.网络编程的发展史
1 1.网络编程的发展史: 2 任何先进的技术最早都来源于军事 3 4 2.回到过去 5 1.早期的电话 电话线 要求:1.物理连接介质 2.统一的语言 6 2.大屁股电脑 网线 要求:1.物理连接介质 2.统一的语言 7 3.笔记本电脑 无线电话 网卡 要求:1.物理连接介质 2.统一的语言 8 9 3.总结: 10 计算机与计算机之间要想实现远程通信 11 1.除了有物理介质 12 2.还需要一套公共的标准或者协议 --OSI
3.OSI协议
1.OSI七层架构
1 OSI七层协议 2 应用层 3 表示层 4 会话层 5 传输层 6 网络层 7 数据链路层 8 物理连接层 9 10 应用层,表示层,会话层可精简为应用层,产生 OSI五层结构 11 辅助记忆:应表会传网数物
2.OSI简化为五层架构
1 OSI精简版: 5层 2 应用层 3 传输层 4 网络层 5 数据链路层 6 物理连接层 7 8 2.详细: 9 1.物理连接层 10 基于电信号传输010101001010二进制数据 11 12 2.数据链路层 13 1.规定了电信号的分组方式 14 2.规定了任何一台接入互联网的计算机都必须有一块网卡 15 网卡特点: 16 1.每一块网卡上都刻有独一无二的编号: 17 12位-16位进制数 18 前6位是厂商编号 19 后6位是流水线编号 20 我们称这为mac地址 21 (mac地址:MAC地址(Media Access Control Address),直译为媒体访问控制地址,也称为局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网上设备位置的地址) 22 ps:以上两点合称以太网协议: 23 24 1.交换机: 25 2.基于以太网协议通信: 26 特点:通信基本靠吼 27 3.互联网是有N多个局域网彼此之间连接而成的 28 29 3.网络层: 30 IP协议 31 规定了只要接入互联网都必须具备一个IP地址: 32 IP地址特点:点分十进制 33 IP地址最小:0.0.0.0 34 IP地址最大:255.255.255.255 35 ip地址目前有两个版本:IPV4,IPV6(由于IPV4已经不够表示目前存在的计算机,所以IPV6应用而生) 36 37 ip地址是动态分布的 38 39 4.传输层 40 TCP / UDP 都是基于端口工作的协议 41 端口(port) 42 43 计算机与计算机之间其实是应用程序与应用程序之间的通信 44 端口:用来唯一标识一台计算机上的某个应用程序 45 端口号的范围:0-65535 46 注意0-1024这些都是操作系统使用的端口号 47 建议:使用8000以后的端口 48 Mysql默认端口:3306 49 Redis默认端口:6379 50 Django默认端口:8000 51 flask默认端口:5000 52 53 端口号是动态分配的, 54 例如:第一次起qq分配的8989 55 将QQ关闭再次启动端口号可能就变了 56 57 总结: 58 ip地址,用来唯一标识接入互联网的一台计算机 59 port端口,用来唯一标识一台计算机上的某个应用程序 60 ip+port : 唯一标识接入互联网的一台计算机上的某个应用程序 61 62 5.应用层: 63 域名https(s:安全认证)://www.baidu.com 64 HTTP协议 65 FTP协议 Django学
4.TCP协议
1.TCP协议
1 1.TCP协议 2 流式协议,可靠协议 3 (TCP可靠的原因:他有反馈机制,发送消息后,对方必须回复确认,才会将内存从数据中清空,否则,在限定的时间内,每隔一段时间会重新发送一次) 4 基于TCP协议通讯,必需先建立双向通道 5 6 三次握手四次挥手 7 8 三次握手建连接 9 必需先建立双向通道 10 11 四次挥手断连接 12 中间两步不能合并 13 14 黑客洪水攻击: 15 服务器在同一时间接到大量请求
1 1.TCP协议 2 流式协议,可靠协议 3 基于TCP协议通讯,必需先建立双向通道 4 5 三次握手四次挥手 6 7 三次握手建连接 8 9 四次挥手断连接
1.2.三次握手四次挥手
三次握手建连接
四次挥手断连接
2.案例 星轨.py
1.网络编程
1 网络编程: 2 1.软件开发架构 3 c/s架构(client/server) 4 c:客户端 5 s:服务器 6 b/s架构(browser/server) 7 b:浏览器 8 c:服务器 9 ps:b/s架构本质也是c/s架构 10 手机端看上去c/s比较火,实际上b/s已经崛起 11 微信支付宝都在做一件事:统一接口 12 手机端之后肯定也是b/s比较火 13 14 服务端24小时服务: 15 服务端什么时候想体验服务就去找心仪的服务器体验 16 17 学习完网络编程 就可以开发一个c/s架构的软件 18 并发 数据库 前端 Django 就可以开发一个b/s架构的软件 19 20 2.网络编程的发展史: 21 任何先进的技术最早都来源于军事 22 23 3.回到过去 24 1.早期的电话 电话线 要求:1.物理连接介质 2.统一的语言 25 2.大屁股电脑 网线 要求:1.物理连接介质 2.统一的语言 26 3.笔记本电脑 无线电话 网卡 要求:1.物理连接介质 2.统一的语言 27 28 计算机与计算机之间要想实现远程通信除了有1.物理介质 还需要2.一套公共的标准或者协议 --OSI 29 30 4.OSI七层协议 - 精简为 五层协议 31 应用层 32 表示层 33 会话层 34 传输层 35 网络层 36 数据链路层 37 物理连接层 38 39 精简版: 5层 40 应用层 41 传输层 42 网络层 43 数据链路层 44 物理连接层 45 1.物理连接层 46 基于电信号传输010101001010二进制数据 47 2.数据链路层 48 1.规定了电信号的分组方式 49 2.规定了任何一台接入互联网的计算机都必须有一块网卡 50 网卡特点: 51 1.每一块网卡上都刻有独一无二的编号: 52 12位-16位进制数 53 前六位是厂商编号 54 后六位是流水线编号 55 我们称这为mac地址 56 ps:以上两点合称以太网协议: 57 58 1.交换机: 59 2.基于以太网协议通信: 60 特点:通信基本靠吼 61 3.互联网是有N多个局域网彼此之间连接而成的 62 63 3.网络层: 64 IP协议 65 规定了只要接入互联网都必须具备一个IP地址: 66 IP地址特点:点分十进制 67 IP地址最小:0.0.0.0 68 IP地址最大:255.255.255.255 69 ip地址目前有两个版本:IPV4,IPV6(由于IPV4已经不够表示目前存在的计算机,所以IPV6应用而生) 70 71 ip地址是动态分布的 72 73 4.传输层 74 TCP / UDP 都是基于端口工作的协议 75 端口(port) 76 77 计算机与计算机之间其实是应用程序与应用程序之间的通信 78 端口:用来唯一标识一台计算机上的某个应用程序 79 端口号的范围:0-65535 80 注意0-1024这些都是操作系统使用的端口号 81 建议:使用8000以后的端口 82 Mysql默认端口:3306 83 Redis默认端口:6379 84 Django默认端口:8000 85 flask默认端口:5000 86 87 端口号是动态分配的, 88 例如:第一次起qq分配的8989 89 将QQ关闭再次启动端口号可能就变了 90 91 总结: 92 ip地址,用来唯一标识接入互联网的一台计算机 93 port端口,用来唯一标识一台计算机上的某个应用程序 94 ip+port : 唯一标识接入互联网的一台计算机上的某个应用程序 95 5.应用层: 96 域名https(s:安全认证)://www.baidu.com 97 HTTP协议 98 FTP协议 Django学 99 100 5.TCP协议 101 流式协议,可靠协议 102 基于TCP协议通讯,必需先建立双向通道 103 104 三次握手四次挥手 105 106 三次握手建连接 107 108 四次挥手断连接 109 110 6.星轨.-明星出轨
readme
1 网络编程 2-3 2 并发编程 4-5 3 数据库(Mysql) 5d 4 优酷项目 3 5 考试 1 6 前端 7 7 Django 10 8 bbs 5 9 crm 5