HTTP和HTTPS协议
1、什么是协议
网络协议是计算机之间为了实现网络通信而达成的一种“约定”或者”规则“,有了这种”约定“,不同厂商的生产设备,以及不同操作系统组成的计算机之间,就可以实现通信。
2、什么是HTTP?
HTTP是超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。
3、什么是HTPS?
HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。
PS:TLS是传输层加密协议,前身是SSL协议,由网景公司1995年发布,有时候两者不区分。
一、HTTP的特点
1)http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。
2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。
3)灵活:HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记。
4)无连接:限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session。
HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。
5)无状态:无状态是指协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传。协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作。
6)通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性。
二、HTTPS的特点
1)基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护。
2)内容加密:采用混合加密技术,中间者无法直接查看明文内容。
3)验证身份:通过证书认证客户端访问的是自己的服务器。
4)保护数据完整性:防止传输的内容被中间人冒充或者篡改。
三、HTTPS的缺点
1)HTTPS协议多次握手,导致页面的加载时间延长近50%;
2)HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗;
3)申请SSL证书需要钱,功能越强大的证书费用越高。
4)SSL涉及到的安全算法会消耗 CPU 资源,对服务器资源消耗较大。
四、总结区别
1)HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理。http和https使用连接方式不同,默认端口也不一样,http是80,https是443。
GET和POST的区别
1)参数形式的不同。
2)发送数据大小限制不同。
3)在后台转码时不同。
4)post可以简单的修改编码方式来避免乱码,get不可以。
5)get请求会将参数跟在url后进行传递。而post请求则是作为http消息的实体内容发送给web服务器。
6)get方式提交的数据最多只有1024字节。
7)get方式请求的数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取这些数据。