一、HTTP与HTTPS的区别?
-
概念:
- HTTP:超文本传输协议,是互联网应用最广泛的一种网络协议,所有的www文件都必须遵守这
个标准,是一个客户端与服务器端请求和应答的标准(TCP),用于从www服务器传输超文本到本地
浏览器的传输协议。 - HTTPS:安全套接字层超文本传输协议,以安全为目标的HTTP通道,简单的说就是HTTP安全版,
即在HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就是SSL。
- HTTP:超文本传输协议,是互联网应用最广泛的一种网络协议,所有的www文件都必须遵守这
-
区别:
- HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,
为了保证这些隐私数据加密传输,网景公司设计了SSL(Sercure Socket Layer)协议用于对HTTP协议传
输的数据进行加密,从而诞生了HTTPS。具体的区别如下: - 1、HTTPS更加安全:HTTPS协议是有SSL+HTTP协议构成的可进行传输、身份认证的网络协议,要比
HTTP协议的信息明文传输更安全。 - 2、HTTPS需要申请证书:HTTPS协议需要到CA声请证书
- 3、端口不同:HTTP使用的是常见的80端口,而HTTPS连接使用的是443端口。
- 4、安全性不同:HTTP的连接很简单,是无状态的,而HTTPS+SSL协议构建的可进行加密传输、身份
认证的网络协议,要比HTTP协议更安全。
- HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,
二、Python中的异常实现机制,try–except–finally/raise/assert
-
在python的异常中,有一个万能异常:Exception,他可以捕获任意异常
-
try–except–finally:此语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理,
如果不想在发生异常时结束程序,只需要在try语句中捕获异常即可 -
raise:语句抛出一个指定的异常,我们可以使用类或实例参数调用raise语句引发异常。
-
assert断言:是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言
语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。
三、HTTP请求的无状态性
-
无状态指:每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,
它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况 -
web应用是有状态的。所以我们加入了cookies、session等机制去实现由状态的web应用。所以我们可以这么理解:
Web应用=http协议+session、cookies等状态机制+其他辅助的机制。
四、GET和POST的区别?
- GET把参数包含在URL中,POST通过request body传递参数。
- GET和POST是什么?HTTP协议中的两种发送请求的方法。
- HTTP是什么?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。
- HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。
- 区别:
-
(1) get是从服务器上获取数据,post是向服 务器传送数据。Get请求返回request-URL 所指出的任意信息
POST请求用来发送电子邮件、新闻或发送 能由交互用户填写的表格。这是唯一需要 在请求中发送body的请求。
使用post请 求时需要在报文首部content-length字段 中指出body的长度 -
(2) get是把参数数据队列加到提交表单的 ACTION属性所指的URL中,值和表单内 各个字段一一对应,在URL中可以看到。
Post是通过HTTP post机制,将表单内各 个字段与其内容放置在HTML HEADER内 一起 传送到ACTION属性所指的URL地址,
用户看不到这个过程 -
(3) 对应get方式,服务器端用 request.queryString获取变量的值,对于 post方式服务器端用request.form获取提 交的数据
-
(4) Get传送的数据量小,不能大于2KB。Post 传送的数据量较大,一般被默认为不受限 制。但理论上,IIS4中最大量为80KB,
IIS5 中为100KB。用IIS过滤器的只接受get参 数,所以一般大型搜索引擎都是用get方 式 -
(5) Get安全性非常低,post安全性相对较高。 如果这些数据是中文数据而且是非敏感 数据,那么get;
如果用户输入的数据不 是中文字符而且包含敏感数据,那么还是 使用post为好
-
五、网络请求状态码分别表示什么意思?
1xx:通知
2xx: 成功
3xx: 重定向
4xx: 请求错误
5xx: 服务器错误
六、python中json库中的load、loads、dump、dumps的区别与用法
1、json.dumps(i):
将Python类型装换成字符串类型
json中的dumps方法是用来将特定格式的数据进行字符串化的操作,比如列表字典都可以进行字符串化操作然后写入json的file;而且如果是要写入json文件就必须要进行dumps操作;
2、json.dump():
基于文件的转换,功能跟dumps功能相同
和dumps差一个s,功能作用大致上是一样,也是讲数据转换成str格式,最终包括了讲数据写入json文件的一个操作步骤,json.dump(data, file-open,ascii=False),可以包含三个属性,第三个ascii是用来避免出现unicode写入的乱码的;
3、json.load():
基于文件的转换,功能跟loads功能相同
load()函数用于从json文件中读取数据,json.load(file-open)即可,这样可以还原在json文件中的原本的数据格式,诸如列表或者字典;file在open的时候最好是注意用encoding=‘utf-8’的编码,这样出来的数据就是原来的数据,而不会出现乱码;
4、json.loads():
将字符串转换成Python类型(list,dict)
loads用来将字符型数据转换成原来的数据格式,诸如列表和字典,就是原本是什么格式就还原成什么格式。
总之,带有s的方法都是不涉及文件操作的,没有带s的方法都是涉及到文件的操作的。平常使用的时候就经常混淆这些。