Python 进阶篇-系列文章全篇
🍑 Linux操作系统与常用命令
🍑 Linux系统性能定时监控升级,源码可复制
🍑 tcp网络程序的实现步骤,看这个就够了
🍑 http请求与响应,tcp3次握手&四次挥手
🍑 Python进阶:利用线程实现多任务
🍑 Python进阶:进程的状态及基本操作
🍑 Python进阶:一文搞懂迭代器、生成器、协程(附案例)
🍑 数据库:了解MySQL数据类型、SQL命令
🍑 从零开始学SQL:where条件查询与连接
🍑 Python网络开发基础,实现udp聊天器小案例
🍑 多任务版TCP服务端程序开发案例+源码
🍑 【图文教程详解】Ubuntu的两种安装方式
🍑 Python中的深拷贝与浅拷贝
希望本阶段内容帮助大家从Python基础到进阶学习,详情可以关注上方专栏 ↑ ↑ ↑
1. [重点]案例-模拟浏览器实现
-
导入模块
-
创建套接字
-
建立连接
-
拼接请求报文
-
发送请求报文
-
接收服务器返回的数据
-
处理(截取)
-
保存
-
关闭连接
2. [重点]返回固定数据
-
导入模块
-
创建套接字
-
设置地址可以重用
-
绑定端口和IP
-
设置套接字为被动
-
开始接受客户端连接
-
接受客户端发送的请求协议
-
判断客户端是否已经下线
-
拼接响应报文
-
响应行
-
响应头
-
响应空行
-
响应主体
-
-
发送响应报文
-
关闭和当前客户端的连接
3. [重点]返回固定页面
-
改进 返回固定内容 的代码
- 第一步,拷贝 static 到项目目录下
- 改进代码如下:
-
- 第三步
4. [重点]返回指定页面
-
核心思路,获取请求的资源路径
-
解码请求的协议
-
得到请求行
-
拆分请求行,得到请求的资源路径
-
打开指定的文件
-
5. [重点]返回指定页面存在的问题
-
访问的页面不存在
-
默认首页,直接访问 地址
192.168.150.31:8080
不加路径报错
6. [重点]面向对象封装
- 新建类 WebServer
- 创建对象方法
__init__()
、start() - 修改代码
- 把套接字初始化的操作,放到
__init__()
中 - 把接受客户端连接的代码 放到
start()
方法中 - 把 request_handler() 函数,变成 对象方法(选中缩进)
- 在 main() 函数中创建 对象 ws = WebServer() 然后启动 ws.start()
- 把套接字初始化的操作,放到
7. [重点]服务端基础框架构建-1
- 创建 application 文件夹
- 在 application文件夹中 创建 app.py
- app.py application函数
- 修改 request_handler() 把核心代码放到 app模块 application函数中
- app.py 模块中,创建 parse_request() 专门用于解析请求的资源路径
8. [重点]服务端基础框架构建-2
- 在application 文件夹中创建一个utils 模块
- utils 模块中创建 create_http_response() 函数,专门用来拼接响应报文
- 修改 app模块的application的返回响应协议的部分
9. [重点]给服务器加上命令行参数
-
导入模块 sys
-
sys.argv 获取系统传递给程序的参数,并且判断个数是否正确
-
判断端口号是否是纯数字
-
保存端口号
-
启动服务器的时候指定端口号
[重点]案例:网游服务器
-
拷贝游戏资源到 项目目录中
-
在 webserver 初始化方法中,配置一个字典
-
初始化项目的方法
-
修改 request_handler() 代码
-
设置浏览器优先的解析方式