day3Python网络编程HTTP请求 HTTP响应 IO 位运算

HTTP请求 HTTP响应

HTTP请求 Request

 

 

 

 

 

 

请求格式

 

 

 

 

请求行

GET

/

HTTP/1.1

请求种类

请求内容

协议版本

GET

获取网络资源

POST

提交一定的附加数据,得到返回结果

HEAD

获取响应头

PUT

更新服务器资源

DELETE

删除服务器资源

CONNECT

预留

TRACE

测试

OPTTONS

获取服务器性能

请求头

意义

对请求内容的具体描述

例子

Accepttext/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

rlistwlistxlist = selectrlistwlistxlist[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. 做标志位的过滤选择


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值