简谈见解

HTTP协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP是一个属于应用层的面向对象的协议
HTTP协议工作于客户端-服务端架构为上。
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息
URL,全称是UniformResourceLocator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。
HTTPs协议
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认[端口]及一个加密/身份验证层(在HTTP与TCP之间)。
如下过程实现发送对称加密秘钥:

1、浏览器生成一个随机秘钥2、浏览器向服务器请求公钥3、服务器向浏览器发送它的公钥。4、浏览器接收服务器发送的公钥,并使用公钥加密随机生成的对称加密秘钥,发送给服务器。5、服务器接收浏览器发送的数据,用自身私钥解密,得到,对称加密秘钥。6、至此,浏览器和服务器可以使用对称加密秘钥相互通信。

format()用法

1、转换符
%s: 字符串类型,如:"ljq"
%b: 布尔类型,如:true
%d: 整数类型(十进制),如:99
%f: 浮点类型,如:99.99
%%: 百分比类型,如:%
%n: 换行符

2、常见日期时间格式化
c: 包括全部日期和时间信息 星期六 十月 27 14:21:20 CST 2007
F: "年-月-日"格式,如:2007-10-27
D: "月/日/年"格式,如:10/27/07
r: "HH:MM:SS PM"格式(12时制),如:02:25:51 下午
T: "HH:MM:SS"格式(24时制),如:14:28:16
R: "HH:MM"格式(24时制),如:14:28

3、格式化日期字符串
b或者h: 月份简称,如
中:十月
英:Oct
B: 月份全称,如
中:十月
英:October
a: 星期的简称,如
中:星期六
英:Sat
A: 星期的全称,如:
中:星期六
英:Saturday
C: 年的前两位数字(不足两位前面补0),如:20
y: 年的后两位数字(不足两位前面补0),如:07
Y: 4位数字的年份(不足4位前面补0),如:2007
j: 一年中的天数(即年的第几天),如:300
m: 两位数字的月份(不足两位前面补0),如:10
d: 两位数字的日(不足两位前面补0),如:27
e: 月份的日(前面不补0),如:5

4、格式化时间字符串
H: 2位数字24时制的小时(不足2位前面补0),如:15
I: 2位数字12时制的小时(不足2位前面补0),如:03
k: 2位数字24时制的小时(前面不补0),如:15
l: 2位数字12时制的小时(前面不补0),如:3
M: 2位数字的分钟(不足2位前面补0),如:03
S: 2位数字的秒(不足2位前面补0),如:09
L: 3位数字的毫秒(不足3位前面补0),如:015
N: 9位数字的毫秒数(不足9位前面补0),如:562000000
p: 小写字母的上午或下午标记,如:
中:下午
英:pm
z: 相对于GMT的RFC822时区的偏移量,如:+0800
Z: 时区缩写字符串,如:CST
s: 1970-1-1 00:00:00 到现在所经过的秒数,如:1193468128
Q: 1970-1-1 00:00:00 到现在所经过的毫秒数,如:1193468128984

(1)物理层
物理层所处理的[数据单位是比特(bit),物理层向上为数据链路层提供物理链路,实现透明的比特流(bit stream)传输服务,物理层向下与物理媒体相连,要确定连接物理媒体的[网络接口的机械、电气、功能和过程方面的特性。
(2)数据链路层
数据链路层负责在单个链路上的结点间传送以帧(frame)为PDU的数据,在不太可靠的物理链路上实现可靠的数据传输。数据链路层的主要功能包括:建立、维持和释放数据链路的连接,链路的访问控制,[流量控制]和差错控制。
(3)网络层
网络层传送的PDU称为分组或包(packet),在物理网络间传送分组,负责将源端主机的报文通过中间转发结点传送到目的端。网络层是通信子网的最高层,为主机提供虚电路和数据报两种方式的服务。网络层主要负责分组转发和[路由选择],根据路由表把分组逐跳地由源站传送到目的站,并能适应网络的负载及拓扑结构的变化,动态地更新路由表。
(4)传输层
传输层传输的PDU称为报文(message),传输层为源结点和目的结点的用户进程之间提供端到端的可靠的传输服务。端到端的传输指的是源结点和目的结点的两个传输层实体之间,不涉及路由器等中间结点。为了保证可靠的传输服务,传输层具备以下一些功能:面向连接、[流量控制]与[拥塞控制]差错控制相网络服务质量的选择等。
(5)会话层
会话层在传输层服务的基础上增加控制会话的机制,建立、组织和协调应用进程之间的交互过程。会话层提供的会话服务种类包括双工、半双工和单工方式。会话管理的一种方式是令牌管理,只有令牌持有者才能执行某种操作。会话层提供会话的同步控制,当出现故障时,会话活动在故障点之前的同步点进行重复,而不必[从头开始]。
(6)表示层
表示层定义用户或应用程序之间交换数据的格式,提供数据表示之间的转换服务,保证传输的信息到达目的端后意义不变。
(7)应用层
应用层直接面向用户应用,为用户提供对各种网络资源的方便的访问服务。

Django中间件
在http请求 到达视图函数之前 和视图函数return之后,django会根据自己的规则在合适的时机执行中间件中相应的方法。
1、执行完所有的request方法 到达视图函数。2、执行中间件的其他方法3、经过所有response方法 返回客户端。
注意:如果在其中1个中间件里 request方法里 return了值,就会执行当前中间件的response方法,返回给用户 然后 报错。。不会再执行下一个中间件。
如果在request方法中遇到return,会执行最后一个中间件的response方法,然后依次回传

Flask:
1.先环境搭建
sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper
配置文件.bashrc
exportVIRTUALENVWRAPPER_PYTHN=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
执行source .bashrc让配置生效
mkvirtualenv flask_1.0
安装Flask
pip install flask
2.配置参数
Flask参数配置方式有很多种,每一种都可以达到结果,在合适的场景选择合适的配置方式。
在文件加中新建一个config.cfg配置文件,在配置文件上写上下面语句,表示开启调试模式。这样当我们程序出错的时候,就能知道错误在多少行,方便我们快速定位错误DEBUG = True
取配置参数
支持外部访问
3路由
、路由

、重定向
重定向是网站比较常用的地址跳转,比如我们在网站登录后,需要重新跳转到首页,这个功能我们就可以用到重定向
、请求方式
GET获取资源
POST 新增资源
DELETE 删除资源
OPTIONS 询问支持的方法
、PostMan使用
4转换器
default 接受字符串,默认转换器
stirng 接受字符串,跟默认一样
int 接受整数
float 同 int ,但是接受浮点数
uuid 唯一识别码
path 和默认的相似,但也接受斜线
自定义转换器
需要用到Flask这个转换器基类BaseConverter
优化转换器
转化器的规则是写死的,只能匹配UID,如果其他地方用到要匹配手机号怎么办,所以最好匹配规则是动态传递的。
转换器高级用法
转换器,可是既然转换器,我们并没有看出转换这个两个字在哪有体现,感觉不如叫适配器。但是进入BaseConverter源码里面看一下,发现有两个方法
重写to_python
我们在这个方法里面随便返回点内容
重写to_url
to_python 只要使了转换器,一直会被调用
to_url 只有在重定向了,并且路由上有参数的时候才会被调用

你可能感兴趣的:(简谈见解)