<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>NeverGpDzy Blog</title>
        <link>https://docs.nevergpdzy.cn/blog</link>
        <description>NeverGpDzy Blog</description>
        <lastBuildDate>Mon, 01 Jul 2024 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>zh-Hans</language>
        <item>
            <title><![CDATA[Mermaid 流程图语法指南]]></title>
            <link>https://docs.nevergpdzy.cn/blog/2024/7/1/Mermaid</link>
            <guid>https://docs.nevergpdzy.cn/blog/2024/7/1/Mermaid</guid>
            <pubDate>Mon, 01 Jul 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[流程图 (Flowchart)]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorWithStickyNavbar_LWe7" id="流程图-flowchart">流程图 (Flowchart)<a href="https://docs.nevergpdzy.cn/blog/2024/7/1/Mermaid#%E6%B5%81%E7%A8%8B%E5%9B%BE-flowchart" class="hash-link" aria-label="流程图 (Flowchart)的直接链接" title="流程图 (Flowchart)的直接�链接">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="示例">示例<a href="https://docs.nevergpdzy.cn/blog/2024/7/1/Mermaid#%E7%A4%BA%E4%BE%8B" class="hash-link" aria-label="示例的直接链接" title="示例的直接链接">​</a></h3>
<div class="language-mermaid codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-mermaid codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">graph TD</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    A[开始] --&gt; B{条件判断}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    B --&gt;|是| C[结束]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    B --&gt;|否| D[处理过程]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    D --&gt; B</span><br></span></code></pre></div></div>
<p><img decoding="async" loading="lazy" src="https://picture.nevergpdzy.cn/img_for_Typora/image-20240701220715588.png" alt="image-20240701220715588" class="img_ev3q"></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="思维导图-mind-map">思维导图 (Mind Map)<a href="https://docs.nevergpdzy.cn/blog/2024/7/1/Mermaid#%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE-mind-map" class="hash-link" aria-label="思维导图 (Mind Map)的直接链接" title="思维导图 (Mind Map)的直接链接">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="示例-1">示例<a href="https://docs.nevergpdzy.cn/blog/2024/7/1/Mermaid#%E7%A4%BA%E4%BE%8B-1" class="hash-link" aria-label="示例的直接链接" title="示例的直接链接">​</a></h3>
<div class="language-mermaid codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-mermaid codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">graph TD</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    A[思维导图]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    A --&gt; B[主要分支1]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    A --&gt; C[主要分支2]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    A --&gt; D[主要分支3]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    B --&gt; E[子分支1]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    B --&gt; F[子分支2]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    C --&gt; G[子分支3]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    C --&gt; H[子分支4]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    D --&gt; I[子分支5]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    D --&gt; J[子分支6]</span><br></span></code></pre></div></div>
<p><img decoding="async" loading="lazy" src="https://picture.nevergpdzy.cn/img_for_Typora/image-20240701220742929.png" alt="image-20240701220742929" class="img_ev3q"></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="时序图-sequence-diagram">时序图 (Sequence Diagram)<a href="https://docs.nevergpdzy.cn/blog/2024/7/1/Mermaid#%E6%97%B6%E5%BA%8F%E5%9B%BE-sequence-diagram" class="hash-link" aria-label="时序图 (Sequence Diagram)的直接链接" title="时序图 (Sequence Diagram)的直接链接">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="示例-2">示例<a href="https://docs.nevergpdzy.cn/blog/2024/7/1/Mermaid#%E7%A4%BA%E4%BE%8B-2" class="hash-link" aria-label="示例的直接链接" title="示例的直接链接">​</a></h3>
<div class="language-mermaid codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-mermaid codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sequenceDiagram</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    participant 用户</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    participant 系统</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    用户-&gt;&gt;系统: 登录请求</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    系统--&gt;&gt;用户: 返回登录结果</span><br></span></code></pre></div></div>
<p><img decoding="async" loading="lazy" src="https://picture.nevergpdzy.cn/img_for_Typora/image-20240701220809877.png" alt="image-20240701220809877" class="img_ev3q"></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="甘特图-gantt-chart">甘特图 (Gantt Chart)<a href="https://docs.nevergpdzy.cn/blog/2024/7/1/Mermaid#%E7%94%98%E7%89%B9%E5%9B%BE-gantt-chart" class="hash-link" aria-label="甘特图 (Gantt Chart)的直接链接" title="甘特图 (Gantt Chart)的直接链接">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="示例-3">示例<a href="https://docs.nevergpdzy.cn/blog/2024/7/1/Mermaid#%E7%A4%BA%E4%BE%8B-3" class="hash-link" aria-label="示例的直接链接" title="示例的直接链接">​</a></h3>
<div class="language-mermaid codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-mermaid codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">gantt</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    title 项目计划</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    dateFormat  YYYY-MM-DD</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    section 项目阶段</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    需求分析 :a1, 2024-06-01, 10d</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    系统设计 :after a1, 15d</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    系统开发 : 2024-06-20, 30d</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    系统测试 : 2024-07-20, 20d</span><br></span></code></pre></div></div>
<p><img decoding="async" loading="lazy" src="https://picture.nevergpdzy.cn/img_for_Typora/image-20240701220838836.png" alt="image-20240701220838836" class="img_ev3q"></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="类图-class-diagram">类图 (Class Diagram)<a href="https://docs.nevergpdzy.cn/blog/2024/7/1/Mermaid#%E7%B1%BB%E5%9B%BE-class-diagram" class="hash-link" aria-label="类图 (Class Diagram)的直接链接" title="类图 (Class Diagram)的直接链接">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="示例-4">示例<a href="https://docs.nevergpdzy.cn/blog/2024/7/1/Mermaid#%E7%A4%BA%E4%BE%8B-4" class="hash-link" aria-label="示例的直接链接" title="示例的直接链接">​</a></h3>
<div class="language-mermaid codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-mermaid codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">classDiagram</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    class Person{</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        +String name</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        +int age</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        +void speak()</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    class Employee{</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        +int employeeId</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        +double salary</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    Person &lt;|-- Employee</span><br></span></code></pre></div></div>
<p><img decoding="async" loading="lazy" src="https://picture.nevergpdzy.cn/img_for_Typora/image-20240701220856779.png" alt="image-20240701220856779" class="img_ev3q"></p>]]></content:encoded>
            <category>docusaurus</category>
        </item>
        <item>
            <title><![CDATA[CDN原理与应用]]></title>
            <link>https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN</link>
            <guid>https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN</guid>
            <pubDate>Wed, 12 Jun 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[什么是CDN？]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorWithStickyNavbar_LWe7" id="什么是cdn">什么是CDN？<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E4%BB%80%E4%B9%88%E6%98%AFcdn" class="hash-link" aria-label="什么是CDN？的直接链接" title="什么是CDN？的直接链接">​</a></h2>
