web流程及http请求
1、web程序工作流程
客户端发送http请求,到服务器程序
服务器程序接收http报文,进行解析,转换成wsgi协议交给框架程序
框架程序进行各种处理,通过wsgi协议返回给服务器程序
服务器程序构造http响应报文,返回给客户端
客户端接收响应展示页面
2、django工作流程
客户端发送请求-中间件-路由系统urls.py -视图函数view-获取数据-response-中间件-客户端获取数据
3、HTTP请求
三次握手和四次挥手
三次握手
建立tcp连接时,需要客户端和服务器共发送3个包
第一次:客户端发向服务器发送连接请求
第二次:服务器向客户端发送确认请求 并等待建立连接
第三次:客户端向服务器发送确认 并开始建立连接
三次握手
四次挥手
断开连接时
第一次:客户端向服务器发送断开请求
第二次:服务器向客户端发送确认断开
第三次:服务器断开
第四次:客户端确认断开 断开连接
四次挥手
4、http介绍及报文
get请求携带参数是在url之后,没有请求体,post请求在请求体中
5、http请求方式
http/1.1协议中共定义了八种方法(有时也叫动作),来表明request-url指定的资源不同的操作方式
http/1.0定义了三种请求方法:get,post,head方法
http1.1新增了五种请求方式:options,put,delete,trace和connect方法
get :请求置顶的页面信息,并返回实体主体。
head:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
post:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。post请求可能会导致新的资源建立/或已有资源的修改
put: 从客户端向服务器传送的数据取代指定的文档的内容
delete:请求服务器删除指定的页面
connect:http/1.1协议中预留给能够将连接改为管道方式的代理服务器
options: 允许客户端查看服务器的性能。
trace :回显服务器收到的请求,主要用于测试或诊断
6、http响应状态码
2xx:成功
3xx:永久重定向
4xx:请求资源不存在
5xx:服务器错误 服务器不能完成有效的请求
7、django介绍
作用:简便、快速的开发数据库驱动的网站
优势:快速开发、mvc及mvt模式、功能全
8、django设计模式
为什么用设计模式
分工、解耦,让不同代码块之间降低耦合性,增强代码的可扩展性和可移植性,实现前后兼容
mvc:
m:model,主要封装对数据库层的访问,对数据库的数据进行增删改查操作
v:view,用于封装结果,生成页面展示html内容
c:controller,用于接收请求,处理业务逻辑,与model、view交互返回结果
mvt:
m:与mvc中的m功能相同,负责与数据库交互,进行数据处理
v:与mvc中的c功能相同,接受请求,进行业务处理,返回应答
t:template,与mvc中的v功能相同,负责封装构造要返回的html
9、虚拟环境
作用:防止冲突、解耦
win10安装
1、pip install virtualenv
2、pip install virtualenvwrapper-win
Linux安装
pip3 install virtualenvwrapper #把所有虚拟环境指定到一个目录文件夹下存放
mkdir $HOME/.virtualenvs #查找执行脚本路径,添加到~l .bashrc
find / -name virtualenvwrapper.sh #修改bash配置文件
vim -l .bashrc
'''
export WORKON_HOME=$HOME/.virtualenvs #python虚拟环境安装位置
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
source /usr/local/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本
'''
source ~/.bashrc
虚拟环境使用
mkvirtualenv test1 # 创建虚拟环境
mkvirtualenv test2env -p python3
lsvirtualenv #查看虚拟环境
workon test1 #进入虚拟环境
deactivate #退出虚拟环境
rmvirtualenv test1 #删除虚拟环境
pip list #查看虚拟环境下的安装包