首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用 Spring Boot 2.1 介绍 Servlet 4.0 的服务器推送

作者: Naveen Katiyar

译者:Darren Luo

想要了解有关新 Servlet 4.0 的更多信息?查看这篇文章,了解更多关于在 Spring Boot 2.1 中使用服务器推送的信息。

在本文,我们将讨论服务器推送技术,它实际上是 HTTP/2 规范的一部分。

因为 HTTP/2,Servlet 最重要的特性是服务器推送功能的实现。该技术背后的概念:如果客户端/浏览器请求某个资源,服务器预先假设其他关联资源也可能很快被请求。由于这个假设,它在它们实际需要之前将它们推入缓存(称为“缓存推送”)。例如,很可能在网页加载时,它最终可能请求 CSS 文件或其他图片。同时服务器主动开始推送这些资源的字节,不再需要客户端发出明确的请求。

Servlet 4.0 是 Java EE 8 的一部分,因此,它需要 Java 9+ 以及 Spring 5.x。Tomcat 支持 HTTP/2,但是它必须配置为使用 TLS。Tomcat 9 只能在 Spring Boot 2.1.0 中使用,但是它尚未发布,我们需要在本文中使用里程碑版本。

在 Spring Boot 中开启 TLS 支持只是 application.properties 文件中的几个属性的问题。只需使用以下代码来启用它:

假如李不知道如何生成 keystore.jks,清点击此链接。

要在 Tomcat 中启用 HTTP/2 支持,需要添加以下属性。

在使用 TLS 配置我们的服务器之后,我们很高兴公开我们的 endpoint,其由 HTTP/2 技术提供支持。

我们还配置另一个类似于上面的 endpoint,它主要使用传统的 pull 技术,并尝试在客户端浏览器上找出差异。

使用 Firefox dev tool,我们可以确认,对于 endpoint

,只有一个请求是从浏览器发起的:

然而,当我们调用 ,会触发两个请求。

总而言之,当使用服务器推送技术结合适当的缓存技术,我们可以大大增强页面加载时间和我们网站的整体响应能力。

可在这里找到示例代码。

下面是译者我自己补充的一点点内容:

可能有部分读者不知道怎么使用 Spring Boot 的里程碑版本,我在这里贴一个 文件供大家参考使用:

PS:图片在 google 的服务器上,可能看不到,该怎么做大家都知道的啦~

关注公众号

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181015B09A9500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券