<p>CDN（内容分发网络，Content Delivery Network）是一种分布式服务器系统，旨在通过将内容缓存到全球各地的节点服务器上，加速内容交付，提高网站的加载速度和可靠性。CDN节点可以有效减轻源服务器的负载，改善用户体验。</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="cdn如何工作">CDN如何工作？<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#cdn%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C" class="hash-link" aria-label="CDN如何工作？的直接链接" title="CDN如何工作？的直接链接">​</a></h2>
<ol>
<li><strong>缓存内容</strong>：CDN将静态内容（如图片、CSS、JavaScript文件）缓存到全球各地的节点服务器上。</li>
<li><strong>就近分发</strong>：当用户请求内容时，CDN会将请求重定向到离用户最近的节点服务器，从而减少延迟。</li>
<li><strong>动态加速</strong>：对于无法缓存的动态内容，CDN可以通过优化路由和协议，加速数据传输。</li>
</ol>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="可以使用cdn的内容类型">可以使用CDN的内容类型<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8cdn%E7%9A%84%E5%86%85%E5%AE%B9%E7%B1%BB%E5%9E%8B" class="hash-link" aria-label="可以使用CDN的内容类型的直接链接" title="可以使用CDN的内容类型的直接链接">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="静态内容">静态内容<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E9%9D%99%E6%80%81%E5%86%85%E5%AE%B9" class="hash-link" aria-label="静态内容的直接链接" title="静态内容的直接链接">​</a></h3>
<ul>
<li><strong>图像文件</strong>：JPEG、PNG、GIF、SVG、WebP等。</li>
<li><strong>视频和音频文件</strong>：MP4、WebM、Ogg、MP3、AAC、OGG等。</li>
<li><strong>文档和文件下载</strong>：PDF、DOCX、PPTX、TXT、ZIP、RAR等。</li>
<li><strong>网页资源文件</strong>：HTML、CSS、JavaScript文件。</li>
<li><strong>字体文件</strong>：TTF、OTF、WOFF、WOFF2等。</li>
<li><strong>数据文件</strong>：JSON、XML、CSV等。</li>
<li><strong>图形和动画文件</strong>：SVG、Canvas等。</li>
<li><strong>3D 模型和资产</strong>：OBJ、FBX、GLTF等。</li>
<li><strong>静态网站生成器输出</strong>：使用静态网站生成器生成的内容。</li>
</ul>
<p>是的，静态内容使用CDN分发通常不需要开发者添加额外的代码。CDN的工作原理和设置方式使得静态内容的分发相对简单。下面是一些详细说明：</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="静态内容使用cdn分发的设置步骤">静态内容使用CDN分发的设置步骤<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E9%9D%99%E6%80%81%E5%86%85%E5%AE%B9%E4%BD%BF%E7%94%A8cdn%E5%88%86%E5%8F%91%E7%9A%84%E8%AE%BE%E7%BD%AE%E6%AD%A5%E9%AA%A4" class="hash-link" aria-label="静态内容使用CDN分发的设置步骤的直接链接" title="静态内容使用CDN分发的设置步骤的直接链接">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="1-选择cdn提供商">1. <strong>选择CDN提供商</strong><a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#1-%E9%80%89%E6%8B%A9cdn%E6%8F%90%E4%BE%9B%E5%95%86" class="hash-link" aria-label="1-选择cdn提供商的直接链接" title="1-选择cdn提供商的直接链接">​</a></h3>
<p>选择一个合适的CDN提供商，如Cloudflare、Akamai、Amazon CloudFront、Google Cloud CDN等。</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="2-配置dns">2. <strong>配置DNS</strong><a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#2-%E9%85%8D%E7%BD%AEdns" class="hash-link" aria-label="2-配置dns的直接链接" title="2-配置dns的直接链接">​</a></h3>
<p>将你的网站的DNS设置指向CDN提供的服务器。通常，你需要在DNS管理控制台中添加CNAME记录，指向CDN提供的域名。</p>
<p>示例：</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">www.example.com CNAME cdn.example-cdn.com</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="3-配置cdn">3. <strong>配置CDN</strong><a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#3-%E9%85%8D%E7%BD%AEcdn" class="hash-link" aria-label="3-配置cdn的直接链接" title="3-配置cdn的直接链接">​</a></h3>
<p>在CDN提供商的管理控制台中配置你的站点，指定哪些内容需要通过CDN分发。通常，你可以设置一个或多个规则来匹配静态内容的路径。</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="4-源站配置">4. <strong>源站配置</strong><a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#4-%E6%BA%90%E7%AB%99%E9%85%8D%E7%BD%AE" class="hash-link" aria-label="4-源站配置的直接链接" title="4-源站配置的直接链接">​</a></h3>
<p>确保你的源服务器（origin server）配置正确，允许CDN节点请求静态内容。大多数情况下，不需要对源服务器进行特别的调整。</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="5-测试和验证">5. <strong>测试和验证</strong><a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#5-%E6%B5%8B%E8%AF%95%E5%92%8C%E9%AA%8C%E8%AF%81" class="hash-link" aria-label="5-测试和验证的直接链接" title="5-测试和验证的直接链接">​</a></h3>
<p>在CDN配置完成后，测试并验证CDN是否正确缓存和分发了静态内容。你可以使用浏览器的开发者工具检查请求头和响应头，确保内容通过CDN节点传输。</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="6-缓存策略">6. <strong>缓存策略</strong><a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#6-%E7%BC%93%E5%AD%98%E7%AD%96%E7%95%A5" class="hash-link" aria-label="6-缓存策略的直接链接" title="6-缓存策略的直接链接">​</a></h3>
<p>根据需要配置缓存策略，例如缓存的时间、哪些内容需要强制刷新等。</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="无需额外代码示例">无需额外代码示例<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E6%97%A0%E9%9C%80%E9%A2%9D%E5%A4%96%E4%BB%A3%E7%A0%81%E7%A4%BA%E4%BE%8B" class="hash-link" aria-label="无需额外代码示例的直接链接" title="无需额外代码示例的直接链接">​</a></h3>
<p>假设你有一个简单的网站，包含HTML、CSS、JavaScript、图片等静态文件。配置CDN后，这些文件的请求流程如下：</p>
<ol>
<li><strong>用户请求</strong>：用户浏览器请求网页内容。</li>
<li><strong>CDN节点检查缓存</strong>：CDN节点检查是否有缓存的版本。</li>
<li><strong>缓存命中</strong>：如果缓存命中，CDN节点直接返回缓存内容。</li>
<li><strong>缓存未命中</strong>：如果缓存未命中，CDN节点向源服务器请求内容，并缓存返回的内容以供后续请求使用。</li>
</ol>
<p>示例请求流程：</p>
<ul>
<li>用户请求 <code>https://www.example.com/index.html</code></li>
<li>CDN节点返回缓存的 <code>index.html</code> 文件</li>
<li>用户请求 <code>https://www.example.com/style.css</code></li>
<li>CDN节点返回缓存的 <code>style.css</code> 文件</li>
<li>用户请求 <code>https://www.example.com/image.jpg</code></li>
<li>CDN节点返回缓存的 <code>image.jpg</code> 文件</li>
</ul>
<p>这些请求和响应过程中，开发者不需要在代码中做任何改动。</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="示例配置和响应头">示例配置和响应头<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E7%A4%BA%E4%BE%8B%E9%85%8D%E7%BD%AE%E5%92%8C%E5%93%8D%E5%BA%94%E5%A4%B4" class="hash-link" aria-label="示例配置和响应头的直接链接" title="示例配置和响应头的直接链接">​</a></h3>
<p>在使用CDN后，典型的响应头可能如下所示：</p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 200 OK</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Date: Sat, 08 Jun 2024 10:00:00 GMT</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Content-Type: text/html</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Content-Length: 1024</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Connection: keep-alive</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Cache-Control: max-age=3600</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">CDN-Cache: HIT</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Server: example-cdn</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="使用cdn处理动态内容">使用CDN处理动态内容<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E4%BD%BF%E7%94%A8cdn%E5%A4%84%E7%90%86%E5%8A%A8%E6%80%81%E5%86%85%E5%AE%B9" class="hash-link" aria-label="使用CDN处理动态内容的直接链接" title="使用CDN处理动态内容的直接链接">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="动态内容">动态内容<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E5%8A%A8%E6%80%81%E5%86%85%E5%AE%B9" class="hash-link" aria-label="动态内容的直接链接" title="动态内容的直接链接">​</a></h3>
<ul>
<li><strong>用户数据</strong>：用户个人资料、订单历史、消息、通知等。</li>
<li><strong>实时更新的内容</strong>：新闻、社交媒体动态、股票价格、天气预报等。</li>
<li><strong>个性化内容</strong>：推荐系统生成的个性化推荐、广告等。</li>
<li><strong>搜索结果</strong>：用户查询生成的搜索结果页面。</li>
<li><strong>购物车和结账页面</strong>：显示用户的购物车内容、订单详情等。</li>
</ul>
<p>虽然动态内容不能像静态内容那样直接缓存，但可以通过以下方式优化：</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="配置缓存策略">配置缓存策略<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E9%85%8D%E7%BD%AE%E7%BC%93%E5%AD%98%E7%AD%96%E7%95%A5" class="hash-link" aria-label="配置缓存策略的直接链接" title="配置缓存策略的直接链接">​</a></h3>
<ul>
<li><strong>HTTP头配置</strong>：使用<code>Cache-Control</code>、<code>Expires</code>、<code>ETag</code>、<code>Last-Modified</code>等头部设置控制缓存。<!-- -->
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Cache-Control: private, max-age=60</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ETag: "12345"</span><br></span></code></pre></div></div>
</li>
<li><strong>Vary 头</strong>：根据请求头（如<code>Accept-Encoding</code>、<code>User-Agent</code>）缓存不同版本的内容。<!-- -->
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Vary: Accept-Encoding, User-Agent</span><br></span></code></pre></div></div>
</li>
</ul>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="边缘计算和自定义逻辑">边缘计算和自定义逻辑<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E8%BE%B9%E7%BC%98%E8%AE%A1%E7%AE%97%E5%92%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E9%80%BB%E8%BE%91" class="hash-link" aria-label="边缘计算和自定义逻辑的直接链接" title="边缘计算和自定义逻辑的直接链接">​</a></h3>
<ul>
<li><strong>边缘计算</strong>：在CDN节点上运行自定义脚本（如Cloudflare Workers、AWS Lambda@Edge）。<!-- -->
<div class="language-javascript codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-javascript codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">addEventListener</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">'fetch'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token parameter">event</span><span class="token plain"> </span><span class="token arrow operator" style="color:#393A34">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  event</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">respondWith</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">handleRequest</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">event</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">request</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">async</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">function</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">handleRequest</span><span class="token punctuation" style="color:#393A34">(</span><span class="token parameter">request</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic">// 自定义逻辑</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword control-flow" style="color:#00009f">return</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token class-name">Response</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">'Hello from the edge!'</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token literal-property property" style="color:#36acaa">status</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">200</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre></div></div>
</li>
</ul>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="配置cdn规则">配置CDN规则<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E9%85%8D%E7%BD%AEcdn%E8%A7%84%E5%88%99" class="hash-link" aria-label="配置CDN规则的直接链接" title="配置CDN规则的直接链接">​</a></h3>
<ul>
<li><strong>路径规则</strong>：在CDN控制台中设置路径规则，定义哪些内容应缓存，哪些应直接从源服务器获取。<!-- -->
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">/api/* - No Cache</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">/static/* - Cache</span><br></span></code></pre></div></div>
</li>
</ul>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="动态内容缓存和过期">动态内容缓存和过期<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E5%8A%A8%E6%80%81%E5%86%85%E5%AE%B9%E7%BC%93%E5%AD%98%E5%92%8C%E8%BF%87%E6%9C%9F" class="hash-link" aria-label="动态内容缓存和过期的直接链接" title="动态内容缓存和过期的直接链接">​</a></h3>
<ul>
<li><strong>短期缓存</strong>：对动态内容进行短期缓存，以减少服务器负载。</li>
<li><strong>条件请求</strong>：利用条件请求头减少数据传输。<!-- -->
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">If-None-Match: "12345"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">If-Modified-Since: Wed, 21 Oct 2020 07:28:00 GMT</span><br></span></code></pre></div></div>
</li>
</ul>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="利用cdn的高级功能">利用CDN的高级功能<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E5%88%A9%E7%94%A8cdn%E7%9A%84%E9%AB%98%E7%BA%A7%E5%8A%9F%E8%83%BD" class="hash-link" aria-label="利用CDN的高级功能的直接链接" title="利用CDN的高级功能的直接链接">​</a></h3>
<ul>
<li><strong>实时日志和监控</strong>：使用CDN的日志和监控功能，调整策略。</li>
<li><strong>动态加速</strong>：优化动态内容的传输路径和速度。</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="示例配置">示例配置<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E7%A4%BA%E4%BE%8B%E9%85%8D%E7%BD%AE" class="hash-link" aria-label="示例配置的直接链接" title="示例配置的直接链接">​</a></h2>
<p>以下是一个示例配置，展示如何在CDN中配置和利用缓存策略：</p>
<div class="language-http codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-http codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># 针对静态内容</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Cache-Control: public, max-age=31536000</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 针对动态内容（短期缓存）</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Cache-Control: private, max-age=60</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 针对不缓存的API请求</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Cache-Control: no-store</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="总结">总结<a href="https://docs.nevergpdzy.cn/blog/2024/6/12/Principle_of_CDN#%E6%80%BB%E7%BB%93" class="hash-link" aria-label="总结的直接链接" title="总结的直接链接">​</a></h2>
<p>CDN可以显著提升静态和动态内容的交付效率，通过合理配置缓存策略和利用CDN的各种高级功能，开发者可以改善用户体验，减轻服务器负载，并提高内容交付的速度和可靠性。</p>]]></content:encoded>
            <category>docusaurus</category>
        </item>
        <item>
            <title><![CDATA[HTTP&HTTPS]]></title>
            <link>https://docs.nevergpdzy.cn/blog/2024/6/10/HTTP&amp;HTTPS</link>
            <guid>https://docs.nevergpdzy.cn/blog/2024/6/10/HTTP&amp;HTTPS</guid>
            <pubDate>Mon, 10 Jun 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[HTTP与HTTPS的区别]]></description>
            <content:encoded><![CDATA[<h3 class="anchor anchorWithStickyNavbar_LWe7" id="http与https的区别">HTTP与HTTPS的区别<a href="https://docs.nevergpdzy.cn/blog/2024/6/10/HTTP&amp;HTTPS#http%E4%B8%8Ehttps%E7%9A%84%E5%8C%BA%E5%88%AB" class="hash-link" aria-label="HTTP与HTTPS的区别的直接链接" title="HTTP与HTTPS的区别的直接链接">​</a></h3>
<p><strong>1. 定义</strong></p>
<ul>
<li><strong>HTTP（HyperText Transfer Protocol，超文本传输协议）</strong>：一种用于分布式、协作和超媒体信息系统的应用层协议，是万维网的数据通信基础。</li>
<li><strong>HTTPS（HyperText Transfer Protocol Secure，超文本传输安全协议）</strong>：是在HTTP基础上加入SSL/TLS协议，用于在计算机网络上进行安全通信。</li>
</ul>
<p><strong>2. 安全性</strong></p>
<ul>
<li><strong>HTTP</strong>：数据在客户端和服务器之间以明文形式传输，容易被中间人攻击、窃听和篡改。</li>
<li><strong>HTTPS</strong>：数据通过SSL/TLS协议加密后传输，保障了数据的机密性、完整性和真实性。</li>
</ul>
<p><strong>3. 端口</strong></p>
<ul>
<li><strong>HTTP</strong>：使用端口80。</li>
<li><strong>HTTPS</strong>：使用端口443。</li>
</ul>
<p><strong>4. 性能</strong></p>
<ul>
<li><strong>HTTP</strong>：由于不需要加密解密，性能略优。</li>
<li><strong>HTTPS</strong>：需要进行加密解密操作，可能会略微降低性能，但现代硬件和优化技术使得这个性能差异通常不明显。</li>
</ul>
<p><strong>5. SEO优势</strong></p>
<ul>
<li><strong>HTTP</strong>：搜索引擎对HTTP网站的排名可能较低。</li>
<li><strong>HTTPS</strong>：搜索引擎（如Google）优先考虑HTTPS网站，提高其排名。</li>
</ul>
<p><strong>6. 可信度</strong></p>
<ul>
<li><strong>HTTP</strong>：用户访问时，浏览器通常不会提示安全警告，但用户可能会对网站安全性存疑。</li>
<li><strong>HTTPS</strong>：用户访问时，浏览器会显示安全锁图标，增强用户信任。</li>
</ul>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="网站开发者为网站申请ssl证书的好处">网站开发者为网站申请SSL证书的好处<a href="https://docs.nevergpdzy.cn/blog/2024/6/10/HTTP&amp;HTTPS#%E7%BD%91%E7%AB%99%E5%BC%80%E5%8F%91%E8%80%85%E4%B8%BA%E7%BD%91%E7%AB%99%E7%94%B3%E8%AF%B7ssl%E8%AF%81%E4%B9%A6%E7%9A%84%E5%A5%BD%E5%A4%84" class="hash-link" aria-label="网站开发者为网站申请SSL证书的好处的直接链��接" title="网站开发者为网站申请SSL证书的好处的直接链接">​</a></h3>
<p><strong>1. 数据加密</strong></p>
<ul>
<li><strong>好处</strong>：保证数据在传输过程中不被窃听，保护用户隐私和敏感信息，如登录密码、支付信息等。</li>
<li><strong>详细解释</strong>：SSL/TLS协议会对数据进行加密处理，使得即使数据被截获，也难以解密和利用。</li>
</ul>
<p><strong>2. 认证网站身份</strong></p>
<ul>
<li><strong>好处</strong>：通过第三方认证机构验证网站身份，防止钓鱼网站和中间人攻击。</li>
<li><strong>详细解释</strong>：SSL证书由受信任的证书颁发机构（CA）签发，确保用户访问的网站是真实的，而不是仿冒的。</li>
</ul>
<p><strong>3. 提高SEO排名</strong></p>
<ul>
<li><strong>好处</strong>：搜索引擎优先考虑HTTPS网站，有助于提高网站在搜索引擎中的排名。</li>
<li><strong>详细解释</strong>：例如，Google明确表示其搜索算法会优先考虑HTTPS网站，以提供更安全的搜索体验。</li>
</ul>
<p><strong>4. 增强用户信任</strong></p>
<ul>
<li><strong>好处</strong>：浏览器会显示安全锁图标，用户更愿意在感到安全的网站上进行交互和交易。</li>
<li><strong>详细解释</strong>：HTTPS标志着网站的安全性，用户看到安全锁图标时，更愿意提供个人信息和进行在线购物。</li>
</ul>
<p><strong>5. 防止流量劫持</strong></p>
<ul>
<li><strong>好处</strong>：保护网站不被恶意软件和广告劫持，提高用户体验。</li>
<li><strong>详细解释</strong>：HTTP容易被劫持，插入恶意广告或内容，而HTTPS可以防止这种劫持行为。</li>
</ul>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="ssl证书的劣势">SSL证书的劣势<a href="https://docs.nevergpdzy.cn/blog/2024/6/10/HTTP&amp;HTTPS#ssl%E8%AF%81%E4%B9%A6%E7%9A%84%E5%8A%A3%E5%8A%BF" class="hash-link" aria-label="SSL证书的劣势的直接链接" title="SSL证书的劣势的直接链接">​</a></h3>
<p><strong>1. 成本</strong></p>
<ul>
<li><strong>劣势</strong>：部分SSL证书需要付费，尤其是高级别的EV证书（扩展验证证书）。</li>
<li><strong>详细解释</strong>：虽然有免费的SSL证书（如Let’s Encrypt），但高级别证书需要支付费用，增加了网站运营成本。</li>
</ul>
<p><strong>2. 配置复杂性</strong></p>
<ul>
<li><strong>劣势</strong>：SSL证书的安装和配置需要一定的技术知识，可能增加网站开发和维护的复杂性。</li>
<li><strong>详细解释</strong>：需要正确配置服务器、处理证书的续期和更新，否则可能导致网站无法正常访问。</li>
</ul>
<p><strong>3. 性能影响</strong></p>
<ul>
<li><strong>劣势</strong>：加密和解密过程需要计算资源，可能会稍微影响网站的加载速度。</li>
<li><strong>详细解释</strong>：尽管现代服务器和优化技术可以减小这一影响，但在高并发访问情况下，性能开销仍然存在。</li>
</ul>
<p><strong>4. 兼容性问题</strong></p>
<ul>
<li><strong>劣势</strong>：部分旧设备或浏览器可能不完全支持最新的SSL/TLS协议，导致访问问题。</li>
<li><strong>详细解释</strong>：尽管现代浏览器大多支持SSL/TLS，但一些旧版本或特定设备可能存在兼容性问题，影响用户体验。</li>
</ul>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="总结">总结<a href="https://docs.nevergpdzy.cn/blog/2024/6/10/HTTP&amp;HTTPS#%E6%80%BB%E7%BB%93" class="hash-link" aria-label="总结的直接链接" title="总结的直接链接">​</a></h3>
<p>为网站申请SSL证书，转换到HTTPS协议是确保网站安全性和用户信任的重要措施。尽管有一些成本和技术上的挑战，但其带来的安全和SEO优势使其成为现代网站的标准配置。为了更好地保护用户数据和提升网站竞争力，网站开发者应积极采用HTTPS，并选择适合自己需求的SSL证书类型。</p>
<p>希望这些内容能帮助你形成一个详细的文档。如果你有更多问题或需要进一步细化某些部分，请告诉我。</p>]]></content:encoded>
            <category>docusaurus</category>
        </item>
        <item>
            <title><![CDATA[阿Q与精神胜利法]]></title>
            <link>https://docs.nevergpdzy.cn/blog/2024/6/9/The_method_of_spiritual_victory</link>
            <guid>https://docs.nevergpdzy.cn/blog/2024/6/9/The_method_of_spiritual_victory</guid>
            <pubDate>Sun, 09 Jun 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[阿Q与精神胜利法]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorWithStickyNavbar_LWe7" id="阿q与精神胜利法">阿Q与精神胜利法<a href="https://docs.nevergpdzy.cn/blog/2024/6/9/The_method_of_spiritual_victory#%E9%98%BFq%E4%B8%8E%E7%B2%BE%E7%A5%9E%E8%83%9C%E5%88%A9%E6%B3%95" class="hash-link" aria-label="阿Q与精神胜利法的直接链接" title="阿Q与精神胜利法的直��接链接">​</a></h2>
<p><strong>阿Q</strong>是中国现代文学家鲁迅在他的小说《阿Q正传》中塑造的一个经典人物形象。阿Q是一个生活在清末民初的农村贫苦农民，他的性格和行为反映了当时社会底层人民的精神状态。阿Q的名字中的“Q”并没有具体的含义，鲁迅借此表达了对这个人物的讽刺和批判。</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="阿q的性格特点">阿Q的性格特点<a href="https://docs.nevergpdzy.cn/blog/2024/6/9/The_method_of_spiritual_victory#%E9%98%BFq%E7%9A%84%E6%80%A7%E6%A0%BC%E7%89%B9%E7%82%B9" class="hash-link" aria-label="阿Q的性格特点的直接链接" title="阿Q的性格特点的直接链接">​</a></h3>
<ol>
<li><strong>自欺欺人</strong>：阿Q经常通过自我安慰和自我欺骗来逃避现实的困境。例如，当他被人打了之后，他会说“这不算什么”，以此来安慰自己。</li>
<li><strong>自我优越感</strong>：尽管生活困苦，阿Q总是以一种自我感觉良好的态度来看待自己，认为自己比别人高明。例如，他认为自己是“革命党”，尽管他对革命的理解非常肤浅。</li>
<li><strong>盲目乐观</strong>：阿Q总是对未来抱有不切实际的希望，认为自己总有一天会“发达”，但从未为此付出实际行动。</li>
</ol>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="精神胜利法">精神胜利法<a href="https://docs.nevergpdzy.cn/blog/2024/6/9/The_method_of_spiritual_victory#%E7%B2%BE%E7%A5%9E%E8%83%9C%E5%88%A9%E6%B3%95" class="hash-link" aria-label="精神胜利法的直接链接" title="精神胜利法的直接链接">​</a></h3>
<p><strong>精神胜利法</strong>是阿Q用来逃避现实、安慰自己的心理策略。这个方法主要体现在以下几个方面：</p>
<ol>
<li><strong>自我安慰</strong>：当阿Q遭遇挫折或失败时，他会通过自我安慰来减轻痛苦。例如，当他被人打了之后，他会对自己说“这不算什么，他们只是嫉妒我”。</li>
<li><strong>自我欺骗</strong>：阿Q经常通过扭曲事实来让自己感到胜利。例如，当他偷了别人的东西被抓住时，他会认为自己是在“革命”。</li>
<li><strong>幻想胜利</strong>：阿Q通过幻想来获得心理上的满足。例如，他常常幻想自己将来会成为一个大人物，尽管现实中他一事无成。</li>
</ol>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="精神胜利法的社会意义">精神胜利法的社会意义<a href="https://docs.nevergpdzy.cn/blog/2024/6/9/The_method_of_spiritual_victory#%E7%B2%BE%E7%A5%9E%E8%83%9C%E5%88%A9%E6%B3%95%E7%9A%84%E7%A4%BE%E4%BC%9A%E6%84%8F%E4%B9%89" class="hash-link" aria-label="精神胜利法的社会意义的直接链接" title="精神胜利法的社会意义的直接链接">​</a></h3>
<p>精神胜利法不仅是阿Q个人的心理策略，更是鲁迅对当时中国社会的一种批判。鲁迅通过阿Q这个形象，揭示了当时很多底层人民在面对困境时，选择逃避现实、安于现状的心理状态。阿Q的精神胜利法反映了人们在无法改变现实的情况下，通过自我欺骗和幻想来获得心理上的安慰。</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="阿q正传内容梳理">《阿Q正传》内容梳理<a href="https://docs.nevergpdzy.cn/blog/2024/6/9/The_method_of_spiritual_victory#%E9%98%BFq%E6%AD%A3%E4%BC%A0%E5%86%85%E5%AE%B9%E6%A2%B3%E7%90%86" class="hash-link" aria-label="《阿Q正传》内容梳理的直接链接" title="《阿Q正传》内容梳理的直接链接">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="背景介绍">背景介绍<a href="https://docs.nevergpdzy.cn/blog/2024/6/9/The_method_of_spiritual_victory#%E8%83%8C%E6%99%AF%E4%BB%8B%E7%BB%8D" class="hash-link" aria-label="背景介绍的直接链接" title="背景介绍的直接链接">​</a></h3>
<p>《阿Q正传》发表于1921年至1922年间，最初连载于《晨报副刊》。小说的背景设定在清末民初的中国农村，通过阿Q这个典型人物，鲁迅揭示了当时社会底层人民的生活状况和心理状态。</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="主要人物">主要人物<a href="https://docs.nevergpdzy.cn/blog/2024/6/9/The_method_of_spiritual_victory#%E4%B8%BB%E8%A6%81%E4%BA%BA%E7%89%A9" class="hash-link" aria-label="主要人物的直接链接" title="主要人物的直接链接">​</a></h3>
<ul>
<li><strong>阿Q</strong>：主人公，一个贫困的农民，性格自欺欺人、自我安慰、盲目乐观。</li>
<li><strong>赵太爷</strong>：乡绅，阿Q的雇主，象征着封建势力。</li>
<li><strong>吴妈</strong>：阿Q的情感寄托对象，村里的寡妇。</li>
<li><strong>小D</strong>：阿Q的朋友，后来成为革命党人。</li>
</ul>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="故事情节">故事情节<a href="https://docs.nevergpdzy.cn/blog/2024/6/9/The_method_of_spiritual_victory#%E6%95%85%E4%BA%8B%E6%83%85%E8%8A%82" class="hash-link" aria-label="故事情节的直接链接" title="故事情节的直接链接">​</a></h3>
<ol>
<li>
<p><strong>阿Q的生活</strong>：
阿Q是一个无家可归的流浪汉，靠给别人打短工为生。他经常受到村里人的欺负和嘲笑，但他总是通过“精神胜利法”来自我安慰和自我欺骗。例如，当他被赵太爷打了之后，他会说“这不算什么，他们只是嫉妒我”。</p>
</li>
<li>
<p><strong>阿Q的自我安慰</strong>：
阿Q经常自称是“革命党”，尽管他对革命的理解非常肤浅。他认为自己是一个“革命者”，但实际上他对革命并没有任何实际的贡献或理解。他的“革命”只是他自我安慰的一种方式。</p>
</li>
<li>
<p><strong>阿Q的幻想</strong>：
阿Q常常幻想自己将来会成为一个大人物。他认为自己总有一天会“发达”，但从未为此付出实际行动。他的幻想成为他逃避现实的一种手段。</p>
</li>
<li>
<p><strong>阿Q的失败</strong>：
阿Q多次尝试改变自己的命运，但都以失败告终。例如，他曾试图追求吴妈，但被拒绝；他曾加入革命党，但被排斥。每次失败后，他都会通过精神胜利法来自我安慰。</p>
</li>
<li>
<p><strong>阿Q的结局</strong>：
最终，阿Q因被误认为是革命党人而被捕，并被处以死刑。在临死前，他仍然试图通过精神胜利法来安慰自己，认为自己是“革命烈士”。</p>
</li>
</ol>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="主题与意义">主题与意义<a href="https://docs.nevergpdzy.cn/blog/2024/6/9/The_method_of_spiritual_victory#%E4%B8%BB%E9%A2%98%E4%B8%8E%E6%84%8F%E4%B9%89" class="hash-link" aria-label="主题与意义的直接链接" title="主题与意义的直接链接">​</a></h3>
<p>《阿Q正传》通过阿Q这个典型人物，鲁迅揭示了当时中国社会的病态和人民的精神困境。阿Q的精神胜利法反映了人们在面对困境时，通过自欺欺人和幻想来获得心理上的安慰。这种心理状态不仅是个人的悲剧，更是社会的病态。</p>
<p>鲁迅通过阿Q的形象，批判了当时中国社会的封建势力和人民的麻木不仁。他希望通过这部小说，唤醒人们的觉悟，让他们正视现实，积极面对生活中的挑战，而不是通过自欺欺人来逃避问题。</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="结语">结语<a href="https://docs.nevergpdzy.cn/blog/2024/6/9/The_method_of_spiritual_victory#%E7%BB%93%E8%AF%AD" class="hash-link" aria-label="结语的直接链接" title="结语的直接链接">​</a></h3>
<p>《阿Q正传》不仅是一部文学作品，更是一部社会批判的经典。阿Q的形象和他的精神胜利法，成为了中国文学史上的经典符号，具有深刻的现实意义和历史意义。通过这部小说，鲁迅向读者传达了对社会现状的深刻反思和对未来的期望。</p>
<p>阿Q和他的精神胜利法是鲁迅对中国社会的一种深刻反思。通过这个形象，鲁迅揭示了当时社会的病态和人民的精神困境。阿Q的故事不仅在当时引起了广泛的关注和讨论，也在今天仍具有重要的现实意义。我们可以从中看到人们在面对困境时的心理机制，同时也提醒我们要正视现实，积极面对生活中的挑战，而不是通过自欺欺人来逃避问题。</p>]]></content:encoded>
            <category>docusaurus</category>
        </item>
        <item>
            <title><![CDATA[部署文档网站]]></title>
            <link>https://docs.nevergpdzy.cn/blog/2024/05/01/</link>
            <guid>https://docs.nevergpdzy.cn/blog/2024/05/01/</guid>
            <pubDate>Wed, 01 May 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[官方安装文档]]></description>
            <content:encoded><![CDATA[<p><a href="https://www.docusaurus.cn/docs/installation" target="_blank" rel="noopener noreferrer">官方安装文档</a></p>
<p><a href="https://zhuanlan.zhihu.com/p/265608488" target="_blank" rel="noopener noreferrer">知乎简洁教程</a></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="ubuntu配置docusaurus环境">Ubuntu配置docusaurus环境<a href="https://docs.nevergpdzy.cn/blog/2024/05/01/#ubuntu%E9%85%8D%E7%BD%AEdocusaurus%E7%8E%AF%E5%A2%83" class="hash-link" aria-label="Ubuntu配置docusaurus环境的直接链接" title="Ubuntu配置docusaurus环境的直接链接">​</a></h2>
<p>安装nodejs</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -</span><br></span></code></pre></div></div>
<div class="language-c codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-c codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo apt</span><span class="token operator" style="color:#393A34">-</span><span class="token plain">get install </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">y nodejs</span><br></span></code></pre></div></div>
<p>安装Yarn</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list</span><br></span></code></pre></div></div>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo apt update</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sudo apt install yarn</span><br></span></code></pre></div></div>
<p>安装</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">npx create-docusaurus@latest my-website classic</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="rocky-linux配置docusaurus环境">Rocky linux配置docusaurus环境<a href="https://docs.nevergpdzy.cn/blog/2024/05/01/#rocky-linux%E9%85%8D%E7%BD%AEdocusaurus%E7%8E%AF%E5%A2%83" class="hash-link" aria-label="Rocky linux配置docusaurus环境的直接链接" title="Rocky linux配置docusaurus环境的直接链接">​</a></h2>
<p>安装nodejs</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">curl -fsSL https://rpm.nodesource.com/setup_20.x | bash -</span><br></span></code></pre></div></div>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">yum install -y nodejs</span><br></span></code></pre></div></div>
<p>安装Yarn</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo</span><br></span></code></pre></div></div>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo dnf install yarn</span><br></span></code></pre></div></div>
<p>安装</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">npx create-docusaurus@latest my-website classic</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="运行">运行<a href="https://docs.nevergpdzy.cn/blog/2024/05/01/#%E8%BF%90%E8%A1%8C" class="hash-link" aria-label="运行的直接链接" title="运行的直接链接">​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">cd my-website</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">npm start -- --port 5000</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="导出部署">导出部署<a href="https://docs.nevergpdzy.cn/blog/2024/05/01/#%E5%AF%BC%E5%87%BA%E9%83%A8%E7%BD%B2" class="hash-link" aria-label="导出部署的直接链接" title="导出部署的直接链接">​</a></h3>
<p>导出静态文件,导出到build文件夹中</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">npm run build</span><br></span></code></pre></div></div>
<p>部署测试</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">npm run serve</span><br></span></code></pre></div></div>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="项目结构">项目结构<a href="https://docs.nevergpdzy.cn/blog/2024/05/01/#%E9%A1%B9%E7%9B%AE%E7%BB%93%E6%9E%84" class="hash-link" aria-label="项目结构的直接链接" title="项目结构的直接链接">​</a></h4>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">my-website</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── blog</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">│   ├── 2019-05-28-hola.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">│   ├── 2019-05-29-hello-world.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">│   └── 2020-05-30-welcome.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── docs</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">│   ├── doc1.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">│   ├── doc2.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">│   ├── doc3.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">│   └── mdx.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── src</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">│   ├── css</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">│   │   └── custom.css</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">│   └── pages</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">│       ├── styles.module.css</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">│       └── index.js</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── static</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">│   └── img</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── docusaurus.config.js</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── package.json</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── README.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── sidebars.js</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">└── yarn.lock</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="添加对latex公式的支持">添加对Latex公式的支持<a href="https://docs.nevergpdzy.cn/blog/2024/05/01/#%E6%B7%BB%E5%8A%A0%E5%AF%B9latex%E5%85%AC%E5%BC%8F%E7%9A%84%E6%94%AF%E6%8C%81" class="hash-link" aria-label="添加对Latex公式的支持的直接链接" title="添加对Latex公式的支持的直接链接">​</a></h2>
<p>参考官方的教程<a href="https://docusaurus.io/docs/markdown-features/math-equations" target="_blank" rel="noopener noreferrer">官方Latex插件教程</a></p>
<p>记得看官方的示例</p>
<p>插件的KaTeX CSS添加错位置会导致公式渲染错误！！！！</p>
<p>（也可以参考这个站的配置文件）</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="经验">经验<a href="https://docs.nevergpdzy.cn/blog/2024/05/01/#%E7%BB%8F%E9%AA%8C" class="hash-link" aria-label="经验的直接链接" title="经验的直接链接">​</a></h3>
<p>下面这种单独出现的大写字母要放在``里，不然会报错</p>
<p><img decoding="async" loading="lazy" src="http://picture.nevergpdzy.cn/img_for_Typora/image-20240502205849267.png" alt="image-20240502205849267" class="img_ev3q"></p>
<p>h t ml添加的图片不要加zoom，不然会报错</p>
<p><img decoding="async" loading="lazy" src="http://picture.nevergpdzy.cn/img_for_Typora/image-20240502210229835.png" alt="image-20240502210229835" class="img_ev3q"></p>]]></content:encoded>
            <category>hello</category>
            <category>docusaurus</category>
        </item>
    </channel>
</rss>