Http和Https

1.http

http是什么,是一个protocol,最后一个p,也就是协议。我们知道客户端和服务端是主动被动的关系,我们上网实际上是用客户端去主动发送请求给服务端,服务端被动的响应,也就是说,客户端需要发送请求报文,而服务端响应报文,这其中http规定了请求和响应报文的格式。

格式是什么样?

http规定了请求报文包含启始行,响应报文对应也有起始行,其中请求报文包含的是方法,客户端请求服务器资源执行的某种操作,请求url 资源的路径,http版本。响应报文包含的是http版本,这里可能和请求http版本不一致,状态码以及原因短码比如 404 NOTFOUND。

然后就是请求和响应首部,也就是我们所谓的请求头和响应头,包含请求响应的属性和条件。然后就是主体,get请求不需要主体如果是post需要加body响应也会有对应的响应主体。

那么请求报文是通过网络通讯发送的,也就是分为四个层面,应用层,也就是我们用户在浏览器输入地址之后,浏览器去访问服务器, 带着这样的请求头。

传输层,定义运输数据的方式,在传输层里面选协议,,TCP或者UDP,绝大多数http用TCP(三次握手)定义传输的方式。

非持久连接:服务器对请求逐个处理,处理完一个就关闭连接,一次一个请求,但是这种方式很难满足我们发送请求的需要。一般http默认持久连接

持久连接,服务端返回消息,客户端继续发起下一个请求,如果没有请求了。发送connection:close关闭。

http最初设计的时候,互联网内连接的主机如果都访问一个服务器,如果服务器记录每一个主机信息的话就会崩溃,所以http是无状态的,也就是我们每次访问都需要登录。也就是这种情况下,有了Cookie技术。也就是在请求头里面加上Cookie,然后服务器可以通过Cookie去判断你是否登录。前端网站一般服务器生成jwt,服务器生成jwt然后保存jwt密文,然后jwt存到响应头里面发送给浏览器,浏览器存到Cookie里面,然后浏览器访问的时候如果登录过就不用再次登录了。

2.https

https并不是单独的协议,http是明文传输,不够安全,https是在http基础上用TLS和SSL进行了加密,这样通讯不容易受到拦截和攻击。

https的核心是TLS和SSL,SSL是TLS的前身,既然https是加密那么我们就需要知道对称加密和非对称加密。

对称加密,发送放和接收方用同一种规则算法G去对数据进行加密和解密。

非对称加密,比如服务器里面有公钥和私钥,当我们客户端发送请求的时候,服务器响应的时候把公钥放在响应体里面给客户端,然后客户端用公钥对数据进行加密,然后发送给服务器,服务器通过私钥去解密。这样就是非对称加密。

加密如图,还有一点当我们访问比如bilibili我们可能输入bi1ibi1i那么就是域名错误,可能进入非法网站。https有一个解决办法就是SSL证书,服务器需要去申请SSL证书保全源服务器数据文件,证明自己网站是合法网站。

TCP握手之后建立连接开始TLS握手,这是应用层的协议建立安全通信信道

当客户端第一次给服务器发送请求的时候,在这之前会先去TLP握手,怎么握手呢?首先客户端发送一个Client Hello包含自己能提供的加密套件以及生成的第一随机数还有支持的TLS版本给服务器。

然后服务器响应Server Hello包含选择的TLS版本和选择的加密套件以及服务器生成的第二随机数,然后再次响应把SSL证书给到客户端,然后再次响应把公钥给客户端,然后响应完毕响应。

客户端发送请求携带者公钥加密的数据以及随机生成的第三随机数给服务器,然后服务器和客户端现在都有第一随机数和第二随机数和第三随机数也就是预主密钥然后生成会话密钥。

之后就是对称加密了通过会话密钥。就可以连续发送请求以及服务器响应了。

总结HTTP就像我们在大街上讲话,HTTPS就像在密室里面沟通还能确定对方的身份。

相关推荐
tongyiixiaohuang18 小时前
供应商主数据同步实战:从易快报到金蝶云星空的单一策略落地
java·网络·数据库
一只鹿鹿鹿19 小时前
智算算力、AI-芯片与产品解析(PPT文件)
大数据·运维·网络·人工智能·物联网·1024程序员节
开源必胜19 小时前
Socket、异步非阻塞 I/O 与 NGINX、Netty 模型
网络·tcp/ip·nginx
沫璃染墨19 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
蓝祁子yoky20 小时前
Qt学习日记 Day13:网络编程(一)-TCP基础与Socket实战
网络·qt·学习
箓维20 小时前
TCP Socket的进阶实现
网络·笔记·tcp/ip
小羊没烦恼!21 小时前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
小Ti客栈21 小时前
Netty 零拷贝原理与实战
运维·服务器·网络
国科安芯21 小时前
商业光学遥感载荷焦平面供电链的低噪声稳压器研究综述——以国科安芯ASP7A84AS型3A低压差线性稳压器为器件级参照
大数据·网络·嵌入式硬件·平面·卫星·商业航天·抗辐射
静以修身zzz21 小时前
计算云服务
运维·网络·云计算