美文网首页
关于HTTP和HTTPS的记录

关于HTTP和HTTPS的记录

作者: 紫嫣沁 | 来源:发表于2021-09-01 10:57 被阅读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,三次握手,四次挥手

    相关文章

      网友评论

          本文标题:关于HTTP和HTTPS的记录

          本文链接:https://www.haomeiwen.com/subject/xoluiltx.html