http和https的概念
HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
http工作流程
第一步:地址解析,从url中解析协议名称,主机名,端口号和对应的页面地址。
第二步:封装http的请求数据包:这一步主要是封装自己的信息,比如在post请求时,我们会塞进一个data据。
第三步:封装tcp包,建立连接:因为是基于tcp的协议,网络连接是tcp来完成的,必然要封装成tcp包,然后tcp再做自己工作,比如封装ip包,一层层往下传。
第四步:发送请求:数据整好了,连接也完事了,那就发送action了。
第五步:服务端响应:接受到请求,然后给出响应。
第六步:服务端关闭tcp的连接:一次通信完成之后,若conection的设置不是keep-live的话,服务端会自动关闭tcp的连接。
https工作流程
步骤1:向服务器发起请求。
步骤2-3:取出公有密钥及证书并发送给客户端。
步骤4:客户端判断公有密钥是否有效,无效则显示警告。有效则生成一个随机数串,并以此生成客户端的共享密钥。
步骤5:用步骤3得到的公有密钥对该随机数串加密,发送到服务器。
步骤6:服务器得到加密报文,用私有密钥解密报文,得到随机数串,并以此生成服务器端的共享密钥。此时客户端和服务端拥有相同的共享密钥,可以用该共享密钥进行安全通信。
步骤7-8:服务器对响应进行加密,客户端对报文进行解密。
http和https的区别
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输。https则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式用的端口也不一样。前者(http)是80,后者(https)是443。
http的连接很简单,是无状态的 。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 ,要比http协议安全。
http or https
1.通信速率降低
HTTPS 除了TCP连接,发送请求,响应之外,还需要进行SSL通信。整体通信信息量增加。
加密过程消耗资源
3.每个报文都需要进行加密和解密的运算处理。比起HTTP会消耗更多的服务器资源。
证书开销
4.如果想要通过HTTPS进行通信,就必须向认证机构购买证书。
基于以上三点,如果通信中传输的是非敏感的信息,则会较多地选择HTTP协议。而当通信过程中会涉及个人隐私或其他安全信息时,则会选择用HTTPS。当然,访问量也是考虑的因素之一,如果访问量很大,而每个报文都进行加密解密,也会给服务器带来很大的负担。
http
HTTP请求方法
HTTP 响应头信息
eg: