关于HTTP和HTTPS的记录

2021-09-01  本文已影响0人  紫嫣沁

1,状态码:

200: 请求成功

301:  请求的对象被永久的转移了,URL重定向

302: 请求的对象暂时被转移

404:  被请求的文件已经不在服务器上了

505:  服务器不支持


2,Get和Post:

get请求参数一般拼接在URL后边,post请求一般放在body中

get请求长度限制为2048,post请求长度无限制

get请求一般是获取数据的,是幂等的,不会引起服务端的变化,是安全的,post一般是提交数据的,非幂等的,会引起服务端变化,非安全的

在响应时,get请求产生一个TCP数据包,浏览器会把header和实体主体一起发出去,而Post请求产生两个数据包,浏览器先发送header,服务器响应100,浏览器再发送实体主体,服务器响应200ok

Get的URL可以手动输入,比较方便,还可以被缓存


3,HTTP和HTTPS

HTTP是无状态的:即请求是没有记忆能力的,每次请求都是独立的,不会保存客户端之前的状态

HTTP是无连接的:即持久链接,每个链接可以请求多个请求-响应事务

HTTP持久链接怎么判断一个请求结束?

答:通过Content-Length,或者chunked分块传输,当数据传输完了会传一个空的数据块,客户端收到空的数据块就知道传输完了

HTTPS :安全超文本传输协议,= HTTP+SSL/TLS,是安全的HTTP。

SSL:安全套接层传输协议,是为网络通信提供安全及数据完整性的一种安全协议

HTTP协议:应用层

SSL协议:位于TCP/IP协议与各种应用层协议之间

TCP协议:传输层

UDP协议:传输层

IP协议:网络层


HTTPS链接建立的流程:

1,客户端访问HTTPS连接

客户端会把协议版本号,客户端支持的加密算法,和随机数C发给服务端

2,服务端发送证书给客户端

服务端收到客户端的加密算法后,会和自己的加密算法列表进行比对,如果不符合就断开连接,如果符合就在该算法列表中选一种需要的算法发送给客户端,并把公钥和数字证书和生成的随机数S也发送给客户端

3,客户端验证server证书

4,客户端组装会话密钥

就是用服务端的公钥生成一个前主秘钥,并通过该前主秘钥和随机数组装成会话秘钥

5,客户端将前主秘钥加密发送给服务端(非对称加密)

6,服务端通过私钥解密得到前主秘钥

7,服务端组装会话秘钥

至此,服务端和客户端都已经知道了用于此次会话的主秘钥。

8,开始数据传输(对称加密)

会话密码 = 随机数C+随机数S+前主密钥

最终保证两边的会话密钥是一样的

总结:客户端先把支持的加密算法列表和随机数C发给服务器,服务器选择一种加密算法发给客户端并把数字证书和随机数S也发给客户端,客户端验证数字证书没问题后,开始组装前主密钥和会话密码,之后前主密钥会用非对称加密法加密后发给服务端,会话密码保留用于进行会话,服务器那边收到加密后的前主秘钥后会对它进行解密,然后得到前主秘钥,然后通过前主秘钥+S+C得到会话秘钥

HTTPS建立连接过程使用非对称加密,后续通信使用对称加密,非对称加密是一种很耗时的加密方式


4,对称加密和非对称加密

对称加密:DES,IDEA,3DES

非对称加密:RSA,ECC,DSA

数字证书:为了确保客户端能够确认公钥就是想要访问的网站的公钥,在证书链中的顶端的就是根 CA。


5,三次握手,四次挥手

上一篇下一篇

猜你喜欢

热点阅读