HTTP和HTTPS

为什么说HTTP是不安全的?
1.数据以明文传递,有被窃听的风险。
2.接收到的报文无法证明是发送时的报文,不能保障完整性,因此报文有被篡改的风险。
3.不验证通信两端的身份,请求或响应有被伪造的风险。

HTTPS有哪些缺点?
1.通信两端都需要进行加密和解密,会消耗大量的CPU、内存等资源,从而会增加服务器的负载。
2.加密运算和多次握手降低了访问速度。
3.在开发阶段,加大了页面的调试难度。因为信息都被加密了,所以使用代理工具的话,需要先解密才能看到真实信息。
4.用HTTPS访问的页面,页面内的外部资源都得用HTTPS请求,包括脚本中的Ajax请求。

HTTP/1.1有哪些不足?
1.在传输中会出现队首阻塞问题。//下面解释
2.响应不分轻重缓急,只会按先来后到的顺序执行。
3.并行通信需要建立多个TCP连接。
4.服务器不能主动推送客户端想要的资源,只能被动地等待客户端发起请求。
5.由于HTTP是无状态的,所以每次请求和响应都会携带大量冗余信息。

二进制分帧层是HTTP/2.0性能增强的关键,它是如何增强性能的。
二进制分帧层改变了通信两端交互数据的方式,原本都是以文本传输,现在要先对数据进行二进制编码,再把数据分成一个个的帧,接着把帧送到数据流中,最后对方接收帧并拼成一条消息,再处理请求。在2.0本本中,通信的最小单位是帧,若干个帧组成一条消息,若干条消息在数据流中传输,一个TCP连接可以分出若干条数据流,因此HTTP2.0只要建立一次TCP连接就能完成所有的传输。

TCP的队首阻塞是什么?
TCP是一种可靠的通信协议,中途如果出现丢包,那么发送方就会根据重发机制再发一次丢失的包,由于通信两端都是串行处理请求的,因此接收端在这个包到达之前,不会再处理后面的请求,这种现象成为队首阻塞。

http1.1的长连接和http2.0的多路复用到底有啥区别?
长连接:同一个域名访问同一个文件的多个请求都可以复用一个tcp连接(不用像1.0一样 每次请求都需要重新建立连接)
依然存在的问题:1.多个请求只能被串行处理(数据基于文本,只能按顺序传输);2.访问多个不同的文件依然会建立多个请求。
多路复用:同一个域名访问多个文件的请求也可以复用一个tcp连接,且多个请求可以被并行处理。
并行实现原理:http2.0引入二进制数据帧和流的概念(数据帧对每一个数据进行标识,可以不按顺序传输,从而实现并行)

http2.0
提升访问速度(可以对于,请求资源所需时间更少,访问速度更快,相比http1.0)

允许多路复用:多路复用允许同时通过单一的HTTP/2连接发送多重请求-响应信息。改善了:在http1.1中,浏览器客户端在同一时间,针对同一域名下的请求有一定数量限制(连接数量),超过限制会被阻塞。

二进制分帧:HTTP2.0会将所有的传输信息分割为更小的信息或者帧,并对他们进行二进制编码

首部压缩

服务器端推送(虽然可以从服务器推送资源,一般用来提前缓存静态资源,并不能像websocket进行双向实时全双工通信。

HTTP请求头字段(常用)

HTTP响应头字段(常用)

图片说明
https://blog.csdn.net/a19881029/article/details/14002273
HTTP请求,响应报文

前端问题总结 文章被收录于专栏

总结一些前端常见的面试笔试题,来和大家分享鸭

全部评论

相关推荐

实习回来快一个月了,海投海笔海测全干了,今天面了两个真的有点心碎,好难啊! 感觉现在就是纯碰瓷互联网,焦虑,,, 阿里云快给我泡出来!!!
小肥罗:别焦虑,心态不好影响健康,心态放平哦,我可以告诉你,我大三的暑假拿了15份offer,但是我投递了300+企业,整个暑假,我都是边学习,边改简历,边刷题,边投递简历,边应对笔试,面试,一天三家公司的笔试/面试,我一天没睡几个小时,一屁股坐在房间,就像钉在那里一样。。。我也哭过,但是哭完后我也是继续努力才有15份offer的,加油兄弟!不许气馁哈
点赞 评论 收藏
分享
点赞 评论 收藏
分享
亲切的00后在笔试:我也遇到了,所以我早他一步查看图片
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务