凡科建站官网入口,西安网站优化推广方案,网站数据库有哪些,网站设计网HTTP1.1
优点#xff1a;
整体方面#xff1a;简单、灵活和易于扩展、应用广泛和跨平台
性能方面#xff1a;长连接、管道网络传输解决请求队头阻塞#xff08;没有使用#xff09;
缺点#xff1a;
安全方面#xff1a;无状态、明文窃听、伪装、篡改
性能方面
整体方面简单、灵活和易于扩展、应用广泛和跨平台
性能方面长连接、管道网络传输解决请求队头阻塞没有使用
缺点
安全方面无状态、明文窃听、伪装、篡改
性能方面
Header未经压缩就发送只能压缩body头部冗长每次发送相同的首部造成比较多的性能浪费响应队头阻塞没有优先级控制权服务器只能被动响应
如何优化
使用缓存本地缓存与协商缓存避免发送HTTP请求通过减少重定向次数、合并请求、延迟发送请求按需获取的方式在需要发送HTTP的时候减少请求次数减少服务器HTTP响应的数据大小有损压缩和无损压缩 HTTPS
与HTTP的区别 HTTP 是超文本传输协议信息是明文传输存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议使得报文能够加密传输。 HTTP 连接建立相对简单 TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后还需进行 SSL/TLS 的握手过程才可进入加密报文传输。 两者的默认端口不一样HTTP 默认端口号是 80HTTPS 默认端口号是 443。 HTTPS 协议需要向 CA证书权威机构申请数字证书来保证服务器的身份是可信的。
解决了HTTP的问题
窃听风险比如通信链路上可以获取通信内容用户号容易没。篡改风险比如强制植入垃圾广告视觉污染用户眼容易瞎。冒充风险比如冒充淘宝网站用户钱容易没。
如何优化
HTTPS与HTTP多了一个TSL握手过程目的是为了通过非对称加密协议交换对称加密的秘钥这个过程最长会花费掉2RT的时间。这个过程是会产生新能消耗的后面的对称加密环节消耗非常小可以忽略。 除了握手过程会发生网络延时同时一些步骤也会产生性能损耗。
具体体现为
对于 ECDHE 密钥协商算法握手过程中会客户端和服务端都需要临时生成椭圆曲线公私钥客户端验证证书时会访问 CA 获取 CRL 或者 OCSP目的是验证服务器的证书是否有被吊销双方计算 Pre-Master也就是对称加密密钥 硬件层面的优化因为 HTTPS 是属于计算密集型应该选择计算力更强的 CPU而且最好选择支持 AES-NI 特性的 CPU这个特性可以在硬件级别优化 AES 对称加密算法加快应用数据的加解密。
软件层面的优化把软件升级成较新的版本比如将 Linux 内核 2.X 升级成 4.X将 openssl 1.0.1 升级到 1.1.1
协议层面的优化
密钥交换算法应该选择 ECDHE 算法而不用 RSA 算法因为 ECDHE 算法具备前向安全性而且客户端可以在第三次握手之后就发送加密应用数据节省了 1 RTT。将 TLS1.2 升级 TLS1.3因为 TLS1.3 的握手过程只需要 1 RTT而且安全性更强。
对于证书优化的方向
服务器应该选用 ECDSA 证书而非 RSA 证书因为在相同安全级别下ECC 的密钥长度比 RSA 短很多这样可以提高证书传输的效率服务器应该开启 OCSP Stapling 功能由服务器预先获得 OCSP 的响应并把响应结果缓存起来这样 TLS 握手的时候就不用再访问 CA 服务器减少了网络通信的开销提高了证书验证的效率
重连方面
对于重连 HTTPS 时我们可以使用一些技术让客户端和服务端使用上一次 HTTPS 连接使用的会话密钥直接恢复会话而不用再重新走完整的 TLS 握手过程。
常见的会话重用技术有 Session ID 和 Session Ticket用了会话重用技术当再次重连 HTTPS 时只需要 1 RTT 就可以恢复会话。对于 TLS1.3 使用 Pre-shared Key 会话重用技术只需要 0 RTT 就可以恢复会话。
这些会话重用技术虽然好用但是存在一定的安全风险它们不仅不具备前向安全而且有重放攻击的风险所以应当对会话密钥设定一个合理的过期时间。 HTTP2.0
优点相对于1.1
性能方面
头部压缩如果多个请求的头部相同协议会自动帮助消除重复的部分原理是维护了一个车表使用索引来记录字段如果是相同的字段直接使用索引即可报文形式采用二进制格式使用了静态表并发传输引入了Stream的概念在HTTP层解决了队头阻塞的问题服务器主动推送
缺点
一旦发生了丢包现象就会触发 TCP 的重传机制这样在一个 TCP 连接中的所有的 HTTP 请求都必须等待这个丢了的包被重传回来。
HTTP/3
QUIC协议优点
把HTTP下面的TCP协议换成了UDP解决了队头阻塞问题同一个连接上面并发传输多个Streamhttp请求不同的Stream不会互相影响更快的连接建立解决TCP与TLS的握手时间延迟连接迁移