HTTP请求 HTTP响应
HTTP请求 Request | |||||
请求格式 |
请求行 | GET | / | HTTP/1.1 | |
请求种类 | 请求内容 | 协议版本 | |||
GET | 获取网络资源 | ||||
POST | 提交一定的附加数据,得到返回结果 | ||||
HEAD | 获取响应头 | ||||
PUT | 更新服务器资源 | ||||
DELETE | 删除服务器资源 | ||||
CONNECT | 预留 | ||||
TRACE | 测试 | ||||
OPTTONS | 获取服务器性能 | ||||
请求头 | 意义 | 对请求内容的具体描述 | |||
例子 | Accept:text/html | ||||
空行 |
| ||||
请求体 | 提交具体的请求参数 |
HTTP响应 | ||||
请求格式 |
响应行 | 反馈具体响应情况 | ||
HTTP/1.1 | 200 | Ok | ||
版本信息 | 响应码 | 附加信息 | ||
| 1xx | 提示信息 表示请求以及接受 | ||
2xx | 响应成功 | |||
3xx | 响应需要重新请定向 | |||
4xx | 客户端错误 | |||
5xx | 服务器错误 | |||
常见响应码 | 200 成功 404 请求页面不存在 401 没有访问权限 500 服务器发送位置错误 503 服务器暂时无法执行 | |||
响应头 | 意义 | 对响应信息的具体描述 | ||
例子 | e.g cache – control:private | |||
空行 |
| |||
响应体 | 意义 | 将客户想要的内容进行返回 |
!!!http要求:
知道什么是HTTP协议,功能特点
知道请求和响应的格式和作用
知道请求头的种类,基本的响应码的意义
了解http 请求和响应的完整过程
IO input output
意义 | 凡是在内存中存在数据交换的操作都可以认为是IO操作 | |||
例如 | 内存和磁盘交互 | 读写 read write | ||
内存和终端交互 | print input | |||
内存和网路交互 | recv send | |||
IO密集型程序 | 程序的执行过程中进行大量的IO操作,而只有较少的cpu运算 | |||
特点 | 消耗计算机资源较少,运行时间长 | |||
CPU密集型程序 (计算密集型) | 程序运行中需要大量的cpu 运算,IO操作较少。 | |||
特点 | 消耗cpu 资源多,运行速度快 | |||
IO分类 | 阻塞IO | 默认形态 效率很低的一种IO | ||
阻塞情况 | *因为某种条件没有达到造成的阻塞 e.g. input accept recv | |||
处理IO事件的时间消耗较长带来的阻塞 e.g. 文件的读写过程,网络数据发送过程 | ||||
非阻塞IO | 通过修改IO事件的属性, 使其变为非阻塞状态, 即避免条件阻塞的情况 | |||
使用情况 | *非阻塞IO往往和循环搭配使用,这样可以不断执行部分需要执行的代码,也不影响代码的运行 | |||
设置套接字为 非阻塞 | s.setblocking() | |||
功能 | 设置套接字的阻塞状态 | |||
参数 | 设置为False则套接字调用函数为非阻塞 | |||
超时检测 | 将原本阻塞的IO设置一个最长阻塞等待时间,在规定时间内如果达到条件则正常执行,如果时间到任未达到条件则结束阻塞 s.settimeout(sec) 功能:设置套接字超时时间 参数:设置的时间 示例:timeotc.py缺 | |||
IO多路复用 | 定义 | 同时监控多个IO事件,当哪个IO事件准备就绪就执行哪个IO事件,此时形成多个IO事件都可以操作的现象,不必琢个等待执行 | ||
准备就绪 | IO事件即将发生的临界状态 | |||
事件IO |
| |||
异步IO |
| |||
|
|
import select
select -----à winows linux unix
poll -----à linux unix
epoll ----à linux unix
rlist,wlist,xlist = select(rlist,wlist,xlist[,timeout])
功能 | 监控IO事件 | 阻塞等待IO事件发生 | |
参数 | rlist | 列表 | 存放被动等待处理的IO事件 |
wlist | 列表 | 存放需要主动处理的IO | |
xlist | 列表 | 存入如果打算异常需要处理的IO | |
返回值 | rlist | 列表 | rlist 中准备就绪的IO |
wlist | 列表 | wlist中准备就绪的IO | |
xlist | 列表 | Xlist 中准备就绪的IO |
注意事项:
1、 IO多路复用 处理IO的过程中不应有死循环出现,使一个客户端长期占有服务端
2、 IO 多路复用是一种并发行为,但是是单进程程序,效率较高
位运算
意义 | 按照二进制位来进行运算操作 |
运算符号 | & 按位与 | 按位或 ^ 按位异或 << 左移 >> 右移 |
例子 | 11 1011 14 1110 11 & 14 --》10 11 | 14 --》15 11 ^ 14 --> 5 11 << 2 --> 44 14 >> 2 --> 3 |
使用 | 1. 在底层做硬件寄存器的操作 2. 做标志位的过滤选择 |