HTTP/1.1的优点是「简单,灵活和易于扩展,应用广泛和跨平台」
1.简单
HTTP基本的报文格式就是header+body,头部信息也是key+value简单文本的形式,易于理解
2.灵活和易于扩展
HTTP协议里的各类请求方法,URI/URL、状态码头字段等每个组城要求都没有被固定死,都允许开发人员自定义和扩充
3.应用广泛和跨平台
缺点:「无状态,明文传输」,同时还有一大缺点,「不安全」。
1.无状态双刃剑
好处是因为服务器不回去记忆http的状态,所以不需要额外的资源来记录状态信息,能减轻服务器的负担,能够把更多的CPU和内存用来对外提供服务
坏处是完成关联性操作时会非常麻烦。
解决方案:cookie技术,通过请求和响应报文中写入cookie信息来控制客户端的状态。
2.明文传输双刃剑
传输过程中的信息是可方便阅读的,但也容易被窃取。
3.不安全
通信使用明文(不加密),内容可能被窃听
不验证通信双方的身份,可能遭遇伪装
无法证明报文的完整性,可能被篡改
HTTP/1.1的性能如何?
1.长连接,减少握手挥手开销
2.管道网络传输,多个请求可以不必等其回来就接着发出后续,减少整体的响应时间。
不过,HTTP/1.1 管道解决了请求的队头阻塞,但是没有解决响应的队头阻塞。
HTTP与HTTPS有哪些区别?
HTTP是超文本传输协议,信息是明文传输,存在安全风险的问题,HTTPS则解决HTTP不安全的缺陷,在TCP和HTTP网络层之间加入SSL/TLS安全协议,使得报文能够加密传输。
HTTP三次握手即可链接,HTTPS在TCP握手之后,还要进行SSL/TLS的握手,才可进入加密报文传输。
默认端口不一样,HTTP:80,HTTPS:443
HTTPS需要向CA申请数字证书,来保证服务器的身份是可信的。
HTTPS是如何解决HTTP的问题的?
1.混合加密方式
在通信建立前采用非对称加密交换「会话密钥」
通信过程中使用对称加密的会话密钥的方式加密明文数据。
2.摘要算法+数字签名
非对称加密过程:
一个是公钥,是可以分发给所有人的,一个是私钥,必须由本人管理,不可泄露
两个密钥可以双向加解密,但是目的不同:
公钥加密,私钥解密,是为了保证内容传输安全
私钥加密,公钥解密,是为了保证消息不会被冒充,因为只有匹配的公钥私钥才能解密。
3.数字证书
数字证书包含了公钥,通过数字证书的方式保证服务器公钥的身份,解决冒充的风险。