HTTP 精简面试总结

 

HTTP 精简面试总结_第1张图片

HTTP2.0和HTTP1.X相比的新特性

  • 新的二进制格式(Binary Format),HTTP1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的组合。基于这种考虑HTTP2.0的协议解析决定采用二进制格式,实现方便且健壮。

  • 多路复用(MultiPlexing),即连接共享,即每一个request都是是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。

  • header压缩,如上文中所言,对前面提到过HTTP1.x的header带有大量信息,而且每次都要重复发送,HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。

  • 服务端推送(server push),同SPDY一样,HTTP2.0也具有server push功能。

HTTP和HTTPS的区别:

    (1)HTTPS 协议需要到CA(电子商务认证机构)申请证书,一般免费证书很少,需要交费。

    (2)HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的ssl加密传输协议

    (3)HTTP 和 HTTPS 使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。

    (4)HTTP 的连接很简单,是无状态的

    (5)HTTPS 协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比 HTTP 协议安全

    (6)HTTPS 内容传输经过完整性校验

    (7)HTTPS 内容经过对称加密,每个连接生成一个唯一的加密密钥

    (8)HTTPS 第三方无法伪造服务端(客户端)身份

 

HTTP + 加密 + 认证 + 完整性保护 = HTTPS

SSL采用的是一种叫做公开密钥加密的加密处理方式

 

为什么HTTPS不是那么普及?

1.加密通信与纯文本通信相比,消耗更多的CPU和内存资源

2.购买证书是要钱的!

3.少许对客户端有要求的情况下,会要求客户端也必须有一个证书.

本来简单的http协议,一个get一个response. 由于https 要还密钥和确认加密算法的需要.单握手就需要6/7 个往返.

https连接缓存不如http高效,大流量网站如非必要也不会采用,流量成本太高。

 

好处:

(1)使用https协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;

(2)https协议是由SSL+http协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。

(3)https是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本

总结:加密传输,身份认证,完整性的保护 大幅增加了中间人攻击的成本。 保证了安全性。

 

TCP和HTTP的区别和联系

TCP是传输层协议,定义数据传输和连接方式的规范。握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。

HTTP 超文本传送协议(Hypertext Transfer Protocol )是应用层协议,定义的是传输数据的内容的规范。

HTTP协议中的数据是利用TCP协议传输的,特点是客户端发送的每次请求都需要服务器回送响应,它是TCP协议族中的一种,默认使用 TCP 80端口。

好比网络是路,TCP是跑在路上的车,HTTP是车上的人。每个网站内容不一样,就像车上的每个人有不同的故事一样。

你可能感兴趣的:(计算机网络)