HTTP和HTTPS协议:面试问题(请简述http和https,https如何加密的?)

HTTP和HTTPS发展历史

1、什么是HTTP?

http是超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的www文件都必须遵从这个标准。设计http的初衷是为了提供一种发布和接收html页面的方法

还有一种问题:tcp和udp的区别是什么?
Udp:首先udp协议是面向无连接的,也就是说不需要在正式传递数据之前先链接起双方。然后udp协议只是数据报文的搬运工,不保证有序且不丢失的传递给对端,并且udp协议也没有任何控制流量的算法,总的来说udp相对于tcp更加轻便。
Tcp:tcp基本是和udp反着来的,建立连接和断开连接都需要进行握手。在传输数据过程中,通过各种算法保证数据的可靠性,当然带来的问题就是相对于udp效率没有那么高。
对tcp而言(我自己想的不必记住):syn=1:当syn=1,ack=0时,表示当前报文段是一个请求报文。当syn=1,ack=1时,表示当前报文段时一个同意建立连接的应答报文。

2、http1和http2的请求响应

在这里插入图片描述
可以看出:http/2用的是多路复用:通过单一的http/2连接请求发起多重的请求响应消息,多个请求stream共享一个tcp连接,实现多留并行而不是依赖建立多个tcp连接。
http:request 请求报文

get /admin_ui/rdx/core/images/close.png HTTP/1.1
accept:/
referer:http://xxx.xxx.xxx.xxx/menu/neo
accept-language:en-US
host:xxx.xxx.xxx.xxx
connection:keep-alive
cookie:

2.1 http1.0和2.0的区别
2.1.1、多路复用

HTTP2.0使用了多路复用技术,做到同一个链接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个量级。HTTP1.1可以建立几个TCP链接,来支持处理更多的并发请求,但是TCP本身链接也是有开销的。

2.1.2、头部数据压缩

在HTTP1.1中,HTTP请求与响应都是由状态行、请求/响应头部、消息体三部分组成。一般而言,消息主题都会经过gzip压缩,或者本身传输就是压缩后的二进制文件,但是状态行和头部却没有经过任何压缩,直接以纯文本传输。随着web功能的越来越复杂,每个页面产生的请求越来越多,导致消耗头部的流量越来越多,尤其是每次都要传输userAgent、cookie这类不会发生频繁的改动,完全是一种浪费。
HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积就小了,在网上传输的效率就更快了。

2.1.3服务器推送

服务器推送是一种在客户端请求之前发送数据的机制。网页使用了很多资源:HTML、样式表、脚本、图片等等。在HTTP1.1中这些资源每一个必须明确的请求,这是一个很慢的过程,浏览器从获取HTML开始,然后在他解析和评估页面的时候,增量的获取更多的资源。因为服务器必须等待浏览器做出每一个请求,网络是经常空闲的和为充分利用的。
为了改善延迟,HTTP2.0引入serve push,它允许服务端推送资源给浏览器,在浏览器明确的请求之前,免得客户端再次创建链接发送请求到服务器端获取,这样客户端就可以直接从本地加载这些资源,而不是通过网络。

3、什么是HTTPS?

https是一种通过计算机网络进行安全通信的传输协议,经由HTTPS进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私和与完整性。
PS:TLS是传输层加密协议,前身是SSL协议。

4、HTTP VS HTTPS

HTTP特点:

  1. 无状态:协议对客户端没有状态存储,对事物处理没有“记忆能力”,比如访问一个网站需要反复进行登录。
  2. 无链接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求统一资源,服务器并不能区别是否已经响应过用户的请求。所以每次需要重新响应请求,需要消耗不必要的时间和流量。
  3. 基于请求和响应:基本的特征,由客户端发起请求,服务端响应。
  4. 简单快速、灵活
  5. 通信使用明文,请求和响应不会对通信方进行确认、无法保护数据的完整性

HTTPS特点:
基于http协议,通过ssl或tls提供加密处理数据、验证对方身份以及数据完整性保护。

1、内容加密:采用混合加密技术,中间者无法直接查看明文内容。
2、验证身份:通过证书认证客户端访问的是自己的服务器。
3、保护数据完整性:防止传输的内容被中间人冒充或篡改。

混合加密:结合非对称加密和对称加密技术。客户端使用对称加密生成密钥对传输数据进行加密,然后使用非对称加密的公钥再对密钥进行加密,所以网络上传输的数据是被密钥加密的密文和公钥加密后的密码密钥,因此即使被黑客截取,由于没有私钥,无法获取到加密明文的秘钥,便无法获取明文数据。

5、综合考虑

安全考虑:

1.https协议的加密范围比较有限,在黑客攻击,拒绝服务攻击,服务器劫持等方面几乎起不到任何作用。
2、SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。

成本考虑

  • SSl证书需要购买申请,功能越强大的证书费用越高。
  • HTTPS链接缓存不如HTTP高效,流量成本高。
  • HTTPS协议握手阶段比较费时,对网站的响应速度有影响,影响用户体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值