<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>charlie 之家</title>
  
  
  <link href="https://charliez0.js.org/atom.xml" rel="self"/>
  
  <link href="https://charliez0.js.org/"/>
  <updated>2022-03-06T13:37:21.852Z</updated>
  <id>https://charliez0.js.org/</id>
  
  <author>
    <name>charliez0</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>Encrypted Hello World</title>
    <link href="https://charliez0.js.org/2020/11/15/encrypt-helloworld/"/>
    <id>https://charliez0.js.org/2020/11/15/encrypt-helloworld/</id>
    <published>2020-11-14T16:00:00.000Z</published>
    <updated>2022-03-06T13:37:21.852Z</updated>
    
    <content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look.">  <script id="hbeData" type="hbeData" data-hmacdigest="323208c04a1cf3bac9475441cc567d487d21c5d6c3b8f1747facde36ced0a182">90b802059200f1da98db072b6ecfd0770fdc750cbf8106fee0f270e81269963904d1e6fd97880784c3a74e5d3ea178a539638936b68490745bf63cad66e0e846679eac07a9ff1dcb7117124ef630d90ba93212d571c3d9ffff9af7175e9c3f30ea735e37dd2df1ef71d2b6211af21a9c09abd3fcdfb0257bd589b4601746b298be14eddb221d2f215f39b3cb119010ff24b5b3598dfc0203a921c8d9cd9cb0dd2b6e48f17ddd7265a105b17cecc2cbf40e55bf154a612a6847ef28f19820969b1176d499cb770d0bf71aa83a845831d6da11b45f338cd7657410526ec9d14ba5a0bf7590fa70dd7d2267c17fb2973569bce2f413e50aefce15d804f9e81c1e4656eca678447f9df9b93325e3fa33ce77fc45058cede4c1bf424796fb19b5f5dac3766516d916112970f72ec81c71eb0c2e91d4abc15b6dda5197bb1a31a7f73a613ec5ee794e19237c1bcd4411675856240ba40c0f1442fa913ea680383714d9075b4b5a003950d1778cc4b9f4b8d59b62778a9c330d04a63997465536364b5fe0f5ef1ce32e13a78711bcf2e1bd8bdaae688fa08c75f1dbdf5aa0b7aae01bb0bf1818f8e8a1df82d7938ee23b384d4513033a81d38516a6dc09b0d6c5d7f6ff3d0b00e18580192022f3660d06d716c637e7bac4da4a5882686e7191747a27051f24d9964889ca1ca764400698d1de9c1d487306e634a17eea2307490fdf5604a9c89ed10ca8f2d7ff45e6501d4bea983a3d09d800be3d39c9d765322ea50b10fa878b0df24989430f80b660cce7c6f615d47931412d5bdf55558e077ba56545e30d7497a3a5a2c9f051ea17eb40b5a5b36c266a22e9f570cd2920096142188c0f3c6db6912edafd4fccebd83c37d29e3b35fef47a5a82ef2354dd1254e0cfdce8db5b8603ed04bcae873ab44a51100df85fea4828a774d4b64e85db490aba2e42e2e0777bd6c903f7830347ed6309868587b0c36485022f696573291e7eafffb99131be878e6c0ddd899bec87902ef04dd0074c0187439b4c5ee1f676caeea85e2961c5e8311044391ee2ec570c676681e2ff446668bf2dddffa0f17ba77c4da7b0a856bfba1bb2d997cb4869b8c94c4c127fa5441c752447905619ab6da61ecbf48a6dceb10463d636e927647f3368ebdb02ba7f93f8a807b771dd0369e398673efef9cf37df39984638345277761e54b65678436164fb634f51821af910a277166f0e45f7443bcab92da663dbafbcfcd5135f0d3d4c7e0613e5798bdd3e6e1e731f31dffe8ab9278f33fff29aa1f7ad8d5480c0d6754ac3588373e8bd5a3e846200a54914495c08f4ed788f66f99805d2adcf092453de4576b47a3261d5751505501fc268b2f002f4e494835d966fdbde0eb92a83becca86f378cc10d445a823fdaccb2bbba7528c1deecd2fb08eaf785f1fb825ab41943e33b4ede73cdd2bfee9d1bd77d6e8b0a3cc51f97829c2b6121f37b66ed315ed2060d46d363368a84160f8326cd099a52a68564702cc99ee8ffab8524b54a8cd632195da9c55d54ced53ec555b0dfd661bfbac7731498a076c716a702402aa6abcb22c5ee3b59110f8596264ad90b30d78968b04081963ebdb55dc558094b2d612e9948293fa15f51c460ce2d34e1079222e3a90ab119d7574645c6e6568c9175919697b42ba625988b34498eb053cbfb22a67bed6f49db1f3e6ce3cc1d21555ed9b72ed89d1107444d0dc602bec2c2e57920052804109eab78eeb986b8ec39729fa29c2b2cfc22206d9f7336919542887e56d767a4da89b75de0c9a652b24cef968ae13e210c3c55a4f0af1f337005fff5009734e0512d6516c9a70b28a0f25225abcaf7f73e650e5e91daf0fc61b05da326f40fad13db93d839d5e1adca150d4dcb4bb8f9c680be88f44fee3847af1ed22cabd45e226da74625979c0f40e078841cd6ccaff80aaf07206829830557c52840636533607d0528b69a12ee6bd84c68ec6019eb09ee593d76e6d6697c3174268696de6367f40dab8ab212e3418f4bb57bc84d773b3d6cf34d271f53071beb101d36834207aa7b1f1d7f3f7f0c30233e924b3cd529d837e2817ebf09cfcc5aef576b9461ac26a6ab0b0723df487b79b8d146822a20a195e9d6fb8b320a4c3e07640051b11084f8a03ba38b05b6ac99bc7111e2de0500fcbeef3fbb9c91850d6ef5017ba09ba2e6e00cbf1042a6119643508d0fe0dafa1c7b1474988f7edb18a283f0968728ea8f1351be226e684c007c4c03562a6f4eb0b4079e8d95e5966542b44b41d46613acd4943e37f2a487939a8cbd3be5a35ca1f95e93445c89567e2756aef780ce5a3803bf044d477b60df18c202b8e4b5b3fd96c472d5f01b04686c504779e48a074b1c07b2d8d162f1b75af9db8832e89c063f9c9a140fe34382b840436f1a1af223b4c21daeae18223c5b1c46a974d50af05d32cf75eff047b298b33ac6a8eb6ad85e11ea0f5a84706714ff856f856c6b16cff5e404500dbb233e4227fdb886a75121dd370aa11c08d2e42f4a966d3ab555616070bcc115a086d39cbd9b07242e0560680122c38006a3d88fb3637a62c9757eb41ee7761ed7db19a27947f243658e50f68f2eb4beee68e49dade04cd763717c4289b5705e419164656e516b06e5a24608f204ac6d832a0210abba3959913a8b351862f9c9fd7ce8656c5a0e95a786b868e36236d453a6f0911ab1d4969d9257f8a92ea886c704afe8ce2b20dcee2f59c20619c7a65a6778f4a0a41140ae67a305e7ff93f7786c26ef9116bf4db69a990f925f3fff575e7cb307948b889af76ca2b37fca164a7eb9bd17c9711d1d5dec02d1513188919599ad9a9eceda21aa3d4fd90938b8c0827aa7b662bca5154f073ea7ba3061e50b0d4cb1555fa8e0c3b2af8021c0bfc77bd1750d4d0403fa299c14e70678efaa8dbc7dd14c91d64848b2b876bf269523c12199627bd4b7e8d5657f1d0b82f77133d412958e3e009647298a70824e5114fc5df7248438e1921105cea7914bdefccdfef0dbb72a8950d1b4a01280bd9343afeedfbca0f08a6f95c4e18c3a17d57ae93f19f64945f83bbabc7d39c624dc93e6f1d37a4d7a0df5a61e95b356930099da13edb5eea5f0df566391095f1715bf7bb8ed041e15231afc72de4273c86a5bd5abbc681a910985fc239ca0c4bc28f98c5bab19f5eb241bd7801c00b68264de902a8ee7b2769a8324c302944c8b17f5b20fc201fb40433c40993555f9f10313d45ed39a7d551fb348d5f03510ec0f1a4526ddbf3a4bef5943651f85e99e32b556964b625fd76897f1335110d0c1121d62b53189bf0bd3b2122f9b4c39f66ee6d277fa29468dd3aba688f67178b096748314b91a8f0e0038014be83ff6c54690d17815b5f5e8d13542530d829930402c310d0093605224a23955b34f722873dbce655b01b863c0bd53fcedf426174a6561b669d2927241ee66ddbe378413a81f199f4ff4c787db4773452f7e8137a87d13e0538fb7223510017ffdfaa040eafa44417ef4ce0180279c2c676a99990700c822a1424346ae0b2defa0d6e583c73e728e175d1754e087716fb5a3a8cb84d019accae5ef50dd11bfc314024979ac9c3466986581a5be962b368e544bd44ecf3e27db012e319187ce920732667ef6cd672ee7714140edac0fab839b6254cef26c711d6d4820b3bb815c60298a1df75c0bec21b4f69c1258cecf243fef2d8da3383cd5cd48a74b72639fd4631f135f43253c901913a61ea13f6fc535085421cb48f2ef9cfbdddfbf411eae34cf7462ddc6d604e7ce4cc58be6f056251eb0db9217edf487884b38b769841fe30d7ea2855a433229c77965a968d4c16f0d1c99b0b039df2e34ec2491959ecaa8e334389107d29bc7fa5fc03c8f47d102f3a061b8eefe21b01a40574998c9e99e51c6e2931da971c38b5671817e990abe84721eb3a950e4614043c319a40b21ccd413878354969e5ae758f12ae7e95826dafffed150111def96c863ad07abe23fad793cbe0f7949ae25d3c86cb81a2f4a3268f8adbd1426c1b430c7c4f27d0c1f9c8144dd54194e05752a9e916796937cd6d23046abb7260e38931bb4514b88463f4bf526e6ca4a1b7d158c1442bdaa75436206958e5bc182023d66c56602beabb481c4aec3f85b20cb93c3a8d4fa29baa93eaa1ec8820342ac32ac368c68a7ef843670b20c4f481a636327917f100943b11bb62f5b82b5551b8efe709e3e06941461bdc89675bc08ed6106630e57ff57ed394bdfa1a792fd0359b5bb89e072356c0e6cecd46d3c8d91c1cf6eb9046a1a1e62545ac59f1d4410a6490a0de869b2ed3d8c10bf5325c4ac3d3f00204bde0e664ba8c06ab0ceb90d18ac12f1513f951f00018944bb99a4287f8e95f878372c203c9ec1ded1bc82338968872b4d901d3398c011843e780b3e422473bd5fe788b7c8812b9f3c71887ce32327f1bc70cb60393f635cacad51bfa61ac4995729c7ad67432645bfc84cc0bbd0c49d7a37f7e8e179fc304b2790fa9fccb5efd50c0128ad49a5dcd59c3dfaba2fe49af701d6584905cbf0ea7a5d618196201d82072ed659d5e0096084ab4bec8c7597f893fba419aef5284c1b2572e3537af1fd64f264194f4b0a975e0204aab926c68178d41ae906980cc8fbd1ab4965227e9b357a15577cfb020a220c08347348be974d2de5121070382af3a1d598f1804bbc28d13ef3238030d5b1d7839a4cac1f96cf0aafeaf8c6d15edc4bcac578e432aacf6ff716aa5685f59ce853053e2f58791db51d5bd731c4e71946810dcc60d2a0afa983a1094bfde5c6ac2bb8b989595260722c4e8470bd1cb4715b6ec201d740387ffe4171512304b500491dcba7e5fad37e32ab6c0289892cc09f64301117f8d58773ef2dd470a4fdb2e75b543a7a2f0ada0ba1d58ffdae52dde23843a2ab4c975dc61befbf6140c629da1488d8dcacda22113dffa3e16b2b6d62ed63601d80907e87a5518e2553416aa90f5e1140047d48ccb6250f045790aeb1d5bc65f6a79b0d53ae076f198c5d4b31283f2b7eb0b3f42758e02c15d2d7667302d239ae613685500b728cdf364c847642499d35f62e684f240e2cd32a3d85076f8c1edb38ed789d319b8a1e37bf65c3160dfe1c584feb473a133b98bef62016b5a7363162dd87f8dbce994be8a42c8fb95c9bbd547a781d9aab0f3f6479453a608c3c27f1d4e1e8bb4b536e8c4ecf1cbf3f73bfb067f6854d466a66c91e9696d68b4419ca7776c7bfcc1f06971fed505c78b3c1960d157771565383e2a9a5f2d375705355ff0ae5ec5a215d6b2b2e9b13586eea0c65234dc4da5a392d78ade1225fa0262842639dfb0cf274c161a187946217a35596c3374c867fdbe6841d13220f8d181cd077e721d0ee82686405808b8b92c603a107835cc09b4f59ee70f8b38aacb2bbc765e3980d3862a6c6662aa9fb3b843aeb257d40ad103847f10b2679d80ab9a09057ed02d2123b59f12791e89d1336c23f1c9da56f54564f8d910f0c11998c5231bfd0421b10a10021a5873e4fae92bcab9c6d7b481c63ea11774793a16c682eb2e266c9c103816fd69e3e8f2506565d57a8bee7b4184109b47839aaa5239981932c9c6e48ee3ca6e840681550d7f3708b092076ddc6c4a04e0a2ed2578e</script>  <div class="hbe hbe-content">    <div class="hbe hbe-input hbe-input-default">      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">        <span class="hbe hbe-input-label-content hbe-input-label-content-default">Hey, password is required here.</span>      </label>    </div>  </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
    
    
    <summary type="html">Password is helloworld</summary>
    
    
    
    <category term="测试" scheme="https://charliez0.js.org/categories/%E6%B5%8B%E8%AF%95/"/>
    
    
    <category term="测试" scheme="https://charliez0.js.org/tags/%E6%B5%8B%E8%AF%95/"/>
    
  </entry>
  
  <entry>
    <title>Hello World</title>
    <link href="https://charliez0.js.org/2020/11/15/helloworld/"/>
    <id>https://charliez0.js.org/2020/11/15/helloworld/</id>
    <published>2020-11-14T16:00:00.000Z</published>
    <updated>2023-06-26T07:25:40.479Z</updated>
    
    <content type="html"><![CDATA[<img lazyload="" src="/images/loading.svg" data-src="/2020/11/15/helloworld/cover.webp" class="" title="spaced title"><p><em>Hello world!</em><br><strong>Hello world!</strong><br><code>Hello world!</code></p><span id="more"></span><div class="highlight-container" data-rel="Cpp"><figure class="iseeu highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;iostream&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;cstdio&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;cstring&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;algorithm&gt;</span></span></span><br><span class="line"><span class="keyword">using</span> <span class="keyword">namespace</span> std;</span><br><span class="line"><span class="function"><span class="type">int</span> <span class="title">main</span><span class="params">(<span class="type">void</span>)</span></span></span><br><span class="line"><span class="function"></span>{</span><br><span class="line">    <span class="type">int</span> a,b;</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">"%d%d"</span>,&amp;a,&amp;b);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">"%d\n"</span>,a+b);</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure></div><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -2.148ex;" xmlns="http://www.w3.org/2000/svg" width="32.142ex" height="5.564ex" role="img" focusable="false" viewBox="0 -1509.9 14206.6 2459.4"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mfrac"><g data-mml-node="mrow" transform="translate(220,676)"><g data-mml-node="mi"><path data-c="1D715" d="M202 508Q179 508 169 520T158 547Q158 557 164 577T185 624T230 675T301 710L333 715H345Q378 715 384 714Q447 703 489 661T549 568T566 457Q566 362 519 240T402 53Q321 -22 223 -22Q123 -22 73 56Q42 102 42 148V159Q42 276 129 370T322 465Q383 465 414 434T455 367L458 378Q478 461 478 515Q478 603 437 639T344 676Q266 676 223 612Q264 606 264 572Q264 547 246 528T202 508ZM430 306Q430 372 401 400T333 428Q270 428 222 382Q197 354 183 323T150 221Q132 149 132 116Q132 21 232 21Q244 21 250 22Q327 35 374 112Q389 137 409 196T430 306Z"></path></g><g data-mml-node="mi" transform="translate(566,0)"><path data-c="1D462" d="M21 287Q21 295 30 318T55 370T99 420T158 442Q204 442 227 417T250 358Q250 340 216 246T182 105Q182 62 196 45T238 27T291 44T328 78L339 95Q341 99 377 247Q407 367 413 387T427 416Q444 431 463 431Q480 431 488 421T496 402L420 84Q419 79 419 68Q419 43 426 35T447 26Q469 29 482 57T512 145Q514 153 532 153Q551 153 551 144Q550 139 549 130T540 98T523 55T498 17T462 -8Q454 -10 438 -10Q372 -10 347 46Q345 45 336 36T318 21T296 6T267 -6T233 -11Q189 -11 155 7Q103 38 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g><g data-mml-node="mrow" transform="translate(325.5,-686)"><g data-mml-node="mi"><path data-c="1D715" d="M202 508Q179 508 169 520T158 547Q158 557 164 577T185 624T230 675T301 710L333 715H345Q378 715 384 714Q447 703 489 661T549 568T566 457Q566 362 519 240T402 53Q321 -22 223 -22Q123 -22 73 56Q42 102 42 148V159Q42 276 129 370T322 465Q383 465 414 434T455 367L458 378Q478 461 478 515Q478 603 437 639T344 676Q266 676 223 612Q264 606 264 572Q264 547 246 528T202 508ZM430 306Q430 372 401 400T333 428Q270 428 222 382Q197 354 183 323T150 221Q132 149 132 116Q132 21 232 21Q244 21 250 22Q327 35 374 112Q389 137 409 196T430 306Z"></path></g><g data-mml-node="mi" transform="translate(566,0)"><path data-c="1D461" d="M26 385Q19 392 19 395Q19 399 22 411T27 425Q29 430 36 430T87 431H140L159 511Q162 522 166 540T173 566T179 586T187 603T197 615T211 624T229 626Q247 625 254 615T261 596Q261 589 252 549T232 470L222 433Q222 431 272 431H323Q330 424 330 420Q330 398 317 385H210L174 240Q135 80 135 68Q135 26 162 26Q197 26 230 60T283 144Q285 150 288 151T303 153H307Q322 153 322 145Q322 142 319 133Q314 117 301 95T267 48T216 6T155 -11Q125 -11 98 4T59 56Q57 64 57 83V101L92 241Q127 382 128 383Q128 385 77 385H26Z"></path></g></g><rect width="1338" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(1855.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="msup" transform="translate(2911.6,0)"><g data-mml-node="mi"><path data-c="210E" d="M137 683Q138 683 209 688T282 694Q294 694 294 685Q294 674 258 534Q220 386 220 383Q220 381 227 388Q288 442 357 442Q411 442 444 415T478 336Q478 285 440 178T402 50Q403 36 407 31T422 26Q450 26 474 56T513 138Q516 149 519 151T535 153Q555 153 555 145Q555 144 551 130Q535 71 500 33Q466 -10 419 -10H414Q367 -10 346 17T325 74Q325 90 361 192T398 345Q398 404 354 404H349Q266 404 205 306L198 293L164 158Q132 28 127 16Q114 -11 83 -11Q69 -11 59 -2T48 16Q48 30 121 320L195 616Q195 629 188 632T149 637H128Q122 643 122 645T124 664Q129 683 137 683Z"></path></g><g data-mml-node="mn" transform="translate(609,413) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><g data-mml-node="mrow" transform="translate(4090.8,0)"><g data-mml-node="mo" transform="translate(0 -0.5)"><path data-c="28" d="M701 -940Q701 -943 695 -949H664Q662 -947 636 -922T591 -879T537 -818T475 -737T412 -636T350 -511T295 -362T250 -186T221 17T209 251Q209 962 573 1361Q596 1386 616 1405T649 1437T664 1450H695Q701 1444 701 1441Q701 1436 681 1415T629 1356T557 1261T476 1118T400 927T340 675T308 359Q306 321 306 250Q306 -139 400 -430T690 -924Q701 -936 701 -940Z"></path></g><g data-mml-node="mfrac" transform="translate(736,0)"><g data-mml-node="mrow" transform="translate(220,676)"><g data-mml-node="msup"><g data-mml-node="mi"><path data-c="1D715" d="M202 508Q179 508 169 520T158 547Q158 557 164 577T185 624T230 675T301 710L333 715H345Q378 715 384 714Q447 703 489 661T549 568T566 457Q566 362 519 240T402 53Q321 -22 223 -22Q123 -22 73 56Q42 102 42 148V159Q42 276 129 370T322 465Q383 465 414 434T455 367L458 378Q478 461 478 515Q478 603 437 639T344 676Q266 676 223 612Q264 606 264 572Q264 547 246 528T202 508ZM430 306Q430 372 401 400T333 428Q270 428 222 382Q197 354 183 323T150 221Q132 149 132 116Q132 21 232 21Q244 21 250 22Q327 35 374 112Q389 137 409 196T430 306Z"></path></g><g data-mml-node="mn" transform="translate(650.8,363) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><g data-mml-node="mi" transform="translate(1054.3,0)"><path data-c="1D462" d="M21 287Q21 295 30 318T55 370T99 420T158 442Q204 442 227 417T250 358Q250 340 216 246T182 105Q182 62 196 45T238 27T291 44T328 78L339 95Q341 99 377 247Q407 367 413 387T427 416Q444 431 463 431Q480 431 488 421T496 402L420 84Q419 79 419 68Q419 43 426 35T447 26Q469 29 482 57T512 145Q514 153 532 153Q551 153 551 144Q550 139 549 130T540 98T523 55T498 17T462 -8Q454 -10 438 -10Q372 -10 347 46Q345 45 336 36T318 21T296 6T267 -6T233 -11Q189 -11 155 7Q103 38 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g><g data-mml-node="mrow" transform="translate(245.9,-719.9)"><g data-mml-node="mi"><path data-c="1D715" d="M202 508Q179 508 169 520T158 547Q158 557 164 577T185 624T230 675T301 710L333 715H345Q378 715 384 714Q447 703 489 661T549 568T566 457Q566 362 519 240T402 53Q321 -22 223 -22Q123 -22 73 56Q42 102 42 148V159Q42 276 129 370T322 465Q383 465 414 434T455 367L458 378Q478 461 478 515Q478 603 437 639T344 676Q266 676 223 612Q264 606 264 572Q264 547 246 528T202 508ZM430 306Q430 372 401 400T333 428Q270 428 222 382Q197 354 183 323T150 221Q132 149 132 116Q132 21 232 21Q244 21 250 22Q327 35 374 112Q389 137 409 196T430 306Z"></path></g><g data-mml-node="msup" transform="translate(566,0)"><g data-mml-node="mi"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g><g data-mml-node="mn" transform="translate(605,289) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g><rect width="1826.3" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(3024.5,0)"><path data-c="2B" d="M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z"></path></g><g data-mml-node="mfrac" transform="translate(4024.7,0)"><g data-mml-node="mrow" transform="translate(220,676)"><g data-mml-node="msup"><g data-mml-node="mi"><path data-c="1D715" d="M202 508Q179 508 169 520T158 547Q158 557 164 577T185 624T230 675T301 710L333 715H345Q378 715 384 714Q447 703 489 661T549 568T566 457Q566 362 519 240T402 53Q321 -22 223 -22Q123 -22 73 56Q42 102 42 148V159Q42 276 129 370T322 465Q383 465 414 434T455 367L458 378Q478 461 478 515Q478 603 437 639T344 676Q266 676 223 612Q264 606 264 572Q264 547 246 528T202 508ZM430 306Q430 372 401 400T333 428Q270 428 222 382Q197 354 183 323T150 221Q132 149 132 116Q132 21 232 21Q244 21 250 22Q327 35 374 112Q389 137 409 196T430 306Z"></path></g><g data-mml-node="mn" transform="translate(650.8,363) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><g data-mml-node="mi" transform="translate(1054.3,0)"><path data-c="1D462" d="M21 287Q21 295 30 318T55 370T99 420T158 442Q204 442 227 417T250 358Q250 340 216 246T182 105Q182 62 196 45T238 27T291 44T328 78L339 95Q341 99 377 247Q407 367 413 387T427 416Q444 431 463 431Q480 431 488 421T496 402L420 84Q419 79 419 68Q419 43 426 35T447 26Q469 29 482 57T512 145Q514 153 532 153Q551 153 551 144Q550 139 549 130T540 98T523 55T498 17T462 -8Q454 -10 438 -10Q372 -10 347 46Q345 45 336 36T318 21T296 6T267 -6T233 -11Q189 -11 155 7Q103 38 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g><g data-mml-node="mrow" transform="translate(286.9,-719.9)"><g data-mml-node="mi"><path data-c="1D715" d="M202 508Q179 508 169 520T158 547Q158 557 164 577T185 624T230 675T301 710L333 715H345Q378 715 384 714Q447 703 489 661T549 568T566 457Q566 362 519 240T402 53Q321 -22 223 -22Q123 -22 73 56Q42 102 42 148V159Q42 276 129 370T322 465Q383 465 414 434T455 367L458 378Q478 461 478 515Q478 603 437 639T344 676Q266 676 223 612Q264 606 264 572Q264 547 246 528T202 508ZM430 306Q430 372 401 400T333 428Q270 428 222 382Q197 354 183 323T150 221Q132 149 132 116Q132 21 232 21Q244 21 250 22Q327 35 374 112Q389 137 409 196T430 306Z"></path></g><g data-mml-node="msup" transform="translate(566,0)"><g data-mml-node="mi"><path data-c="1D466" d="M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mn" transform="translate(523,289) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g><rect width="1826.3" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(6313.3,0)"><path data-c="2B" d="M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z"></path></g><g data-mml-node="mfrac" transform="translate(7313.5,0)"><g data-mml-node="mrow" transform="translate(220,676)"><g data-mml-node="msup"><g data-mml-node="mi"><path data-c="1D715" d="M202 508Q179 508 169 520T158 547Q158 557 164 577T185 624T230 675T301 710L333 715H345Q378 715 384 714Q447 703 489 661T549 568T566 457Q566 362 519 240T402 53Q321 -22 223 -22Q123 -22 73 56Q42 102 42 148V159Q42 276 129 370T322 465Q383 465 414 434T455 367L458 378Q478 461 478 515Q478 603 437 639T344 676Q266 676 223 612Q264 606 264 572Q264 547 246 528T202 508ZM430 306Q430 372 401 400T333 428Q270 428 222 382Q197 354 183 323T150 221Q132 149 132 116Q132 21 232 21Q244 21 250 22Q327 35 374 112Q389 137 409 196T430 306Z"></path></g><g data-mml-node="mn" transform="translate(650.8,363) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><g data-mml-node="mi" transform="translate(1054.3,0)"><path data-c="1D462" d="M21 287Q21 295 30 318T55 370T99 420T158 442Q204 442 227 417T250 358Q250 340 216 246T182 105Q182 62 196 45T238 27T291 44T328 78L339 95Q341 99 377 247Q407 367 413 387T427 416Q444 431 463 431Q480 431 488 421T496 402L420 84Q419 79 419 68Q419 43 426 35T447 26Q469 29 482 57T512 145Q514 153 532 153Q551 153 551 144Q550 139 549 130T540 98T523 55T498 17T462 -8Q454 -10 438 -10Q372 -10 347 46Q345 45 336 36T318 21T296 6T267 -6T233 -11Q189 -11 155 7Q103 38 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g><g data-mml-node="mrow" transform="translate(299.4,-719.9)"><g data-mml-node="mi"><path data-c="1D715" d="M202 508Q179 508 169 520T158 547Q158 557 164 577T185 624T230 675T301 710L333 715H345Q378 715 384 714Q447 703 489 661T549 568T566 457Q566 362 519 240T402 53Q321 -22 223 -22Q123 -22 73 56Q42 102 42 148V159Q42 276 129 370T322 465Q383 465 414 434T455 367L458 378Q478 461 478 515Q478 603 437 639T344 676Q266 676 223 612Q264 606 264 572Q264 547 246 528T202 508ZM430 306Q430 372 401 400T333 428Q270 428 222 382Q197 354 183 323T150 221Q132 149 132 116Q132 21 232 21Q244 21 250 22Q327 35 374 112Q389 137 409 196T430 306Z"></path></g><g data-mml-node="msup" transform="translate(566,0)"><g data-mml-node="mi"><path data-c="1D467" d="M347 338Q337 338 294 349T231 360Q211 360 197 356T174 346T162 335T155 324L153 320Q150 317 138 317Q117 317 117 325Q117 330 120 339Q133 378 163 406T229 440Q241 442 246 442Q271 442 291 425T329 392T367 375Q389 375 411 408T434 441Q435 442 449 442H462Q468 436 468 434Q468 430 463 420T449 399T432 377T418 358L411 349Q368 298 275 214T160 106L148 94L163 93Q185 93 227 82T290 71Q328 71 360 90T402 140Q406 149 409 151T424 153Q443 153 443 143Q443 138 442 134Q425 72 376 31T278 -11Q252 -11 232 6T193 40T155 57Q111 57 76 -3Q70 -11 59 -11H54H41Q35 -5 35 -2Q35 13 93 84Q132 129 225 214T340 322Q352 338 347 338Z"></path></g><g data-mml-node="mn" transform="translate(498,289) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g><rect width="1826.3" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(9379.8,0) translate(0 -0.5)"><path data-c="29" d="M34 1438Q34 1446 37 1448T50 1450H56H71Q73 1448 99 1423T144 1380T198 1319T260 1238T323 1137T385 1013T440 864T485 688T514 485T526 251Q526 134 519 53Q472 -519 162 -860Q139 -885 119 -904T86 -936T71 -949H56Q43 -949 39 -947T34 -937Q88 -883 140 -813Q428 -430 428 251Q428 453 402 628T338 922T245 1146T145 1309T46 1425Q44 1427 42 1429T39 1433T36 1436L34 1438Z"></path></g></g></g></g></svg></mjx-container></p><pre class="mermaid">Start=&gt;start: 开始Input=&gt;inputoutput: 输入平时成绩和期末考试成绩Con1=&gt;condition: 期末考试成绩 &lt; 45 ?Con2=&gt;condition: 成绩 &lt; 60 ?Calc=&gt;subroutine: 期末成绩 = 期末考试成绩 * 0.5 + 平时成绩 * 0.5OutOK=&gt;inputoutput: 输出成绩OutGG=&gt;inputoutput: 在线挂科End=&gt;end: 结束Start-&gt;Input-&gt;Con1Con1(no)-&gt;Calc(bottom)-&gt;Con2Con2(yes, bottom)-&gt;OutGG-&gt;EndCon2(no)-&gt;OutOK-&gt;End</pre>]]></content>
    
    
    <summary type="html">&lt;img lazyload=&quot;&quot; src=&quot;/images/loading.svg&quot; data-src=&quot;/2020/11/15/helloworld/cover.webp&quot; class=&quot;&quot; title=&quot;spaced title&quot;&gt;

&lt;p&gt;&lt;em&gt;Hello world!&lt;/em&gt;&lt;br&gt;&lt;strong&gt;Hello world!&lt;/strong&gt;&lt;br&gt;&lt;code&gt;Hello world!&lt;/code&gt;&lt;/p&gt;</summary>
    
    
    
    <category term="测试" scheme="https://charliez0.js.org/categories/%E6%B5%8B%E8%AF%95/"/>
    
    
    <category term="测试" scheme="https://charliez0.js.org/tags/%E6%B5%8B%E8%AF%95/"/>
    
  </entry>
  
  <entry>
    <title>巧用 Vercel 路由</title>
    <link href="https://charliez0.js.org/2020/11/15/vercel-route/"/>
    <id>https://charliez0.js.org/2020/11/15/vercel-route/</id>
    <published>2020-11-14T16:00:00.000Z</published>
    <updated>2021-12-10T12:15:25.908Z</updated>
    
    <content type="html"><![CDATA[<h2 id="警告"><a href="#警告" class="headerlink" title="警告"></a>警告</h2><p>Vercel 中 Fair Use Policy 里面明确说明：</p><p><strong>Proxies and VPNs 和 Media hosting for hot-linking 为 Never Fair Use 范畴，请不要尝试在任何场合这样做，本人不对该行为担负任何有关责任。</strong><br>也就是说Vercel 只可以用 Rewrite 功能来做非代理其他网站性质的流量。</p><p>本文只讨论使用 Vercel 路由来搭建 Serverless 服务的方式。</p><h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>Vercel hobby 版本每月有免费 100G 的流量，拥有 AWS 香港、日本等国内相对优质的路由，相较于 Cloudflare 减速 CDN 拥有更稳定的速度。 但是 Vercel 自带的 Serverless 框架冷启动时间较长，一段事件后打开网页会有近 500ms 的启动延迟，而且只能在单地区部署 Serverless 框架，这些延迟会显著影响首次打开体验。 而在国内打开速度相对较慢的 Cloudflare Workers 拥有 0ms Worldwide Coldboot Time，这使得解决启动延迟变成了可能，那就是用 Vercel 路由 + Cloudflare Workers 渲染界面。</p><h2 id="Vercel-端"><a href="#Vercel-端" class="headerlink" title="Vercel 端"></a>Vercel 端</h2><h3 id="Rewrite-分流"><a href="#Rewrite-分流" class="headerlink" title="Rewrite 分流"></a>Rewrite 分流</h3><p>为了在 Cloudflare 端减少部分工作量，我选择通过 Vercel 进行分流，把异常的域名请求跳转至个人主页并把可以不通过 Cloudflare 的流量直接通过 Vercel 连接。 在 Vercel 新增的 <code>Has</code> 选项中，我们可以应对流量进行轻松分流。</p><div class="highlight-container" data-rel="Json"><figure class="iseeu highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">&quot;rewrites&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="punctuation">&#123;</span></span><br><span class="line">  <span class="attr">&quot;source&quot;</span><span class="punctuation">:</span> <span class="string">&quot;/(.*)&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;destination&quot;</span><span class="punctuation">:</span> <span class="string">&quot;https://status.charliez0.workers.dev/$1&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;has&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;type&quot;</span><span class="punctuation">:</span> <span class="string">&quot;header&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;key&quot;</span><span class="punctuation">:</span> <span class="string">&quot;host&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;value&quot;</span><span class="punctuation">:</span> <span class="string">&quot;(?:blacklist\\-|alt\\-|)status\\.charliez0(|sp)\\.(?:cf|ga|gq|ml|tk|vercel\\.app)&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span><span class="punctuation">]</span></span><br><span class="line"><span class="punctuation">&#125;</span><span class="punctuation">]</span><span class="punctuation">,</span></span><br><span class="line"><span class="attr">&quot;redirects&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="punctuation">&#123;</span></span><br><span class="line">  <span class="attr">&quot;source&quot;</span><span class="punctuation">:</span> <span class="string">&quot;/(.*)&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;destination&quot;</span><span class="punctuation">:</span> <span class="string">&quot;https://charliez0.js.org&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;permanent&quot;</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;has&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;type&quot;</span><span class="punctuation">:</span> <span class="string">&quot;header&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;key&quot;</span><span class="punctuation">:</span> <span class="string">&quot;host&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;value&quot;</span><span class="punctuation">:</span> <span class="string">&quot;^(?!((blacklist\\-|alt\\-|)status\\.charliez0(|sp)\\.(cf|ga|gq|ml|tk|vercel\\.app))).*$&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span><span class="punctuation">]</span></span><br><span class="line"><span class="punctuation">&#125;</span><span class="punctuation">]</span></span><br></pre></td></tr></table></figure></div><p>我们可以看出通过巧妙地设置正则表达式可以实现异常流量分流，使得项目主页的截屏界面与个人主页相同。</p><h3 id="HSTS-CORS-配置"><a href="#HSTS-CORS-配置" class="headerlink" title="HSTS + CORS 配置"></a>HSTS + CORS 配置</h3><p>使用 <code>Headers</code> 选项即可，此处只展示常用的 HSTS 配置</p><div class="highlight-container" data-rel="Json"><figure class="iseeu highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">&quot;headers&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="punctuation">&#123;</span></span><br><span class="line">  <span class="attr">&quot;source&quot;</span><span class="punctuation">:</span> <span class="string">&quot;/(.*)&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;headers&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;key&quot;</span><span class="punctuation">:</span> <span class="string">&quot;strict-transport-security&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;value&quot;</span><span class="punctuation">:</span> <span class="string">&quot;max-age=63072000; includeSubDomains; preload&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span><span class="punctuation">]</span></span><br><span class="line"><span class="punctuation">&#125;</span><span class="punctuation">]</span></span><br></pre></td></tr></table></figure></div><h2 id="Cloudflare-端"><a href="#Cloudflare-端" class="headerlink" title="Cloudflare 端"></a>Cloudflare 端</h2><p>稍后补坑。</p><h2 id="小结"><a href="#小结" class="headerlink" title="小结"></a>小结</h2><p>这次两个服务的协同工作让我从实践中体验到了多服务结合的力量，将来在我遇到问题的时候也会优先考虑多服务的结合，毕竟可以取各家免费之长嘛～</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;警告&quot;&gt;&lt;a href=&quot;#警告&quot; class=&quot;headerlink&quot; title=&quot;警告&quot;&gt;&lt;/a&gt;警告&lt;/h2&gt;&lt;p&gt;Vercel 中 Fair Use Policy 里面明确说明：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Proxies and VPNs 和 Med</summary>
      
    
    
    
    
  </entry>
  
  <entry>
    <title>Welcome</title>
    <link href="https://charliez0.js.org/2020/11/15/welcome/"/>
    <id>https://charliez0.js.org/2020/11/15/welcome/</id>
    <published>2020-11-14T16:00:00.000Z</published>
    <updated>2021-02-08T11:52:00.360Z</updated>
    
    
    
    
    
  </entry>
  
</feed>
