HTTP vs HTTP/2 vs HTTP/3 (QUIC)

Nginx

HTTP/1.1

HTTP/2

HTTP/3 (QUIC)

HTTPS

计算机网络协议

  1. OSI 协议簇 (7)
  2. TCP/IP 协议簇 (4)

refs

https://http3-explained.haxx.se/en/h3/h3-h2

https://http3-explained.haxx.se/zh

https://blog.cloudflare.com/http-3-vs-http-2/

https://blog.cloudflare.com/http3-the-past-present-and-future/

https://www.toptal.com/web/performance-working-with-http-3

https://www.digitalocean.com/community/tutorials/http-1-1-vs-http-2-what-s-the-difference

https://www.nginx.com/blog/introducing-technology-preview-nginx-support-for-quic-http-3/

https://jirak.net/wp/introducing-a-technology-preview-of-nginx-support-for-quic-and-http-3/

https://labs.tadigital.com/index.php/2019/11/28/http-2-vs-http-3/

SVG image placeholder


<svg class="object-cover w-full h-64 lg:h-96 overflow-hidden text-gray-200 fill-current dark:text-dark-light" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
<path d="M0 4c0-1.1.9-2 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm11 9l-3-3-6 6h16l-5-5-2 2zm4-4a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"></path>
</svg>

CSS loading animation

<div id="loader">
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
</div>
@charset "UTf-8";

/* css-loading.css */

:root {
--color: #000;
--default-color: green;
--new-color: #0f0;
} body {
background: #121212
} #loader {
width: 500px;
position: absolute;
text-align: center;
left: calc(50% - 250px);
top: calc(50% - 10px)
} #loader .square {
display: inline-block;
height: 10px;
width: 10px;
margin: 10px;
position: relative;
box-shadow: 0 0 20px rgba(0,0,0,.3);
animation: bouncer cubic-bezier(.455,.03,.515,.955) .75s infinite alternate
} #loader .square:nth-child(5n+1) {
background: #0F9;
animation-delay: 0
} #loader .square:nth-child(5n+2) {
background: #0CF;
animation-delay: calc(0s + (.1s * 1))
} #loader .square:nth-child(5n+3) {
background: #93F;
animation-delay: calc(0s + (.1s * 2))
} #loader .square:nth-child(5n+4) {
background: #F66;
animation-delay: calc(0s + (.1s * 3))
} #loader .square:nth-child(5n+5) {
background: #FFF35C;
animation-delay: calc(0s + (.1s * 4))
} @keyframes bouncer {
to {
transform: scale(1.75) translateY(-20px)
}
}

See the Pen css loading animation by xgqfrms
(@xgqfrms) on CodePen.



xgqfrms 2012-2020

www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!


最新文章

  1. Linux shell之sed
  2. Timer中schedule()的用法
  3. unity3d 截屏
  4. [itint5]两有序数组的交和并
  5. ubuntu错误解决。
  6. 后台js
  7. meta的属性详解
  8. Codeforces Round #364 (Div. 2) C.They Are Everywhere
  9. SVN的安装以及和eclipse的结合使用
  10. JQuery td内容获取,修改
  11. TypeError: &#39;Item&#39; object has no attribute &#39;__getitem__&#39;
  12. 云数据库POLARDB优势解读之①——10分钟了解
  13. Content Security Policy介绍
  14. 日常英语---八、REBOOT - What is the difference? -MapleStory
  15. git 对比两个commit 之间的差异
  16. 『Yaml』配置文件读写包
  17. Selenium自动化测试Python六:持续集成
  18. CentOS6.8下安装MySQL5.6
  19. 解题:SCOI 2005 骑士精神
  20. uchome 缓存生成

热门文章

  1. 日志采集技术分析 Inode Inotify
  2. 客户端必须在它发送到服务器的所有帧中添加掩码(Mask)
  3. 【LinuxShell】ps 命令浅析
  4. SpringMVC听课笔记(四:映射请求参数 &amp; 请求头)
  5. Lambda表达式及相关练习
  6. 使用ganglia 实现监控 hadoop 和 hbase(详细过程总结)
  7. DolphinScheduler 源码分析之 DAG类
  8. Java链表(英雄增删查改)
  9. Codeforces Global Round 7 B. Maximums(逻辑)
  10. P1439 【模板】最长公共子序列(DP)