梧州自助建站seo,wordpress for search,期货网站做模拟,网站结构及内容建设策略1#xff1a;HTTP/1.1 如何优化#xff1f; #xff1a;尽量避免发送 HTTP 请求#xff1b;通过缓存技术#xff0c;使用请求的 Etag 参数来处理判断缓存过期等问题#xff0c;类似304状态码就是告诉客户端#xff0c;缓存有效还能继续使用 #xff1a;在需要发送 HTTP… 1HTTP/1.1 如何优化 尽量避免发送 HTTP 请求通过缓存技术使用请求的 Etag 参数来处理判断缓存过期等问题类似304状态码就是告诉客户端缓存有效还能继续使用 在需要发送 HTTP 请求时考虑如何减少请求次数减少重定向请求次数使用代理服务器如nginx、合并请求、延迟发送请求按需访问资源 减少服务器的 HTTP 响应的数据大小无损压缩、有损压缩 2HTTPS RSA算法 握手解析 使用 RSA 密钥协商算法的最大问题是不支持前向保密HTTPS ECDHE算法支持前向保密 而且可以在第三次握手之后就发送加密应用数据节省了 1 RTT 3HTTPS 如何优化 分析性能损耗 硬件优化 选择支持 AES-NI 特性的 CPU 这个特性可以在硬件级别优化 AES 对称加密算法加快应用数据的加解密 软件优化 把软件升级成较新的版本比如将 Linux 内核 2.X 升级成 4.X将 openssl 1.0.1 升级到 1.1.1因为新版本的软件不仅会提供新的特性而且还会修复老版本的问题 会话复用 Session ID 和 Session Ticket再次重连 HTTPS 时只需要 1 RTT 就可以恢复会话TLS1.3 使用 Pre-shared Key 会话重用技术只需要 0 RTT 就可以恢复会话 这些会话重用技术虽然好用但是存在一定的安全风险它们不仅不具备前向安全而且有重放攻击的风险所以应当对会话密钥设定一个合理的过期时间 协议优化 密钥交换算法应该选择 ECDHE 算法、 将 TLS1.2 升级 TLS1.3因为 TLS1.3 的握手过程只需要 1 RTT而且安全性更强 证书优化 选用 ECDSA 证书而非 RSA 证书因为在相同安全级别下ECC 的密钥长度比 RSA 短很多这样可以提高证书传输的效率 4既然有 HTTP 协议为什么还要有 RPC 总结 纯裸 TCP 是能收发数据但它是个无边界的数据流上层需要定义消息格式用于定义消息边界。于是就有了各种协议HTTP 和各类 RPC 协议就是在 TCP 之上定义的应用层协议。 RPC 本质上不算是协议而是一种调用方式而像 gRPC 和 Thrift 这样的具体实现才是协议它们是实现了 RPC 调用的协议。目的是希望程序员能像调用本地方法那样去调用远端的服务方法。同时 RPC 有很多种实现方式不一定非得基于 TCP 协议。 从发展历史来说HTTP 主要用于 B/S 架构而 RPC 更多用于 C/S 架构。但现在其实已经没分那么清了B/S 和 C/S 在慢慢融合。很多软件同时支持多端所以对外一般用 HTTP 协议而内部集群的微服务之间则采用 RPC 协议进行通讯。 RPC 其实比 HTTP 出现的要早且比目前主流的 HTTP/1.1 性能要更好所以大部分公司内部都还在使用 RPC。 HTTP/2.0 在 HTTP/1.1 的基础上做了优化性能可能比很多 RPC 协议都要好但由于是这几年才出来的所以也不太可能取代掉 RPC。 5既然有 HTTP 协议为什么还要有 WebSocket 总结 TCP 协议本身是全双工的但我们最常用的 HTTP/1.1虽然是基于 TCP 的协议但它是半双工的对于大部分需要服务器主动推送数据到客户端的场景都不太友好因此我们需要使用支持全双工的 WebSocket 协议。 在 HTTP/1.1 里只要客户端不问服务端就不答。基于这样的特点对于登录页面这样的简单场景可以使用定时轮询或者长轮询的方式实现服务器推送(comet)的效果。 对于客户端和服务端之间需要频繁交互的复杂场景比如网页游戏都可以考虑使用 WebSocket 协议。 WebSocket 和 socket 几乎没有任何关系只是叫法相似。 正因为各个浏览器都支持 HTTP协 议所以 WebSocket 会先利用HTTP协议加上一些特殊的 header 头进行握手升级操作升级成功后就跟 HTTP 没有任何关系了之后就用 WebSocket 的数据格式进行收发数据。 6网络粘包的问题 网络粘包问题是指在数据传输过程中发送方将多个数据包连续发送到接收方接收方在接收到数据时可能会将多个数据包合并在一起接收导致数据的解析出现错误。这种问题通常发生在TCP传输协议中因为TCP是面向连接的协议发送方和接收方之间会维护一个数据传输的连接。 造成网络粘包问题的原因有多种其中包括网络延迟、数据发送速率过快、接收方处理数据的速度跟不上等。在数据发送方发送连续的数据包时由于网络延迟或其他原因接收方可能无法及时接收到所有数据包从而导致数据包的累积。当接收方接收到数据时会将多个数据包合并在一起进行处理这就造成了网络粘包问题。 网络粘包问题会影响数据的解析和处理可能导致接收方无法正确理解发送方发送的数据。为了解决网络粘包问题可以使用一些方法比如在数据包中添加消息长度信息接收方根据长度信息对数据包进行解析或者使用特定的分隔符来分割数据包接收方根据分隔符来拆分数据包。 总之网络粘包问题是在数据传输过程中可能出现的一种问题会影响数据传输的正确性和可靠性。需要通过合适的方法和技术来解决这个问题。