<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>http on 当以读书通世事</title><link>https://www.sakaay.com/network/http/</link><description>Recent content in http on 当以读书通世事</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Tue, 23 Dec 2025 15:46:43 +0800</lastBuildDate><atom:link href="https://www.sakaay.com/network/http/index.xml" rel="self" type="application/rss+xml"/><item><title>3.1 HTTP 常见面试题</title><link>https://www.sakaay.com/network/http_interview/</link><pubDate>Tue, 23 Dec 2025 15:46:43 +0800</pubDate><guid>https://www.sakaay.com/network/http_interview/</guid><description>&lt;div class="ad-block"&gt;&#10;&lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2897720906666216" data-ad-slot="2668661755" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt;&#10;&lt;/div&gt;&#10;&lt;h1 id="31-http-常见面试题"&gt;3.1 HTTP 常见面试题&lt;/h1&gt;&#10;&lt;p&gt;在面试过程中，HTTP 被提问的概率还是比较高的。&lt;/p&gt;&#10;&lt;p&gt;小林我搜集了 6 大类 HTTP 面试常问的题目，同时这 6 大类题跟 &lt;strong&gt;HTTP 的发展和演变&lt;/strong&gt;关联性是比较大的，通过&lt;strong&gt;问答 + 图解&lt;/strong&gt;的形式&lt;strong&gt;由浅入深&lt;/strong&gt;的方式帮助大家进一步的学习和理解 HTTP。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;HTTP 基本概念&lt;/li&gt;&#10;&lt;li&gt;Get 与 Post&lt;/li&gt;&#10;&lt;li&gt;HTTP 特性&lt;/li&gt;&#10;&lt;li&gt;HTTP 缓存技术&lt;/li&gt;&#10;&lt;li&gt;HTTPS 与 HTTP&lt;/li&gt;&#10;&lt;li&gt;HTTP/1.1、HTTP/2、HTTP/3 演变&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img src="https://img-blog.csdnimg.cn/6b9bfd38d2684b3f9843ebabf8771212.png" alt="提纲"&gt;&lt;/p&gt;</description></item><item><title>3.2 HTTP/1.1 如何优化？</title><link>https://www.sakaay.com/network/http_optimize/</link><pubDate>Tue, 23 Dec 2025 15:46:43 +0800</pubDate><guid>https://www.sakaay.com/network/http_optimize/</guid><description>&lt;div class="ad-block"&gt;&#10;&lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2897720906666216" data-ad-slot="2668661755" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt;&#10;&lt;/div&gt;&#10;&lt;h1 id="32-http11-如何优化"&gt;3.2 HTTP/1.1 如何优化？&lt;/h1&gt;&#10;&lt;p&gt;问你一句：「&lt;strong&gt;你知道 HTTP/1.1 该如何优化吗？&lt;/strong&gt;」&lt;/p&gt;&#10;&lt;p&gt;我们可以从下面这三种优化思路来优化 HTTP/1.1 协议：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;em&gt;尽量避免发送 HTTP 请求&lt;/em&gt;；&lt;/li&gt;&#10;&lt;li&gt;&lt;em&gt;在需要发送 HTTP 请求时，考虑如何减少请求次数&lt;/em&gt;；&lt;/li&gt;&#10;&lt;li&gt;&lt;em&gt;减少服务器的 HTTP 响应的数据大小&lt;/em&gt;；&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;下面，就针对这三种思路具体看看有哪些优化方法。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://cdn.xiaolincoding.com/gh/xiaolincoder/ImageHost4@main/%E7%BD%91%E7%BB%9C/http1.1%E4%BC%98%E5%8C%96/%E4%BC%98%E5%8C%96http1.1%E6%8F%90%E7%BA%B2.png" alt=""&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="如何避免发送-http-请求"&gt;如何避免发送 HTTP 请求？&lt;/h2&gt;&#10;&lt;p&gt;这个思路你看到是不是觉得很奇怪，不发送 HTTP 请求，那客户端还怎么和服务器交互数据？小林你这不是耍流氓嘛？&lt;/p&gt;</description></item><item><title>3.3 HTTPS RSA 握手解析</title><link>https://www.sakaay.com/network/https_rsa/</link><pubDate>Tue, 23 Dec 2025 15:46:43 +0800</pubDate><guid>https://www.sakaay.com/network/https_rsa/</guid><description>&lt;div class="ad-block"&gt;&#10;&lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2897720906666216" data-ad-slot="2668661755" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt;&#10;&lt;/div&gt;&#10;&lt;h1 id="33-https-rsa-握手解析"&gt;3.3 HTTPS RSA 握手解析&lt;/h1&gt;&#10;&lt;p&gt;我前面讲，简单给大家介绍了的 HTTPS 握手过程，但是还不够细！&lt;/p&gt;&#10;&lt;p&gt;只讲了比较基础的部分，所以这次我们再来深入一下 HTTPS，用&lt;strong&gt;实战抓包&lt;/strong&gt;的方式，带大家再来窥探一次 HTTPS。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://cdn.xiaolincoding.com/gh/xiaolincoder/ImageHost4@main/%E7%BD%91%E7%BB%9C/https/https%E6%8F%90%E7%BA%B2.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;对于还不知道对称加密和非对称加密的同学，你先复习我以前的这篇文章&lt;a href="https://mp.weixin.qq.com/s/bUy220-ect00N4gnO0697A" target="_blank" rel="noopener"&gt;「硬核！30 张图解 HTTP 常见的面试题」，&lt;/a&gt;&#10;本篇文章默认大家已经具备了这些知识。&lt;/p&gt;</description></item><item><title>3.4 HTTPS ECDHE 握手解析</title><link>https://www.sakaay.com/network/https_ecdhe/</link><pubDate>Tue, 23 Dec 2025 15:46:43 +0800</pubDate><guid>https://www.sakaay.com/network/https_ecdhe/</guid><description>&lt;div class="ad-block"&gt;&#10;&lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2897720906666216" data-ad-slot="2668661755" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt;&#10;&lt;/div&gt;&#10;&lt;h1 id="34-https-ecdhe-握手解析"&gt;3.4 HTTPS ECDHE 握手解析&lt;/h1&gt;&#10;&lt;p&gt;HTTPS 常用的密钥交换算法有两种，分别是 RSA 和 ECDHE 算法。&lt;/p&gt;&#10;&lt;p&gt;其中，RSA 是比较传统的密钥交换算法，它不具备前向安全的性质，因此现在很少服务器使用的。而 ECDHE 算法具有前向安全，所以被广泛使用。&lt;/p&gt;&#10;&lt;p&gt;我在上一篇已经介绍了 &lt;a href="https://mp.weixin.qq.com/s/U9SRLE7jZTB6lUZ6c8gTKg" target="_blank" rel="noopener"&gt;RSA 握手的过程&lt;/a&gt;&#10;，今天这一篇就「从理论再到实战抓包」介绍 &lt;strong&gt;ECDHE 算法&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>3.5 HTTPS 如何优化？</title><link>https://www.sakaay.com/network/https_optimize/</link><pubDate>Tue, 23 Dec 2025 15:46:43 +0800</pubDate><guid>https://www.sakaay.com/network/https_optimize/</guid><description>&lt;div class="ad-block"&gt;&#10;&lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2897720906666216" data-ad-slot="2668661755" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt;&#10;&lt;/div&gt;&#10;&lt;h1 id="35-https-如何优化"&gt;3.5 HTTPS 如何优化？&lt;/h1&gt;&#10;&lt;p&gt;由裸数据传输的 HTTP 协议转成加密数据传输的 HTTPS 协议，给应用数据套了个「保护伞」，提高安全性的同时也带来了性能消耗。&lt;/p&gt;&#10;&lt;p&gt;因为 HTTPS 相比 HTTP 协议多一个 TLS 协议握手过程，&lt;strong&gt;目的是为了通过非对称加密握手协商或者交换出对称加密密钥&lt;/strong&gt;，这个过程最长可以花费掉 2 RTT，接着后续传输的应用数据都得使用对称加密密钥来加密/解密。&lt;/p&gt;</description></item><item><title>3.6 HTTP/2 牛逼在哪？</title><link>https://www.sakaay.com/network/http2/</link><pubDate>Tue, 23 Dec 2025 15:46:43 +0800</pubDate><guid>https://www.sakaay.com/network/http2/</guid><description>&lt;div class="ad-block"&gt;&#10;&lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2897720906666216" data-ad-slot="2668661755" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt;&#10;&lt;/div&gt;&#10;&lt;h1 id="36-http2-牛逼在哪"&gt;3.6 HTTP/2 牛逼在哪？&lt;/h1&gt;&#10;&lt;p&gt;不多 BB 了，直接发车！&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;一起来看看 HTTP/2 牛逼在哪？&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://cdn.xiaolincoding.com/gh/xiaolincoder/ImageHost4@main/%E7%BD%91%E7%BB%9C/http2/http2%E6%8F%90%E7%BA%B2.png" alt=""&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="http11-协议的性能问题"&gt;HTTP/1.1 协议的性能问题&lt;/h2&gt;&#10;&lt;p&gt;我们得先要了解下 HTTP/1.1 协议存在的性能问题，因为 HTTP/2 协议就是把这些性能问题逐个攻破了。&lt;/p&gt;&#10;&lt;p&gt;现在的站点相比以前变化太多了，比如：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;em&gt;消息的大小变大了&lt;/em&gt;，从几 KB 大小的消息，到几 MB 大小的消息；&lt;/li&gt;&#10;&lt;li&gt;&lt;em&gt;页面资源变多了&lt;/em&gt;，从每个页面不到 10 个的资源，到每页超 100 多个资源；&lt;/li&gt;&#10;&lt;li&gt;&lt;em&gt;内容形式变多样了&lt;/em&gt;，从单纯到文本内容，到图片、视频、音频等内容；&lt;/li&gt;&#10;&lt;li&gt;&lt;em&gt;实时性要求变高了&lt;/em&gt;，对页面的实时性要求的应用越来越多；&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;这些变化带来的最大性能问题就是 &lt;strong&gt;HTTP/1.1 的高延迟&lt;/strong&gt;，延迟高必然影响的就是用户体验。主要原因如下几个：&lt;/p&gt;</description></item><item><title>3.7 HTTP/3 强势来袭</title><link>https://www.sakaay.com/network/http3/</link><pubDate>Tue, 23 Dec 2025 15:46:43 +0800</pubDate><guid>https://www.sakaay.com/network/http3/</guid><description>&lt;div class="ad-block"&gt;&#10;&lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2897720906666216" data-ad-slot="2668661755" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt;&#10;&lt;/div&gt;&#10;&lt;h1 id="37-http3-强势来袭"&gt;3.7 HTTP/3 强势来袭&lt;/h1&gt;&#10;&lt;p&gt;HTTP/3 现在（2022 年 5 月）还没正式推出，不过自 2017 年起，HTTP/3 已经更新到 34 个草案了，基本的特性已经确定下来了，对于包格式可能后续会有变化。&lt;/p&gt;&#10;&lt;p&gt;所以，这次 HTTP/3 介绍不会涉及到包格式，只说它的特性。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://cdn.xiaolincoding.com/gh/xiaolincoder/ImageHost4@main/%E7%BD%91%E7%BB%9C/http3/HTTP3%E6%8F%90%E7%BA%B2.png" alt=""&gt;&lt;/p&gt;&#10;&lt;h2 id="美中不足的-http2"&gt;美中不足的 HTTP/2&lt;/h2&gt;&#10;&lt;p&gt;HTTP/2 通过头部压缩、二进制编码、多路复用、服务器推送等新特性大幅度提升了 HTTP/1.1 的性能，而美中不足的是 HTTP/2 协议是基于 TCP 实现的，于是存在的缺陷有三个。&lt;/p&gt;</description></item><item><title>3.8 既然有 HTTP 协议，为什么还要有 RPC？</title><link>https://www.sakaay.com/network/http_rpc/</link><pubDate>Tue, 23 Dec 2025 15:46:43 +0800</pubDate><guid>https://www.sakaay.com/network/http_rpc/</guid><description>&lt;div class="ad-block"&gt;&#10;&lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2897720906666216" data-ad-slot="2668661755" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt;&#10;&lt;/div&gt;&#10;&lt;h1 id="38-既然有-http-协议为什么还要有-rpc"&gt;3.8 既然有 HTTP 协议，为什么还要有 RPC？&lt;/h1&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;来源：公众号@小白 debug&lt;/p&gt;&#10;&lt;p&gt;原文地址：&lt;a href="https://mp.weixin.qq.com/s/qmnfmUCdekEt1xG0hp_4MQ" target="_blank" rel="noopener"&gt;既然有 HTTP 协议，为什么还要有 RPC？&lt;/a&gt;&#10;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;我想起了我刚工作的时候，第一次接触 RPC 协议，当时就很懵，&lt;strong&gt;我 HTTP 协议用的好好的，为什么还要用 RPC 协议？&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;于是就到网上去搜。&lt;/p&gt;&#10;&lt;p&gt;不少解释显得非常官方，我相信大家在各种平台上也都看到过，解释了又好像没解释，都在&lt;strong&gt;用一个我们不认识的概念去解释另外一个我们不认识的概念&lt;/strong&gt;，懂的人不需要看，不懂的人看了还是不懂。&lt;/p&gt;</description></item><item><title>3.9 既然有 HTTP 协议，为什么还要有 WebSocket？</title><link>https://www.sakaay.com/network/http_websocket/</link><pubDate>Tue, 23 Dec 2025 15:46:43 +0800</pubDate><guid>https://www.sakaay.com/network/http_websocket/</guid><description>&lt;div class="ad-block"&gt;&#10;&lt;ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2897720906666216" data-ad-slot="2668661755" data-ad-format="auto" data-full-width-responsive="true"&gt;&lt;/ins&gt;&#10;&lt;/div&gt;&#10;&lt;h1 id="39-既然有-http-协议为什么还要有-websocket"&gt;3.9 既然有 HTTP 协议，为什么还要有 WebSocket？&lt;/h1&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;来源：公众号@小白 debug&lt;/p&gt;&#10;&lt;p&gt;原文地址：&lt;a href="https://mp.weixin.qq.com/s/jJNdXMNmXcE8wSE0gbtTAQ" target="_blank" rel="noopener"&gt;既然有 HTTP 协议，为什么还要有 WebSocket？&lt;/a&gt;&#10;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;平时我们打开网页，比如购物网站某宝。都是点一下「列表商品」，跳转一下网页就到了「商品详情」。&lt;/p&gt;&#10;&lt;p&gt;从 HTTP 协议的角度来看，就是点一下网页上的某个按钮，&lt;strong&gt;前端发一次 HTTP 请求，网站返回一次 HTTP 响应&lt;/strong&gt;。这种由客户端主动请求，服务器响应的方式也满足大部分网页的功能场景。&lt;/p&gt;</description></item></channel></rss>