<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Cdn on IT Comparison</title><link>https://comparison.metacog.co.kr/tags/cdn/</link><description>Recent content in Cdn on IT Comparison</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 03 Aug 2026 06:23:28 +0900</lastBuildDate><atom:link href="https://comparison.metacog.co.kr/tags/cdn/index.xml" rel="self" type="application/rss+xml"/><item><title>CDN vs Origin Server: Who Actually Serves the Request</title><link>https://comparison.metacog.co.kr/posts/2026-08-03-cdn-vs-origin-server-who-actually-serves-the-request/</link><pubDate>Mon, 03 Aug 2026 06:23:28 +0900</pubDate><guid>https://comparison.metacog.co.kr/posts/2026-08-03-cdn-vs-origin-server-who-actually-serves-the-request/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;A &lt;strong class="kw"&gt;CDN&lt;/strong&gt; is a distributed network of edge servers that caches and delivers content close to users, while the &lt;strong class="kw"&gt;origin server&lt;/strong&gt; is the single authoritative source where that content is created or stored. The distinction matters for latency, scalability, and resilience, since most requests should never need to reach the origin at all.&lt;/p&gt;
&lt;h2 id="comparison-diagram"&gt;Comparison Diagram&lt;/h2&gt;
&lt;div class="compare-diagram"&gt;
&lt;svg viewBox="0 0 640 360" xmlns="http://www.w3.org/2000/svg"&gt;&lt;circle cx="70" cy="200" r="24" style="fill:none;stroke:var(--border)" stroke-width="1.5"/&gt;&lt;text x="70" y="205" text-anchor="middle" style="fill:var(--content)" font-size="11"&gt;Client&lt;/text&gt;&lt;rect x="150" y="70" width="200" height="220" rx="8" style="fill:var(--compare-a-soft);stroke:var(--compare-a)" stroke-width="1.5"/&gt;&lt;text x="250" y="52" text-anchor="middle" style="fill:var(--primary)" font-size="16" font-weight="bold"&gt;CDN&lt;/text&gt;&lt;text x="250" y="90" text-anchor="middle" style="fill:var(--content)" font-size="11"&gt;Distributed edge locations&lt;/text&gt;&lt;circle cx="200" cy="140" r="16" style="fill:var(--compare-a-soft);stroke:var(--compare-a)" stroke-width="1.5"/&gt;&lt;circle cx="300" cy="140" r="16" style="fill:var(--compare-a-soft);stroke:var(--compare-a)" stroke-width="1.5"/&gt;&lt;circle cx="250" cy="200" r="16" style="fill:var(--compare-a-soft);stroke:var(--compare-a)" stroke-width="1.5"/&gt;&lt;circle cx="200" cy="250" r="16" style="fill:var(--compare-a-soft);stroke:var(--compare-a)" stroke-width="1.5"/&gt;&lt;circle cx="300" cy="250" r="16" style="fill:var(--compare-a-soft);stroke:var(--compare-a)" stroke-width="1.5"/&gt;&lt;text x="250" y="278" text-anchor="middle" style="fill:var(--secondary)" font-size="10"&gt;Cache: static &amp;amp; edge-computed content&lt;/text&gt;&lt;rect x="460" y="150" width="140" height="90" rx="8" style="fill:var(--compare-b-soft);stroke:var(--compare-b)" stroke-width="1.5"/&gt;&lt;text x="530" y="133" text-anchor="middle" style="fill:var(--primary)" font-size="16" font-weight="bold"&gt;Origin Server&lt;/text&gt;&lt;text x="530" y="192" text-anchor="middle" style="fill:var(--content)" font-size="11"&gt;Single source&lt;/text&gt;&lt;text x="530" y="207" text-anchor="middle" style="fill:var(--content)" font-size="11"&gt;of truth&lt;/text&gt;&lt;line x1="95" y1="190" x2="148" y2="165" style="stroke:var(--content)" stroke-width="1.5"/&gt;&lt;polygon points="148,165 139,163 143,171" style="fill:var(--content)"/&gt;&lt;text x="115" y="150" text-anchor="middle" style="fill:var(--secondary)" font-size="9"&gt;request&lt;/text&gt;&lt;line x1="148" y1="215" x2="95" y2="210" style="stroke:var(--compare-a)" stroke-width="1.5"/&gt;&lt;polygon points="95,210 104,206 104,215" style="fill:var(--compare-a)"/&gt;&lt;text x="118" y="235" text-anchor="middle" style="fill:var(--secondary)" font-size="9"&gt;cached response&lt;/text&gt;&lt;line x1="352" y1="180" x2="458" y2="185" style="stroke:var(--compare-b)" stroke-width="1.5" stroke-dasharray="5,4"/&gt;&lt;polygon points="458,185 449,181 450,190" style="fill:var(--compare-b)"/&gt;&lt;text x="405" y="165" text-anchor="middle" style="fill:var(--secondary)" font-size="9"&gt;on cache miss&lt;/text&gt;&lt;line x1="458" y1="215" x2="352" y2="210" style="stroke:var(--compare-b)" stroke-width="1.5" stroke-dasharray="5,4"/&gt;&lt;polygon points="352,210 361,206 361,215" style="fill:var(--compare-b)"/&gt;&lt;text x="405" y="233" text-anchor="middle" style="fill:var(--secondary)" font-size="9"&gt;origin pull &amp;amp; cache&lt;/text&gt;&lt;text x="320" y="330" text-anchor="middle" style="fill:var(--secondary)" font-size="10"&gt;Most requests resolve at the edge; only misses/dynamic content reach the origin&lt;/text&gt;&lt;/svg&gt;
&lt;/div&gt;
&lt;h2 id="comparison-table"&gt;Comparison Table&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;CDN&lt;/th&gt;
&lt;th&gt;Origin Server&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Role in request path&lt;/td&gt;
&lt;td&gt;Intercepts requests at the edge and serves cached content directly&lt;/td&gt;
&lt;td&gt;Authoritative backend that generates or stores the original content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Geographic distribution&lt;/td&gt;
&lt;td&gt;Many points of presence worldwide, close to end users&lt;/td&gt;
&lt;td&gt;Typically one or a few fixed data center locations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Content served&lt;/td&gt;
&lt;td&gt;Cached copies of static assets or cacheable API responses&lt;/td&gt;
&lt;td&gt;Dynamically generated pages or master copies of files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cache miss handling&lt;/td&gt;
&lt;td&gt;Forwards uncached requests to the origin and stores the response per TTL&lt;/td&gt;
&lt;td&gt;Processes every request that reaches it; has no caching layer of its own&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latency&lt;/td&gt;
&lt;td&gt;Low, since content is served from the nearest edge node&lt;/td&gt;
&lt;td&gt;Higher, since every request travels to one fixed location&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Load on backend&lt;/td&gt;
&lt;td&gt;Absorbs most traffic, shielding the origin from direct load&lt;/td&gt;
&lt;td&gt;Only handles cache misses and non-cacheable requests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resilience to outages&lt;/td&gt;
&lt;td&gt;Can keep serving stale cached content if the origin goes down&lt;/td&gt;
&lt;td&gt;Site is effectively unavailable for anything not already cached elsewhere&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scaling and cost&lt;/td&gt;
&lt;td&gt;Scales via the CDN provider&amp;rsquo;s global network, billed per bandwidth/requests&lt;/td&gt;
&lt;td&gt;Must be scaled and provisioned directly, billed for compute and hosting&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="key-differences"&gt;Key Differences&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;CDN content lives on distributed &lt;strong class="kw"&gt;edge nodes&lt;/strong&gt;; the origin server is the single &lt;strong class="kw"&gt;source of truth&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;CDN caching cuts &lt;strong class="kw"&gt;latency&lt;/strong&gt; for users, but every &lt;strong class="kw"&gt;cache miss&lt;/strong&gt; still lands on the origin.&lt;/li&gt;
&lt;li&gt;CDN edge caching gives resilience against &lt;strong class="kw"&gt;origin outages&lt;/strong&gt; by serving stale content.&lt;/li&gt;
&lt;li&gt;Origin servers own &lt;strong class="kw"&gt;dynamic content&lt;/strong&gt; generation; CDNs only store what&amp;rsquo;s actually &lt;strong class="kw"&gt;cacheable&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="when-to-use-each"&gt;When to Use Each&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;CDN&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>