diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/1\347\217\255/1\347\217\255_7/1\347\217\255_7-\347\254\254\344\272\224\345\221\250/lesson5-3.py" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/1\347\217\255/1\347\217\255_7/1\347\217\255_7-\347\254\254\344\272\224\345\221\250/lesson5-3.py" new file mode 100644 index 0000000000000000000000000000000000000000..41454b1604cdce8cd7a4a6235c64f0b4d4bf2c91 --- /dev/null +++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/1\347\217\255/1\347\217\255_7/1\347\217\255_7-\347\254\254\344\272\224\345\221\250/lesson5-3.py" @@ -0,0 +1,43 @@ + +# 用协程实现一个计算平均数的函数 + +def ctrip_avg(): + total = 0 + length = 0 + while True: + try: + result = yield total / length + except ZeroDivisionError: + result = yield 0 + total += result + length += 1 + +avg_x = ctrip_avg() +next(avg_x) +print(avg_x.send(10)) +print(avg_x.send(4)) + + + +# 编写一个 asyncio 异步程序 + +import asyncio + +class Response(): + status_code = 200 + +async def demo(index): + print(f'第{index}次模拟发送') + res = Response() + await asyncio.sleep(1) + print(f'response_index:{index},response status_code:{res.status_code}') + return res.status_code + +loop = asyncio.get_event_loop() +tasks =[] + +for i in range(10): + tasks.append(demo(i)) +loop.run_until_complete(asyncio.wait(tasks)) + +loop.close() \ No newline at end of file diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/1\347\217\255/1\347\217\255_7/1\347\217\255_7-\347\254\254\345\205\255\345\221\250/.keep" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/1\347\217\255/1\347\217\255_7/1\347\217\255_7-\347\254\254\345\205\255\345\221\250/.keep" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/1\347\217\255/1\347\217\255_7/1\347\217\255_7-\347\254\254\345\205\255\345\221\250/lesson6-1.py" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/1\347\217\255/1\347\217\255_7/1\347\217\255_7-\347\254\254\345\205\255\345\221\250/lesson6-1.py" new file mode 100644 index 0000000000000000000000000000000000000000..214982dcb4c1c257fb908773a38c62ac5e697fc0 --- /dev/null +++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/1\347\217\255/1\347\217\255_7/1\347\217\255_7-\347\254\254\345\205\255\345\221\250/lesson6-1.py" @@ -0,0 +1,36 @@ + + +# 浏览器地址栏敲下url发生了什么? + +''' +客户端与服务端建立连接 + +客户端向服务端发送通信请求 + +服务端处理请求并返回结果 + +浏览器在收到响应之后,进行渲染效果 +''' + +# 五层协议有哪五层, 举例说明. + +""" +应用层:为进程间提供服务,主要指的是客户端应用和服务端应用的进程。比如网页浏览、python解释器等等 + 协议主要包括:http/https、ftp、smtp、dns等 + +传输层:为主机之间应用进程的通信提供服务 + 协议包括 TCP 和 UDP 等。 + TCP 是传输控制协议,作用是尽可能保证数据的可靠性,而且是一对一之间的面向连接,常见于文件传输和网页浏览 。 + UDP 是用户数据服务,提供无连接的服务,可以一对一、一对多、多对多等,而且无法保证数据的可靠性,常见于 实况直播、PUBG等网游。 + +网络层:决定了主机之间数据转寄、路径选择、封装和分组的数据。协议主要包括 公用IP 和 局域网IP 等 + +数据链路层:为主机之间提供数据传输服务,主要是保证数据传输的安全完整性,可以理解为 网卡 与 网卡 之间的通信服务 + 而且在比特流传输过程中难免会出现数据丢失情况,比如 掉帧、丢包等等。 + +物理层:为主机之间提供数据传输服务,这里的数据是真实有效的数据,可以理解为 光纤 与 光纤 之间的通信。 + 指的是 在局部的局域网上进行数据帧的传输,在设备节点上进行比特流的传输 + +""" + + diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/1\347\217\255/1\347\217\255_7/1\347\217\255_7-\347\254\254\345\205\255\345\221\250/lesson6-2.py" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/1\347\217\255/1\347\217\255_7/1\347\217\255_7-\347\254\254\345\205\255\345\221\250/lesson6-2.py" new file mode 100644 index 0000000000000000000000000000000000000000..e4b4f70af9f5930fdd0fc1d7496bf3258240652c --- /dev/null +++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/1\347\217\255/1\347\217\255_7/1\347\217\255_7-\347\254\254\345\205\255\345\221\250/lesson6-2.py" @@ -0,0 +1,27 @@ + + +# 三次握手 +""" +客户端 >>> 服务端 [ 服务端确认客户端发送能力,即客户端发送SYN ] +服务端 >>> 客户端 [ 服务端确认自己接收能力,即服务端发送SYN、ACK+1 ] +客户端 >>> 服务端 [ 服务端确认自己发送能力,即客户端发送ACK ] +""" + + +# 四次挥手 +""" + 主动关闭方 >>> 被动关闭方 [ 客户端要求关闭连接通道,即发送FIN ] + 被动关闭方 >>> 主动关闭方 [ 服务端已知悉,即发送ACK ] + 被动关闭方 >>> 主动关闭方 [ 服务端确认已关闭,即发送FIN ] + 主动关闭方 >>> 被动关闭方 [ 客户端已知悉,即发送ACK ] +""" + +# https 加密过程 +""" + 客户端向服务端发送通信请求 + 服务端返回公钥证书、密钥 + 客户端经 CA确认公钥证书真实性 + 客户端完成认证后,发送公钥加密数据 ( 非对称加密 ) + 服务端对加密数据进行私钥解密 + 客户端与服务端进行加密通信 +""" \ No newline at end of file