<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ビズドットオンライン</title>
	<atom:link href="https://it-biz.online/feed/" rel="self" type="application/rss+xml" />
	<link>https://it-biz.online</link>
	<description></description>
	<lastBuildDate>Tue, 09 Jun 2026 08:46:30 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://it-biz.online/wp-content/uploads/2019/10/cropped-4a332f05ade4ac7bb3c46c472cb5eac8-32x32.png</url>
	<title>ビズドットオンライン</title>
	<link>https://it-biz.online</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【IT用語解説】リバースプロキシとは？Webサーバーの前に置く理由を初心者向けに解説</title>
		<link>https://it-biz.online/it-skills/reverse-proxy/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Tue, 09 Jun 2026 08:46:28 +0000</pubDate>
				<category><![CDATA[IT-Skills]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[ネットワーク]]></category>
		<category><![CDATA[用語解説]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=11186</guid>

					<description><![CDATA[リバースプロキシとは、利用者からのリクエストをWebサーバーの前で受け取り、内部サーバーへ中継する仕組みです。役割と使い道を初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">リバースプロキシとは、<strong><span class="marker-under">利用者からのリクエストをWebサーバーの前で受け取り、内部のサーバーへ中継する仕組み</span></strong>です。</p>



<p class="wp-block-paragraph">Webサイトにアクセスした利用者は、実際のアプリサーバーへ直接つながっているように見えます。しかし裏側では、リバースプロキシが入口でリクエストを受け、適切な内部サーバーへ渡していることがあります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>リバースプロキシは、Webサービスの入口に立つ受付です。利用者からは受付だけが見え、奥にある複数のサーバーを直接意識しません。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、リバースプロキシの意味、フォワードプロキシとの違い、Webサーバーの前に置く理由、502/504エラーを見るときの考え方を初心者向けに整理します。</p>



<h2 class="wp-block-heading">リバースプロキシはWebサーバー前の受付</h2>



<p class="wp-block-paragraph">MDNでは、プロキシサーバーをネットワークの間に入る中間のプログラムやコンピューターとして説明し、その中でリバースプロキシはインターネットからのリクエストを受け取り、内部ネットワークのサーバーへ転送するものとして整理されています。</p>



<p class="wp-block-paragraph">つまりリバースプロキシは、利用者と内部サーバーの間に立ちます。利用者は <code>https://example.com</code> へアクセスし、リバースプロキシはその裏側で <code>app:8080</code> や <code>api:9000</code> のような内部サーバーへ中継します。</p>



<p class="wp-block-paragraph">次の図では、リバースプロキシをWebサービスの受付として見てください。ブラウザ、受付、内部サーバーの3者を分けると役割が理解しやすくなります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/reverse-proxy-concept.png" alt="ブラウザからリバースプロキシを経由して内部サーバーへ届く流れ"/><figcaption class="wp-element-caption">リバースプロキシは、外から見える入口としてリクエストを受け、内部サーバーへ中継します。</figcaption></figure>



<h2 class="wp-block-heading">フォワードプロキシとの違い</h2>



<p class="wp-block-paragraph">プロキシには、フォワードプロキシとリバースプロキシがあります。違いは、誰の代わりに動くかです。</p>



<p class="wp-block-paragraph">フォワードプロキシは、<strong><span class="marker-under">利用者側の代理としてインターネットへアクセス</span></strong>します。たとえば社内PCが外部サイトを見るときに、社内プロキシを経由するような構成です。</p>



<p class="wp-block-paragraph">一方、リバースプロキシはサーバー側の代理です。インターネット上の利用者から見える入口になり、奥にあるWebサーバーやアプリサーバーへリクエストを渡します。</p>



<p class="wp-block-paragraph">次の図では、プロキシが利用者側にいるのか、Webサイト側にいるのかを見てください。ここを間違えなければ、用語の混乱はかなり減ります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/reverse-proxy-forward-reverse.png" alt="フォワードプロキシとリバースプロキシの違いを利用者側とサーバー側で比較する図"/><figcaption class="wp-element-caption">フォワードプロキシは利用者側の代理、リバースプロキシはWebサイト側の入口として動きます。</figcaption></figure>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>種類</th><th>誰の前に立つか</th><th>主な目的</th></tr></thead><tbody><tr><td>フォワードプロキシ</td><td>利用者側</td><td>社内から外部サイトへ出る通信を中継する</td></tr><tr><td>リバースプロキシ</td><td>サーバー側</td><td>外部から来るリクエストを内部サーバーへ中継する</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">1つの入口から複数サーバーへ振り分ける</h2>



<p class="wp-block-paragraph">リバースプロキシは、1つのURLを入口にして、裏側の複数サーバーへリクエストを振り分けられます。たとえば <code>/app</code> はWeb画面、<code>/api</code> はAPIサーバー、<code>/static</code> は画像やCSSのサーバーへ送る、といった構成です。</p>



<p class="wp-block-paragraph">NGINXのリバースプロキシ設定でも、受け取ったリクエストを別のサーバーへ渡すために <code>proxy_pass</code> のような設定を使います。これは、入口で受けて、奥の処理先へ渡す代表的な考え方です。</p>



<p class="wp-block-paragraph">次の図では、利用者には1つのURLだけが見えていても、裏側ではリクエストの行き先が分かれている様子を見てください。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/reverse-proxy-routing.png" alt="リバースプロキシがパスごとにWebアプリ、API、画像サーバーへ振り分ける図"/><figcaption class="wp-element-caption">リバースプロキシは、パスやホスト名を見て、複数の内部サーバーへリクエストを振り分けられます。</figcaption></figure>



<pre class="wp-block-code"><code>location /api/ {
    proxy_pass http://api_server:9000;
}

location /app/ {
    proxy_pass http://app_server:8080;
}</code></pre>



<h2 class="wp-block-heading">リバースプロキシを前に置く理由</h2>



<p class="wp-block-paragraph">リバースプロキシは、単にリクエストを中継するだけではありません。Webサービスの入口に置くことで、HTTPSの処理、セキュリティ対策、キャッシュ、負荷分散、ログ集約などをまとめて扱いやすくなります。</p>



<p class="wp-block-paragraph">Cloudflareの解説でも、リバースプロキシはWebサーバーの前に置かれ、クライアントからのリクエストを中継する存在として説明されています。CDNやWAFのような仕組みも、利用者とオリジンサーバーの間に立つという意味ではリバースプロキシ的に働きます。</p>



<p class="wp-block-paragraph">次の図では、リバースプロキシを前に置く理由をアイコンで見てください。受付、警備、案内、記録係のような複数の役割を持つと考えると分かりやすいです。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/reverse-proxy-role.png" alt="リバースプロキシのTLS終端、WAF、キャッシュ、負荷分散、オリジン秘匿の役割"/><figcaption class="wp-element-caption">リバースプロキシは、TLS終端、防御、キャッシュ、負荷分散、ログ集約などの入口機能を担えます。</figcaption></figure>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>HTTPS通信の入口をまとめる</li>



<li>WAFやアクセス制御で攻撃を手前で止める</li>



<li>キャッシュで同じ応答を速く返す</li>



<li>複数のアプリサーバーへ負荷を分散する</li>



<li>内部サーバーの構成を外から見えにくくする</li>



<li>入口でアクセスログを集約する</li>
</ul>



<h2 class="wp-block-heading">502・504エラーを見るときの考え方</h2>



<p class="wp-block-paragraph">リバースプロキシを使う構成では、502 Bad Gatewayや504 Gateway Timeoutを見ることがあります。これは、利用者のブラウザとリバースプロキシの間だけでなく、リバースプロキシと内部サーバーの間も確認する必要があるという合図です。</p>



<p class="wp-block-paragraph">502は、入口のプロキシが奥のサーバーから有効な応答を得られなかったときに出ることがあります。504は、奥のサーバーからの応答が遅すぎる、または返ってこないときに見ることがあります。</p>



<p class="wp-block-paragraph">次の図では、どこで詰まっているかを分けて見てください。リバースプロキシは動いているが、奥のアプリサーバーが止まっている、というケースもあります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/reverse-proxy-trouble.png" alt="リバースプロキシで502 Bad Gatewayや504 Gateway Timeoutが起きる位置を示す図"/><figcaption class="wp-element-caption">502や504では、入口のプロキシと奥の内部サーバーを分けて原因を確認します。</figcaption></figure>



<h2 class="wp-block-heading">実際の配置イメージ</h2>



<p class="wp-block-paragraph">実際のWebサービスでは、DNS、CDN、WAF、リバースプロキシ、アプリサーバー、DBが段階的につながることがあります。すべてのサービスがこの構成になるわけではありませんが、外部と内部の境界にリバースプロキシが置かれることはよくあります。</p>



<p class="wp-block-paragraph">次の図では、利用者のリクエストが外側から内側へ進む流れを見てください。リバースプロキシは、アプリの手前で入口を整理する位置にあります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/reverse-proxy-placement.png" alt="DNS、CDN、WAF、リバースプロキシ、アプリサーバー、DBの配置を示す図"/><figcaption class="wp-element-caption">リバースプロキシは、外部と内部の境界に置かれ、アプリサーバーの前で入口を整理します。</figcaption></figure>



<h2 class="wp-block-heading">リバースプロキシでよくある誤解</h2>



<p class="wp-block-paragraph">リバースプロキシは、Webサーバーそのものではありません。Webサーバーとして静的ファイルを返すこともありますが、用語としては、利用者からのリクエストを内部サーバーへ中継する入口の役割を指します。</p>



<p class="wp-block-paragraph">また、リバースプロキシを置くだけで安全になるわけでもありません。公開範囲、転送先、ヘッダー、TLS証明書、タイムアウト、ログ、WAF設定などを正しく設計する必要があります。</p>



<p class="wp-block-paragraph">さらに、ロードバランサーやCDNと役割が重なることもあります。実際の製品では、リバースプロキシ、ロードバランシング、キャッシュ、WAFが1つのサービスにまとまっていることもあります。</p>



<h2 class="wp-block-heading">既存記事とあわせて読む順番</h2>



<p class="wp-block-paragraph">リバースプロキシは、HTTP、URL、DNS、Web API、CORSの理解とつながっています。先に通信の基本用語を押さえると、どこでリクエストが中継されるのかを追いやすくなります。</p>



<ul class="wp-block-list">
<li><a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a></li>



<li><a href="https://it-biz.online/it-skills/dns/">DNSとは何か？</a></li>



<li><a href="https://it-biz.online/it-skills/web_api/">APIとは？APIとWeb APIの違い</a></li>



<li><a href="https://it-biz.online/?p=11167">CORSとは？Access-Control-Allow-Originの意味</a></li>



<li><a href="https://it-biz.online/?p=11176">Webhookとは？APIとの違い</a></li>
</ul>



<h2 class="wp-block-heading">公式情報と確認先</h2>



<p class="wp-block-paragraph">仕様や実装で確認する場合は、MDNのプロキシ解説、NGINXのReverse Proxyドキュメント、Cloudflareのリバースプロキシ解説を確認します。製品ごとに設定名や挙動は異なるため、実装時は使う製品の公式ドキュメントを見てください。</p>



<ul class="wp-block-list">
<li><a href="https://developer.mozilla.org/en-US/docs/Glossary/Proxy_server">MDN: Proxy server</a></li>



<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Proxy_servers_and_tunneling">MDN: Proxy servers and tunneling</a></li>



<li><a href="https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy">NGINX Reverse Proxy</a></li>



<li><a href="https://www.cloudflare.com/en-gb/learning/cdn/glossary/reverse-proxy/">Cloudflare: What is a reverse proxy?</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">リバースプロキシとは、利用者からのリクエストをWebサーバーの前で受け取り、内部サーバーへ中継する仕組みです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>リバースプロキシはWebサイト側の入口として動く</li>



<li>フォワードプロキシは利用者側、リバースプロキシはサーバー側の代理</li>



<li>1つのURLから複数の内部サーバーへ振り分けられる</li>



<li>TLS終端、防御、キャッシュ、負荷分散、ログ集約に使われる</li>



<li>502や504では、プロキシと内部サーバーを分けて確認する</li>
</ul>



<p class="wp-block-paragraph">リバースプロキシを理解すると、Webサービスの入口、CDN、WAF、ロードバランサー、502/504エラーの見方がつながります。まずは「Webサーバーの前に置く受付」として押さえましょう。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【IT用語解説】Webhookとは？APIとの違いと通知が届く仕組みを初心者向けに解説</title>
		<link>https://it-biz.online/it-skills/webhook/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Tue, 09 Jun 2026 04:20:48 +0000</pubDate>
				<category><![CDATA[IT-Skills]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[用語解説]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=11176</guid>

					<description><![CDATA[Webhookとは、サービス側のイベントをきっかけに、指定したURLへHTTPリクエストで通知を送る仕組みです。APIとの違いや安全な扱い方を初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Webhookとは、<strong><span class="marker-under">あるサービスでイベントが起きたときに、あらかじめ指定したURLへHTTPリクエストで通知を送る仕組み</span></strong>です。</p>



<p class="wp-block-paragraph">たとえば、GitHubでコードがpushされたらCIを起動する、Stripeで決済が完了したら自社システムの注文状態を更新する、Bitbucketでリポジトリに変更があったら外部サーバーへ知らせる、といった場面で使われます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>Webhookは、こちらから何度も確認しに行く仕組みではありません。相手のサービス側で何かが起きたら、通知がこちらへ届く仕組みです。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、Webhookの意味、APIとの違い、HTTP POSTで通知が届く流れ、受信側で注意すべきセキュリティと再送対策を、IT用語解説として初心者向けに整理します。</p>



<h2 class="wp-block-heading">Webhookはイベント通知の仕組み</h2>



<p class="wp-block-paragraph">Webhookは、イベントをきっかけに外部サーバーへデータを届ける仕組みです。ここでいうイベントとは、<strong><span class="marker-under">決済完了、コードのpush、課題の作成、コメント投稿、ファイル更新など、サービス内で起きた出来事</span></strong>のことです。</p>



<p class="wp-block-paragraph">GitHub Docsでは、Webhookを使うと、ソフトウェアシステムで発生したイベントを購読し、そのイベントが起きたときにサーバーへデータ配信を自動で受け取れると説明されています。つまり、Webhookは「イベントが起きたら通知してもらう」ための入口です。</p>



<p class="wp-block-paragraph">次の図では、外部サービス、Webhook、自社サーバーの関係を見てください。イベントが配達レーンを通って自社サーバーへ届くイメージで捉えると、APIとの違いが理解しやすくなります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/webhook-concept.png" alt="外部サービスのイベントがWebhookで自社サーバーに届き、処理される流れ"/><figcaption class="wp-element-caption">Webhookは、サービス側で起きたイベントを指定URLへ配達する通知レーンです。</figcaption></figure>



<h2 class="wp-block-heading">WebhookとAPIの違い</h2>



<p class="wp-block-paragraph">APIは、こちらから相手のサーバーへリクエストを送り、必要なデータを取りに行く仕組みとして使われることが多いです。一方Webhookは、相手のサービス側でイベントが起きたとき、相手からこちらのURLへ通知が送られます。</p>



<p class="wp-block-paragraph">この違いは、ニュースを何度も見に行くか、速報通知を受け取るかの違いに近いです。APIポーリングは定期的に見に行く方法、Webhookは変化が起きたときに届く方法です。</p>



<p class="wp-block-paragraph">次の比較図では、APIポーリングとWebhookの違いを見てください。どちらが優れているかではなく、必要なタイミングと用途が違います。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/webhook-polling.png" alt="APIポーリングとWebhookの違いを左右の流れで比較する図"/><figcaption class="wp-element-caption">APIポーリングは定期的に確認し、Webhookはイベント発生時に通知を受け取ります。</figcaption></figure>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>項目</th><th>APIポーリング</th><th>Webhook</th></tr></thead><tbody><tr><td>動き方</td><td>こちらから定期的に確認する</td><td>相手からイベント発生時に通知される</td></tr><tr><td>向いている場面</td><td>今の状態を好きなタイミングで取得したい</td><td>変化が起きたらすぐ処理したい</td></tr><tr><td>注意点</td><td>確認回数が多いと無駄が増える</td><td>受信URLを安全に公開する必要がある</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">Webhookを構成する4つの要素</h2>



<p class="wp-block-paragraph">Webhookは、単にURLを登録するだけの仕組みではありません。実務では、イベント、送信先URL、HTTP POST、ペイロードをセットで考えます。さらに、送信元が本物か確認するための署名も重要です。</p>



<p class="wp-block-paragraph">次の図では、Webhookを構成する要素を分けて見てください。最初は「何が起きたか」「どこへ届くか」「どんなデータが届くか」の3点を押さえれば十分です。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/webhook-anatomy.png" alt="Webhookのイベント、送信先URL、HTTP POST、JSONペイロード、署名を整理する図"/><figcaption class="wp-element-caption">Webhookは、イベント、送信先URL、HTTP POST、ペイロードを基本要素として理解できます。</figcaption></figure>



<p class="wp-block-paragraph">ペイロードとは、Webhookで送られてくるデータ本体です。多くの場合、JSON形式でイベントの種類、発生時刻、対象データのID、関連オブジェクトなどが含まれます。</p>



<pre class="wp-block-code"><code>POST /webhook/github HTTP/1.1
Content-Type: application/json
X-GitHub-Event: push
X-Hub-Signature-256: sha256=...

{
  "ref": "refs/heads/main",
  "repository": {
    "name": "sample-app"
  }
}</code></pre>



<h2 class="wp-block-heading">Webhookの処理フロー</h2>



<p class="wp-block-paragraph">Webhookを使うには、まず通知を受け取るURLを外部サービス側に登録します。その後、購読したイベントが発生すると、外部サービスがそのURLへHTTPリクエストを送ります。受信側のサーバーは署名などを確認し、必要な処理を行い、成功したことをHTTPステータスで返します。</p>



<p class="wp-block-paragraph">次の図では、登録から2xx応答までの流れを見てください。Webhookは受け取った後の処理だけでなく、すばやく応答する設計も重要です。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/webhook-flow.png" alt="Webhookを登録してからイベントを受信し、検証して2xxを返すまでの流れ"/><figcaption class="wp-element-caption">Webhook受信側は、URL登録、POST受信、署名確認、処理、2xx応答までを設計します。</figcaption></figure>



<p class="wp-block-paragraph">Stripeの公式ドキュメントでも、Webhook endpointは複雑な処理でタイムアウトする前に、成功を示す2xxステータスをすばやく返すことが推奨されています。重い処理はキューへ入れ、あとで非同期に実行する設計にすると扱いやすくなります。</p>



<h2 class="wp-block-heading">Webhookの代表的な使い道</h2>



<p class="wp-block-paragraph">Webhookは、別のサービスで起きた出来事を自社システムに反映したいときに使います。単なる通知だけでなく、CI/CD、決済、チャット通知、監査ログ、外部ツール連携などにも使われます。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>GitHubでpushされたらCI/CDパイプラインを起動する</li>



<li>決済サービスで支払いが完了したら注文ステータスを更新する</li>



<li>問い合わせフォーム送信後にSlackへ通知する</li>



<li>JiraやBitbucketの変更を外部システムへ連携する</li>



<li>監査ログやセキュリティイベントを別ツールへ送る</li>
</ul>



<p class="wp-block-paragraph">GitHub Docsでは、CIパイプラインの起動、コラボレーションツールへの通知、外部課題管理ツールの更新、本番環境へのデプロイ、監査ログ記録などがWebhookの利用例として挙げられています。</p>



<h2 class="wp-block-heading">失敗時の再送と重複に注意する</h2>



<p class="wp-block-paragraph">Webhookは便利ですが、ネットワーク越しの通知なので失敗することがあります。受信側がタイムアウトした、5xxを返した、ネットワークが一時的に不安定だった、といった理由で、同じイベントが再送されることがあります。</p>



<p class="wp-block-paragraph">次の図では、失敗、再送、重複対策の流れを見てください。Webhookは「必ず1回だけ届く」と決めつけず、同じイベントが複数回届いても壊れないように作るのが実務では重要です。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/webhook-failure.png" alt="Webhookの失敗、再送、重複、イベントIDによる処理済み確認を示す図"/><figcaption class="wp-element-caption">Webhook受信処理では、再送と重複に備えてevent_idなどで処理済みを確認します。</figcaption></figure>



<p class="wp-block-paragraph">重複に強い処理を、冪等性のある処理と呼ぶことがあります。冪等とは、同じ操作を複数回実行しても結果が変わらない性質です。たとえば、同じ決済完了イベントを2回受け取っても、注文を2重に発送しないようにする必要があります。</p>



<h2 class="wp-block-heading">安全に受け取るためのポイント</h2>



<p class="wp-block-paragraph">Webhook endpointは、外部サービスからHTTPリクエストを受ける入口です。そのため、ただURLを公開するだけでなく、本物のサービスから届いた通知か、改ざんされていないか、失敗したときに追跡できるかを確認します。</p>



<p class="wp-block-paragraph">次の図では、Webhookを安全に受け取るためのチェックポイントを見てください。特に、署名検証、HTTPS、すばやい2xx応答、ログ、イベント選択、重複対策は最初から設計に入れるべきです。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/webhook-safety.png" alt="Webhook受信で確認すべき署名検証、HTTPS、応答、ログ、イベント選択を示す図"/><figcaption class="wp-element-caption">Webhook endpointは外部から叩かれる入口なので、署名検証、HTTPS、ログ、重複対策を設計します。</figcaption></figure>



<p class="wp-block-paragraph">Stripeの公式ドキュメントでは、Webhookが本当にStripeから送られたものか確認するために署名検証を行うことが推奨されています。GitHubにもWebhook deliveryの検証に関する公式ガイドがあります。どのサービスでも、署名やsecretの扱いは公式ドキュメントに従うのが安全です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>署名やsecretを検証し、なりすましを防ぐ</li>



<li>Webhook endpointはHTTPSで公開する</li>



<li>受信後はできるだけ早く2xxを返す</li>



<li>重い処理はキューや非同期処理へ回す</li>



<li>event_idなどで重複処理を防ぐ</li>



<li>必要なイベントだけ購読する</li>



<li>失敗時に追えるようログと監視を残す</li>
</ul>



<h2 class="wp-block-heading">Webhookでよくある誤解</h2>



<p class="wp-block-paragraph">WebhookはAPIの一種として説明されることもありますが、通常のAPI呼び出しとは向きが違います。自社システムが外部APIへ取りに行くのではなく、外部サービスが自社の受信URLへ送ってきます。</p>



<p class="wp-block-paragraph">また、Webhookを登録したからといって、自動的に何でも安全になるわけではありません。受信URLが公開されるため、署名検証やsecret管理、再送対策、ログ確認が必要です。</p>



<p class="wp-block-paragraph">さらに、Webhookはリアルタイムに近い通知には向いていますが、最終的な正しさを確認したい場合は、必要に応じてAPIで最新状態を取り直す設計も検討します。決済や権限変更など重要な処理では、Webhookだけを盲信しないことが大切です。</p>



<h2 class="wp-block-heading">既存記事とあわせて読む順番</h2>



<p class="wp-block-paragraph">Webhookは、API、HTTP、URL、CORS、非同期処理の理解とつながっています。先にHTTPリクエストやWeb APIの基本を押さえると、Webhookの受信処理が読みやすくなります。</p>



<ul class="wp-block-list">
<li><a href="https://it-biz.online/it-skills/web_api/">APIとは？APIとWeb APIの違い</a></li>



<li><a href="https://it-biz.online/it-skills/rest-api/">REST APIとは何か？</a></li>



<li><a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a></li>



<li><a href="https://it-biz.online/web-design/fetch-api/">【JavaScript】fetch APIとは？GETとPOSTの使い方</a></li>



<li><a href="https://it-biz.online/?p=11167">【JavaScript】CORSとは？Access-Control-Allow-Originの意味</a></li>
</ul>



<h2 class="wp-block-heading">公式情報と確認先</h2>



<p class="wp-block-paragraph">Webhookはサービスごとにイベント名、ペイロード、署名ヘッダー、再送仕様が違います。実装時は、必ず利用するサービスの公式ドキュメントで確認します。</p>



<ul class="wp-block-list">
<li><a href="https://docs.github.com/en/webhooks/about-webhooks">GitHub Docs: About webhooks</a></li>



<li><a href="https://docs.github.com/en/webhooks/webhook-events-and-payloads">GitHub Docs: Webhook events and payloads</a></li>



<li><a href="https://docs.stripe.com/webhooks">Stripe Docs: Webhooks</a></li>



<li><a href="https://support.atlassian.com/bitbucket-cloud/docs/manage-webhooks/">Bitbucket Cloud: Manage webhooks</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">Webhookとは、外部サービスでイベントが起きたときに、あらかじめ指定したURLへHTTPリクエストで通知を送る仕組みです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>Webhookは、イベント発生時に通知が届く仕組み</li>



<li>APIポーリングは取りに行く、Webhookは届く</li>



<li>基本要素はイベント、送信先URL、HTTP POST、ペイロード</li>



<li>受信側は署名検証、HTTPS、2xx応答、ログ、重複対策を設計する</li>



<li>実装時はサービスごとの公式ドキュメントでイベント名と署名仕様を確認する</li>
</ul>



<p class="wp-block-paragraph">Webhookを理解すると、API連携、決済連携、CI/CD、通知システムの仕組みが一段読みやすくなります。まずは「イベントが起きたら指定URLへ届く通知」として押さえましょう。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【JavaScript】CORSとは？Access-Control-Allow-Originの意味を初心者向けに解説</title>
		<link>https://it-biz.online/web-design/cors/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Tue, 09 Jun 2026 03:59:15 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WEBデザイン]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=11167</guid>

					<description><![CDATA[CORSとは、別オリジンのAPIレスポンスをブラウザが読めるかを、サーバーのHTTPヘッダーで判断する仕組みです。原因と直し方を初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">CORSとは、<strong><span class="marker-under">ブラウザで動くJavaScriptが、別オリジンのAPIレスポンスを読めるかどうかを、サーバーのHTTPヘッダーで判断する仕組み</span></strong>です。</p>



<p class="wp-block-paragraph">たとえば、<code>https://app.example.com</code> の画面から <code>https://api.example.com</code> のAPIを <code>fetch()</code> で呼び出すと、ブラウザは「この別の場所から返ってきたレスポンスをJavaScriptへ渡してよいか」を確認します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>CORSエラーは、通信が一切サーバーへ届いていないという意味ではありません。多くの場合、ブラウザがレスポンスをJavaScriptへ渡さない状態です。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、CORSの意味、オリジンの考え方、<code>Access-Control-Allow-Origin</code> の役割、プリフライト、よくある直し方を初心者向けに整理します。</p>



<h2 class="wp-block-heading">まず結論：CORSは別オリジンAPIの受付ゲート</h2>



<p class="wp-block-paragraph">CORSは、Cross-Origin Resource Sharingの略です。日本語では「オリジン間リソース共有」と説明されますが、最初は <strong>別のオリジンにあるAPIのレスポンスを、ブラウザ上のJavaScriptが読めるようにするための許可ルール</strong> と考えると分かりやすいです。</p>



<p class="wp-block-paragraph">重要なのは、CORSの判断をしている中心がブラウザだという点です。サーバーはレスポンスに許可ヘッダーを付け、ブラウザはそのヘッダーを見て、JavaScriptへレスポンスを渡すかどうかを決めます。</p>



<p class="wp-block-paragraph">次の図では、画面のJavaScript、ブラウザ、APIサーバーの間にある「受付ゲート」としてCORSを見てください。どこで許可を確認しているかを押さえると、エラーの読み方が変わります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/cors-concept.png" alt="フロントエンド、ブラウザ、APIサーバー、CORS許可ヘッダーの関係を示す図"/><figcaption class="wp-element-caption">CORSは、別オリジンAPIのレスポンスをブラウザ上のJavaScriptへ渡してよいかを確認する受付ゲートです。</figcaption></figure>



<h2 class="wp-block-heading">CORSエラーが出る典型例</h2>



<p class="wp-block-paragraph">CORSエラーは、フロントエンドとAPIを別々の場所で動かすとよく出ます。学習中なら、ReactやVueなどの開発サーバーが <code>http://localhost:3000</code>、APIサーバーが <code>http://localhost:8080</code> という構成で起きやすいです。</p>



<pre class="wp-block-code"><code>fetch(&quot;http://localhost:8080/api/users&quot;)
  .then((response) =&gt; response.json())
  .then((users) =&gt; console.log(users));</code></pre>



<p class="wp-block-paragraph">このコード自体が間違っているとは限りません。問題は、ブラウザから見ると <code>localhost:3000</code> と <code>localhost:8080</code> はポートが違うため、別オリジンとして扱われることです。</p>



<p class="wp-block-paragraph">そのためAPIサーバー側が、<code>http://localhost:3000</code> からの読み取りを許可するヘッダーを返さないと、ブラウザはJavaScriptにレスポンスを渡しません。</p>



<h2 class="wp-block-heading">オリジンとは何か</h2>



<p class="wp-block-paragraph">オリジンとは、Web上の出どころを表す単位です。MDNの同一オリジンポリシーの説明でも、オリジンはスキーム、ホスト、ポートの組み合わせとして扱われます。</p>



<p class="wp-block-paragraph">スキームは <code>https</code> や <code>http</code>、ホストは <code>example.com</code> のような名前、ポートは <code>443</code> や <code>3000</code> のような番号です。どれか1つでも違うと、ブラウザは別オリジンとして扱います。</p>



<p class="wp-block-paragraph">次の図では、オリジンを3点セットとして見てください。CORSエラーの原因を探すときは、ドメインだけでなく、<code>http</code> と <code>https</code> の違いやポート番号の違いも確認します。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/cors-origin.png" alt="同一オリジンと別オリジンをスキーム、ホスト、ポートで比較する図"/><figcaption class="wp-element-caption">オリジンは、スキーム、ホスト、ポートの3点で決まり、1点でも違うと別オリジンです。</figcaption></figure>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>比較</th><th>例</th><th>判定</th></tr></thead><tbody><tr><td>同じ</td><td><code>https://example.com/app</code> と <code>https://example.com/api</code></td><td>スキーム、ホスト、ポートが同じなので同一オリジン</td></tr><tr><td>スキーム違い</td><td><code>http://example.com</code> と <code>https://example.com</code></td><td>httpとhttpsが違うので別オリジン</td></tr><tr><td>ホスト違い</td><td><code>https://app.example.com</code> と <code>https://api.example.com</code></td><td>ホスト名が違うので別オリジン</td></tr><tr><td>ポート違い</td><td><code>http://localhost:3000</code> と <code>http://localhost:8080</code></td><td>ポートが違うので別オリジン</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">同一オリジンポリシーとCORSの関係</h2>



<p class="wp-block-paragraph">ブラウザには、同一オリジンポリシーという重要なセキュリティの仕組みがあります。これは、あるオリジンで読み込まれた文書やスクリプトが、別オリジンのリソースへ自由にアクセスしないように制限する考え方です。</p>



<p class="wp-block-paragraph">もしこの制限がなければ、悪意のあるページが、利用者がログイン中の別サイトの情報をブラウザ経由で読み取れてしまう可能性があります。CORSは、この制限を壊す仕組みではなく、サーバーが明示的に許可した範囲だけ例外を作る仕組みです。</p>



<p class="wp-block-paragraph">つまり、同一オリジンポリシーは基本のブレーキ、CORSはサーバーが許可した相手だけに開くゲートです。</p>



<h2 class="wp-block-heading">CORSの流れ</h2>



<p class="wp-block-paragraph">CORSでは、ブラウザがリクエストに <code>Origin</code> ヘッダーを付けることがあります。APIサーバーは、そのOriginを見て、許可する場合はレスポンスに <code>Access-Control-Allow-Origin</code> を返します。</p>



<p class="wp-block-paragraph">次の図では、Origin、許可ヘッダー、ブラウザの照合、JavaScriptへの受け渡しの順番を見てください。CORSの主役が「ブラウザの照合」であることが分かります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/cors-flow.png" alt="Originヘッダー、Access-Control-Allow-Origin、ブラウザ判定の流れを示す図"/><figcaption class="wp-element-caption">CORSでは、APIサーバーの許可ヘッダーをブラウザが照合し、JavaScriptへレスポンスを渡すか判断します。</figcaption></figure>



<pre class="wp-block-code"><code>Origin: https://app.example.com

Access-Control-Allow-Origin: https://app.example.com</code></pre>



<p class="wp-block-paragraph">上のように、リクエスト元のOriginと、レスポンスの <code>Access-Control-Allow-Origin</code> が対応していれば、ブラウザはレスポンスをJavaScriptへ渡せます。対応していなければ、コンソールにCORSエラーが表示されます。</p>



<h2 class="wp-block-heading">Access-Control-Allow-Originの意味</h2>



<p class="wp-block-paragraph"><code>Access-Control-Allow-Origin</code> は、APIサーバーが「このオリジンのJavaScriptには、レスポンスを読ませてよい」とブラウザへ伝えるレスポンスヘッダーです。</p>



<p class="wp-block-paragraph">開発中にすべてを許可したくなり、<code>*</code> を設定する例を見ることがあります。公開APIのように誰が読んでもよいリソースでは選択肢になりますが、ログイン情報やCookieを含むリクエストでは注意が必要です。</p>



<pre class="wp-block-code"><code>Access-Control-Allow-Origin: https://app.example.com
Vary: Origin</code></pre>



<p class="wp-block-paragraph">特定の画面からだけAPIを読ませたい場合は、上のように具体的なオリジンを返します。複数のオリジンを許可する場合でも、レスポンスには実際のリクエスト元に対応した1つのオリジンを返す実装が一般的です。</p>



<p class="wp-block-paragraph">また、Cookieなどの認証情報を含める場合は、<code>Access-Control-Allow-Credentials: true</code> やJavaScript側の <code>credentials: "include"</code> も関係します。この場合、<code>Access-Control-Allow-Origin: *</code> を安易に使えない点に注意します。</p>



<h2 class="wp-block-heading">プリフライトとは何か</h2>



<p class="wp-block-paragraph">プリフライトとは、本番のリクエストを送る前に、ブラウザが <code>OPTIONS</code> メソッドで事前確認する仕組みです。すべてのCORSリクエストで必ず発生するわけではありません。</p>



<p class="wp-block-paragraph">たとえば、<code>PUT</code> や <code>DELETE</code>、独自ヘッダー、JSONの <code>Content-Type: application/json</code> などが関係すると、ブラウザは先に「このメソッドやヘッダーで送ってよいか」をAPIサーバーへ確認することがあります。</p>



<p class="wp-block-paragraph">次の図では、プリフライトを「受付での事前確認」として見てください。OPTIONSが失敗すると、本番のPOSTやPUTの前に止まって見えることがあります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/cors-preflight.png" alt="OPTIONSプリフライト、本番リクエスト、許可ヘッダーの関係を示す図"/><figcaption class="wp-element-caption">プリフライトは、本番リクエストの前にブラウザがOPTIONSで許可を確認する事前確認です。</figcaption></figure>



<pre class="wp-block-code"><code>OPTIONS /api/users HTTP/1.1
Origin: https://app.example.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type</code></pre>



<p class="wp-block-paragraph">APIサーバーは、この事前確認に対して、許可するメソッドやヘッダーを返します。ここで必要なヘッダーが不足していると、ブラウザは本番リクエストへ進めません。</p>



<h2 class="wp-block-heading">CORSエラーの直し方</h2>



<p class="wp-block-paragraph">CORSエラーが出たときは、まずブラウザのConsoleだけで判断せず、Networkタブで実際のリクエストとレスポンスヘッダーを見ます。特に、<code>Origin</code>、<code>Access-Control-Allow-Origin</code>、プリフライトの <code>OPTIONS</code> を確認します。</p>



<p class="wp-block-paragraph">次の図では、CORSエラーを調べる順番を見てください。フロントエンドの <code>fetch()</code> を何度も書き換える前に、APIサーバーがどのヘッダーを返しているかを確認するのが近道です。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/cors-fix.png" alt="CORSエラーの原因調査をブラウザ、ネットワーク、レスポンスヘッダー、サーバー設定の順に見る図"/><figcaption class="wp-element-caption">CORSエラーは、Console、Network、レスポンスヘッダー、サーバー設定の順で見ると原因を切り分けやすくなります。</figcaption></figure>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>Consoleで、拒否されたOriginとURLを読む</li>
  <li>Networkで、OPTIONSが出ているか、本番リクエストまで進んでいるかを見る</li>
  <li>レスポンスに<code>Access-Control-Allow-Origin</code>があるか確認する</li>
  <li>許可したいOriginが、実際のOriginと完全一致しているか確認する</li>
  <li>Cookieを使う場合は、credentials設定とAllow-Credentialsを合わせて確認する</li>
</ul>



<p class="wp-block-paragraph">根本的な修正は、多くの場合APIサーバー側で行います。フロントエンド側でCORSヘッダーを追加しても、ブラウザが見ているのはAPIサーバーから返ってくるレスポンスヘッダーです。</p>



<h2 class="wp-block-heading">CORSと認証・CSRF対策の違い</h2>



<p class="wp-block-paragraph">CORSはセキュリティに関係しますが、認証や権限チェックそのものではありません。CORSを許可したからといって、ログイン不要で何でも見せてよいという意味にはなりません。</p>



<p class="wp-block-paragraph">認証は、利用者が誰かを確認する仕組みです。権限チェックは、その利用者がそのデータを見たり操作したりしてよいかを判断する仕組みです。CSRF対策は、利用者のブラウザを勝手に使った操作を防ぐための仕組みです。</p>



<p class="wp-block-paragraph">次の図では、CORS、認証、CSRF対策の役割を分けて見てください。CORSは「読む許可」の話であり、本人確認や権限確認の代わりではありません。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/06/cors-boundary.png" alt="CORS、認証、CSRF対策の役割の違いを分けて示す図"/><figcaption class="wp-element-caption">CORSはレスポンスを読めるかの判定であり、認証やCSRF対策とは役割が違います。</figcaption></figure>



<h2 class="wp-block-heading">既存記事とあわせて読む順番</h2>



<p class="wp-block-paragraph">CORSは、JavaScriptの <code>fetch()</code>、HTTPヘッダー、Web APIの理解とつながっています。先にAPIやHTTPの用語を押さえておくと、CORSエラーの原因を読みやすくなります。</p>



<ul class="wp-block-list">
  <li><a href="https://it-biz.online/web-design/fetch-api/">【JavaScript】fetch APIとは？GETとPOSTの使い方</a></li>
  <li><a href="https://it-biz.online/it-skills/web_api/">APIとは？APIとWeb APIの違い</a></li>
  <li><a href="https://it-biz.online/it-skills/rest-api/">REST APIとは何か？</a></li>
  <li><a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a></li>
  <li><a href="https://it-biz.online/web-design/async-await/">async/awaitとは？Promiseとの違い</a></li>
</ul>



<h2 class="wp-block-heading">公式情報と確認先</h2>



<p class="wp-block-paragraph">仕様として確認する場合は、WHATWG Fetch StandardとMDNのCORS、同一オリジンポリシーの説明を参照します。Fetch Standardは、fetch、CORSプロトコル、リダイレクトなど、ブラウザの取得処理を一貫した仕組みとして定義しています。</p>



<ul class="wp-block-list">
  <li><a href="https://fetch.spec.whatwg.org/">Fetch Standard</a></li>
  <li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS">MDN: Cross-Origin Resource Sharing</a></li>
  <li><a href="https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy">MDN: Same-origin policy</a></li>
  <li><a href="https://developer.mozilla.org/en-US/docs/Web/Security/Practical_implementation_guides/CORS">MDN: CORS configuration</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">CORSは、別オリジンのAPIレスポンスをブラウザ上のJavaScriptが読めるかどうかを、サーバーのHTTPヘッダーで判断する仕組みです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>CORSは、別オリジンのレスポンスを読めるかを決めるブラウザ中心の仕組み</li>
  <li>オリジンは、スキーム、ホスト、ポートの3点で決まる</li>
  <li><code>Access-Control-Allow-Origin</code>は、APIサーバーが許可するOriginをブラウザへ伝えるヘッダー</li>
  <li>プリフライトは、本番リクエスト前のOPTIONSによる事前確認</li>
  <li>CORSは認証や権限チェックの代わりではない</li>
</ul>



<p class="wp-block-paragraph">CORSエラーが出たら、まずConsole、Network、レスポンスヘッダー、サーバー設定の順に見ます。フロントエンドだけで解決しようとせず、APIサーバーが正しい許可ヘッダーを返しているかを確認しましょう。</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【IT用語解説】リダイレクトとは？301・302の違いとURL転送の仕組みを初心者向けに解説</title>
		<link>https://it-biz.online/it-skills/redirect/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Tue, 09 Jun 2026 03:37:05 +0000</pubDate>
				<category><![CDATA[IT-Skills]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[用語解説]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=11156</guid>

					<description><![CDATA[リダイレクトとは何か、URLが自動で切り替わる仕組み、301・302・307・308の違い、Locationヘッダー、ループやチェーンの注意点を初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">リダイレクトとは、<strong><span class="marker-under">あるURLへ来た人を、別のURLへ自動で案内する仕組み</span></strong>です。</p>



<p class="wp-block-paragraph">たとえば、古い記事URLを開いたら新しい記事URLへ移動する、<code>http://</code>で開いたら<code>https://</code>へ切り替わる、といった場面で使われます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>リダイレクトは、Webサイト上の「移転しました。新しい住所はこちらです」という案内板のようなものです。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、リダイレクトの意味、HTTPでURLが切り替わる仕組み、301・302・307・308の違い、よくある用途、ループやチェーンの注意点を初心者向けに整理します。</p>



<h2 class="wp-block-heading">リダイレクトは新しいURLへの案内</h2>



<p class="wp-block-paragraph">リダイレクトは、旧URLや一時的に使えないURLへアクセスした利用者を、別のURLへ案内するために使います。ブラウザの画面上では、気づかないうちにアドレスバーのURLが変わっていることがあります。</p>



<p class="wp-block-paragraph">MDNでは、URL redirectionはページやWebアプリなどに複数のURLを与える技術で、HTTPにはこのための特別なレスポンスがあると説明されています。まずは「古い住所に来た人を新しい住所へ案内する仕組み」と考えると理解しやすいです。</p>



<p class="wp-block-paragraph">次の図では、古いURLに来た利用者が新しいURLへ案内される様子を見てください。今回は、単なる箱ではなく、Webサイトの移転案内としてイメージ化しています。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/redirect-concept.png" alt="旧URLから新URLへ移転案内するリダイレクトのイメージ"/><figcaption class="wp-element-caption">リダイレクトは、古いURLへ来た人を新しいURLへ案内する仕組みです。</figcaption></figure>



<h2 class="wp-block-heading">HTTPリダイレクトの仕組み</h2>



<p class="wp-block-paragraph">HTTPリダイレクトでは、サーバーが3xx系のステータスコードと<code>Location</code>ヘッダーを返します。ブラウザはそのレスポンスを受け取ると、<code>Location</code>に書かれた新しいURLを開き直します。</p>



<p class="wp-block-paragraph">次の図では、ブラウザが旧URLを開き、サーバーが移動先を返し、ブラウザが新URLを開く流れを確認してください。リダイレクトの中心は、3xxステータスコードと<code>Location</code>ヘッダーです。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/redirect-http-flow.png" alt="ブラウザ、サーバー、Locationヘッダー、新URLの流れ"/><figcaption class="wp-element-caption">HTTPリダイレクトでは、3xxステータスコードとLocationヘッダーで移動先を伝えます。</figcaption></figure>



<pre class="wp-block-code"><code>HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page</code></pre>



<p class="wp-block-paragraph">HTTPの基本は<a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a>、URLの基本は<a href="https://it-biz.online/it-skills/url/">URLとは？</a>で確認できます。</p>



<h2 class="wp-block-heading">301・302・307・308の違い</h2>



<p class="wp-block-paragraph">リダイレクトでよく見るのが、301、302、307、308です。大きく見ると、301と308は恒久的な移動、302と307は一時的な移動です。さらに、307と308はHTTPメソッドやリクエスト本文を変えない、という点が重要です。</p>



<p class="wp-block-paragraph">次の図では、リダイレクトの種類を道路標識として見てください。「ずっと移転」なのか「一時的な迂回」なのかで、使うコードが変わります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/redirect-status.png" alt="301、302、307、308の違いを道路標識で整理する図"/><figcaption class="wp-element-caption">301/308は恒久的な移動、302/307は一時的な移動として考えると整理しやすいです。</figcaption></figure>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>コード</th><th>意味</th><th>初心者向けの見方</th></tr></thead><tbody><tr><td>301</td><td>Moved Permanently</td><td>このURLは今後ずっと新しいURLへ移動</td></tr><tr><td>302</td><td>Found</td><td>一時的に別URLへ移動</td></tr><tr><td>307</td><td>Temporary Redirect</td><td>一時的に移動し、HTTPメソッドを変えない</td></tr><tr><td>308</td><td>Permanent Redirect</td><td>恒久的に移動し、HTTPメソッドを変えない</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">通常のWebページ閲覧では301と302をまず押さえれば十分です。フォーム送信やAPIのようにGET以外のリクエストが関係する場合は、307や308の意味が重要になります。</p>



<h2 class="wp-block-heading">リダイレクトが使われる場面</h2>



<p class="wp-block-paragraph">リダイレクトは、URL変更だけでなく、HTTPS化、メンテナンス中の一時案内、フォーム送信後の完了ページ表示など、さまざまな場面で使われます。</p>



<p class="wp-block-paragraph">次の図では、リダイレクトが使われる代表的な場面を地図のように整理しています。利用者から見ると「勝手にURLが変わった」ように見えますが、裏側では移動先を案内しています。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/redirect-usecase.png" alt="リダイレクトが使われる代表的な場面を地図で示す図"/><figcaption class="wp-element-caption">リダイレクトはURL変更、HTTPS化、一時的な迂回、送信後の完了画面などで使われます。</figcaption></figure>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>古い記事URLから新しい記事URLへ案内する</li>



<li><code>http://</code>から<code>https://</code>へ切り替える</li>



<li><code>example.com</code>から<code>www.example.com</code>へ統一する</li>



<li>メンテナンス中に一時ページへ案内する</li>



<li>フォーム送信後に完了画面へ移動する</li>
</ul>



<h2 class="wp-block-heading">リダイレクトとリンク、DNS、URL書き換えの違い</h2>



<p class="wp-block-paragraph">リダイレクトはリンクと似ていますが、利用者がクリックして移動するリンクとは違い、サーバーやページ側が自動で移動先を案内します。DNSとも違います。DNSはドメイン名をIPアドレスへ変換する仕組みで、ページ単位の移動先を案内するものではありません。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>用語</th><th>役割</th><th>リダイレクトとの違い</th></tr></thead><tbody><tr><td>リンク</td><td>利用者がクリックして移動する入口</td><td>自動移動ではない</td></tr><tr><td>DNS</td><td>ドメイン名をIPアドレスへ変換する</td><td>ページの移転案内ではない</td></tr><tr><td>URL書き換え</td><td>サーバー内部でURLの扱いを変える</td><td>ブラウザに移動を見せない場合がある</td></tr><tr><td>リダイレクト</td><td>別URLへ自動で案内する</td><td>ブラウザが新URLを開き直す</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">DNSの基本は<a href="https://it-biz.online/it-skills/dns/">DNSとは何か？</a>、ブラウザの役割は<a href="https://it-biz.online/it-skills/browser/">ブラウザとは？</a>であわせて確認できます。</p>



<h2 class="wp-block-heading">リダイレクトで注意したいこと</h2>



<p class="wp-block-paragraph">リダイレクトは便利ですが、設定を間違えると利用者がページにたどり着けなくなります。特に注意したいのが、リダイレクトループ、長いリダイレクトチェーン、内部リンクの放置です。</p>



<p class="wp-block-paragraph">次の図では、リダイレクトで避けたい迷子パターンを見てください。AからBへ案内したはずがBからAへ戻ると、ブラウザは終わらない移動を繰り返してしまいます。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/redirect-pitfalls.png" alt="リダイレクトループやチェーンなどの注意点を示す図"/><figcaption class="wp-element-caption">リダイレクトでは、ループ、長いチェーン、内部リンクの放置に注意します。</figcaption></figure>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>AからB、BからAへ戻るリダイレクトループを作らない</li>



<li>AからB、BからC、CからDのような長いチェーンを避ける</li>



<li>サイト内リンクはできるだけ新URLへ直接向ける</li>



<li>リダイレクト後のページが404にならないか確認する</li>



<li>HTTPからHTTPSへの統一で無限ループしないか確認する</li>
</ul>



<p class="wp-block-paragraph">MDNでも、リダイレクトごとに追加のHTTPリクエストが発生するため、使いすぎを避けるべきだと説明されています。内部リンクを直せる場合は、リダイレクトに頼らず新URLへ直接リンクしましょう。</p>



<h2 class="wp-block-heading">ユーザーとして知っておきたい見方</h2>



<p class="wp-block-paragraph">リダイレクト自体は正常な仕組みです。ただし、ログイン画面や決済画面で知らないドメインへ移動した場合は注意が必要です。アドレスバーのドメインを確認し、怪しい移動先ではパスワードやカード情報を入力しないようにします。</p>



<p class="wp-block-paragraph">キャッシュやCookieが原因で古いリダイレクトが残ったように見えることもあります。ページ移動がおかしいときは、別ブラウザで確認する、キャッシュを削除する、Cookieの影響を切り分ける、といった確認も役立ちます。</p>



<p class="wp-block-paragraph">キャッシュは<a href="https://it-biz.online/it-skills/cache/">キャッシュとは？</a>、Cookieは<a href="https://it-biz.online/it-skills/cookie/">Cookieとは？</a>で詳しく解説しています。</p>



<h2 class="wp-block-heading">開発者が最初に確認するポイント</h2>



<p class="wp-block-paragraph">開発者がリダイレクトを設定するときは、どのURLからどのURLへ、恒久的なのか一時的なのか、どのHTTPメソッドを扱うのかを確認します。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>恒久移転なら301または308、一時移動なら302または307を検討する</li>



<li>フォーム送信やAPIでは307/308のメソッド保持を意識する</li>



<li><code>Location</code>に正しい移動先URLを入れる</li>



<li>リダイレクト後に200 OKで表示されるか確認する</li>



<li>ループや長いチェーンがないか確認する</li>



<li>内部リンクやサイトマップは新URLへ更新する</li>
</ul>



<h2 class="wp-block-heading">既存記事とあわせて読む順番</h2>



<p class="wp-block-paragraph">リダイレクトはURL、HTTP、ブラウザ、DNSと一緒に理解するとつながります。Webページが表示される流れを押さえたうえで、3xxレスポンスと<code>Location</code>を見ると理解しやすいです。</p>



<ul class="wp-block-list">
<li><a href="https://it-biz.online/it-skills/url/">URLとは？</a></li>



<li><a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a></li>



<li><a href="https://it-biz.online/it-skills/browser/">ブラウザとは？</a></li>



<li><a href="https://it-biz.online/it-skills/dns/">DNSとは何か？</a></li>



<li><a href="https://it-biz.online/it-skills/cache/">キャッシュとは？</a></li>
</ul>



<h2 class="wp-block-heading">公式情報と関連リンク</h2>



<p class="wp-block-paragraph">リダイレクトの基本はMDNのRedirections in HTTP、ステータスコードの整理はMDNのHTTP response status codes、移動先を示す<code>Location</code>ヘッダーはMDNのLocation headerが参考になります。</p>



<ul class="wp-block-list">
<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Redirections">MDN: Redirections in HTTP</a></li>



<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status">MDN: HTTP response status codes</a></li>



<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Location">MDN: Location header</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">リダイレクトは、あるURLへ来た人を別のURLへ自動で案内する仕組みです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>HTTPリダイレクトでは3xxステータスコードとLocationヘッダーを使う</li>



<li>301/308は恒久的な移動、302/307は一時的な移動</li>



<li>307/308はHTTPメソッドやリクエスト本文を変えない</li>



<li>URL変更、HTTPS化、メンテナンス、送信後の完了画面などで使われる</li>



<li>ループや長いチェーン、内部リンク放置に注意する</li>
</ul>



<p class="wp-block-paragraph">まずは、リダイレクトを「Webサイトの移転案内」として押さえましょう。そのうえで、301と302の違い、<code>Location</code>ヘッダー、ループの注意点を理解すると、Webのトラブル対応やサイト運用で役立ちます。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【IT用語解説】キャッシュとは？表示が速くなる仕組みとCookieとの違いを初心者向けに解説</title>
		<link>https://it-biz.online/it-skills/cache/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Wed, 27 May 2026 07:30:06 +0000</pubDate>
				<category><![CDATA[IT-Skills]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[用語解説]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=11147</guid>

					<description><![CDATA[キャッシュとは何か、ブラウザやサーバーで表示が速くなる仕組み、Cookieとの違い、更新されないときの対処、Cache-Controlの基本を初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">キャッシュとは、<strong><span class="marker-under">一度取得したデータを保存して、次回以降すばやく使うための仕組み</span></strong>です。</p>



<p class="wp-block-paragraph">Webページの画像、CSS、JavaScriptなどを毎回サーバーから取り直すと時間がかかります。キャッシュを使うと、保存済みのコピーを再利用できるため、表示が速くなったり通信量を減らしたりできます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>キャッシュは「近くに置いたコピー」です。便利ですが、古いコピーが残ると変更が反映されないこともあります。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、キャッシュの意味、ブラウザで表示が速くなる流れ、Cookieや履歴との違い、古い表示が出るときの対処、Cache-Controlの基本を初心者向けに整理します。</p>



<h2 class="wp-block-heading">まず結論：キャッシュは近くに置くコピー</h2>



<p class="wp-block-paragraph">キャッシュは、元データを毎回取りに行かなくて済むように、よく使うデータのコピーを手元や近い場所に保存する仕組みです。Webではブラウザ、CDN、サーバー、DNSなど、いろいろな場所でキャッシュが使われます。</p>



<p class="wp-block-paragraph">MDNでは、HTTPキャッシュは以前のレスポンスを再利用して不要なネットワーク要求を減らす仕組みとして説明されています。まずは「同じものを何度も取り直さないための保存」と覚えると十分です。</p>



<p class="wp-block-paragraph">次の図では、利用者、キャッシュ、元データの関係を見てください。キャッシュは元データそのものではなく、近くに置かれたコピーです。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/cache-concept.png" alt="ユーザー、キャッシュ、元データの関係を示す図"/><figcaption class="wp-element-caption">キャッシュは、元データのコピーを近くに置いて再利用する仕組みです。</figcaption></figure>



<h2 class="wp-block-heading">キャッシュで表示が速くなる流れ</h2>



<p class="wp-block-paragraph">ブラウザでWebページを開くと、HTML、CSS、JavaScript、画像など複数のファイルを読み込みます。初回はサーバーから取得しますが、保存できるものはブラウザのキャッシュに残ります。</p>



<p class="wp-block-paragraph">以下の図で、初回アクセスで取得して保存し、2回目以降にキャッシュを使って速く表示する流れを確認してください。毎回サーバーへ取りに行かないことがポイントです。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/cache-flow.png" alt="初回アクセスと2回目アクセスでキャッシュを使う流れ"/><figcaption class="wp-element-caption">キャッシュを使うと、2回目以降は保存済みのコピーを再利用できることがあります。</figcaption></figure>



<p class="wp-block-paragraph">HTTPの基本は<a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a>、Webページを開く入口は<a href="https://it-biz.online/it-skills/browser/">ブラウザとは？</a>で確認できます。</p>



<h2 class="wp-block-heading">キャッシュがある場所</h2>



<p class="wp-block-paragraph">キャッシュはブラウザだけにあるものではありません。ブラウザの中、CDNなどの中間地点、サーバー内部、DNSの名前解決など、目的に応じていろいろな場所にあります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/cache-places.png" alt="ブラウザキャッシュ、CDNキャッシュ、サーバーキャッシュ、DNSキャッシュの違いを示す図"/><figcaption class="wp-element-caption">キャッシュはブラウザ、CDN、サーバー、DNSなど複数の場所で使われます。</figcaption></figure>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>場所</th><th>保存するものの例</th><th>初心者向けの見方</th></tr></thead><tbody><tr><td>ブラウザキャッシュ</td><td>画像、CSS、JavaScript</td><td>自分の端末に残るコピー</td></tr><tr><td>CDNキャッシュ</td><td>静的ファイル、画像</td><td>近い拠点から配るコピー</td></tr><tr><td>サーバーキャッシュ</td><td>計算結果、DB取得結果</td><td>サーバー側の再利用</td></tr><tr><td>DNSキャッシュ</td><td>ドメイン名とIPアドレスの対応</td><td>名前解決を速くする保存</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">キャッシュとCookie、履歴、ブックマークの違い</h2>



<p class="wp-block-paragraph">キャッシュとCookieはどちらもブラウザに残ることがありますが、目的が違います。キャッシュは表示を速くするためのコピー、Cookieはサイトが状態を覚えるための小さな情報です。履歴やブックマークも、さらに役割が違います。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/cache-comparison.png" alt="キャッシュ、Cookie、履歴、ブックマークの違いを比較する図"/><figcaption class="wp-element-caption">キャッシュは表示を速くするコピーで、Cookieや履歴、ブックマークとは目的が違います。</figcaption></figure>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>用語</th><th>主な目的</th><th>消すと起きること</th></tr></thead><tbody><tr><td>キャッシュ</td><td>表示を速くする</td><td>画像やCSSを再取得することがある</td></tr><tr><td>Cookie</td><td>ログイン状態や設定を扱う</td><td>ログアウトや設定リセットが起きることがある</td></tr><tr><td>履歴</td><td>見たページを記録する</td><td>過去に見たページを探しにくくなる</td></tr><tr><td>ブックマーク</td><td>自分でページを保存する</td><td>お気に入りの入口が消える</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">Cookieの詳しい仕組みは<a href="https://it-biz.online/it-skills/cookie/">Cookieとは？</a>で解説しています。キャッシュ削除とCookie削除は影響が違うため、トラブル対応では分けて考えましょう。</p>



<h2 class="wp-block-heading">キャッシュが原因で起きること</h2>



<p class="wp-block-paragraph">キャッシュは便利ですが、古いコピーが残ると「画像を差し替えたのに前の画像が出る」「CSSを修正したのに画面が変わらない」「ログアウト後も古い画面が見える」のような混乱が起きることがあります。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>ページの見た目が古いまま表示される</li>



<li>CSSやJavaScriptの修正が反映されない</li>



<li>画像を差し替えたのに前の画像が出る</li>



<li>開発中に変更したはずの画面が変わらない</li>



<li>個人情報を含むページを保存してほしくない場面がある</li>
</ul>



<p class="wp-block-paragraph">利用者側では再読み込み、強制再読み込み、キャッシュ削除で改善することがあります。開発者側では、ファイル名にバージョンやハッシュを付ける、適切なCache-Controlを返す、といった設計が必要になります。</p>



<h2 class="wp-block-heading">Cache-Controlの基本</h2>



<p class="wp-block-paragraph">Webのキャッシュは、HTTPヘッダーで制御できます。代表的なのが<code>Cache-Control</code>です。保存してよいか、どれくらい新鮮とみなすか、使う前にサーバーへ確認するかを指示します。</p>



<p class="wp-block-paragraph">次の図では、Cache-Controlでよく見る言葉を確認してください。特に<code>no-cache</code>は「保存しない」ではなく、「使う前にサーバーへ確認する」という意味である点に注意します。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/cache-control.png" alt="Cache-Control、max-age、no-cache、no-store、ETagの意味を整理する図"/><figcaption class="wp-element-caption">Cache-Controlでは、max-age、no-cache、no-store、ETagなどを分けて理解します。</figcaption></figure>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>指定</th><th>意味</th><th>初心者向けの注意</th></tr></thead><tbody><tr><td>max-age</td><td>指定秒数の間は新鮮とみなす</td><td>例：3600なら1時間</td></tr><tr><td>no-cache</td><td>再利用前にサーバーへ確認する</td><td>保存禁止ではない</td></tr><tr><td>no-store</td><td>保存しないように指示する</td><td>個人情報ページなどで検討</td></tr><tr><td>private</td><td>ブラウザなど個人用キャッシュに限る</td><td>ログイン後の個人向け応答で使うことがある</td></tr><tr><td>ETag</td><td>内容が同じか確認するための印</td><td>304 Not Modifiedと関係する</td></tr></tbody></table></div></figure>



<pre class="wp-block-code"><code>Cache-Control: max-age=3600
Cache-Control: no-cache
Cache-Control: no-store
ETag: "abc123"</code></pre>



<p class="wp-block-paragraph">MDNのCache-Control解説でも、<code>no-cache</code>は保存を禁止するものではなく、再利用前の検証を要求するものと説明されています。保存させたくない場合は<code>no-store</code>を検討します。</p>



<h2 class="wp-block-heading">利用者ができる対処</h2>



<p class="wp-block-paragraph">ページが古いまま見えるとき、利用者側で試せることがあります。まず通常の再読み込みを行い、それでも変わらない場合は強制再読み込みやキャッシュ削除を試します。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>通常の再読み込みをする</li>



<li>強制再読み込みをする</li>



<li>ブラウザ設定からキャッシュされた画像やファイルを削除する</li>



<li>別のブラウザやシークレットウィンドウで確認する</li>



<li>ログイン状態が関係する場合はCookie削除の影響も考える</li>
</ul>



<p class="wp-block-paragraph">ただし、会社PCや業務システムでは、勝手にCookieやサイトデータまで削除すると再ログインや設定リセットが必要になる場合があります。キャッシュだけを削除するのか、Cookieも含めるのかを確認してから操作しましょう。</p>



<h2 class="wp-block-heading">開発者が注意するポイント</h2>



<p class="wp-block-paragraph">開発者は、速く表示したいファイルと、古い内容を見せたくないファイルを分けて考える必要があります。画像、CSS、JavaScriptなどの静的ファイルは長くキャッシュしやすい一方、HTMLや個人情報を含む応答は慎重に扱います。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>変更されにくい静的ファイルは長めにキャッシュする</li>



<li>変更時にファイル名やURLを変えるキャッシュバスティングを使う</li>



<li>HTMLは必要に応じて再検証させる</li>



<li>個人情報やログイン後の画面は共有キャッシュに載せない</li>



<li><code>no-cache</code>と<code>no-store</code>を混同しない</li>
</ul>



<p class="wp-block-paragraph">web.devでも、バージョン付きURLには長い<code>max-age</code>を使いやすく、バージョンなしURLでは再検証や<code>no-store</code>などを使い分ける考え方が紹介されています。</p>



<h2 class="wp-block-heading">既存記事とあわせて読む順番</h2>



<p class="wp-block-paragraph">キャッシュは、ブラウザ、HTTP、Cookie、DNSと一緒に理解するとつながります。まずWebページが表示される流れを押さえ、そのうえで「保存して再利用する場所」を見ると理解しやすいです。</p>



<ul class="wp-block-list">
<li><a href="https://it-biz.online/it-skills/browser/">ブラウザとは？</a></li>



<li><a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a></li>



<li><a href="https://it-biz.online/it-skills/cookie/">Cookieとは？</a></li>



<li><a href="https://it-biz.online/it-skills/url/">URLとは？</a></li>



<li><a href="https://it-biz.online/it-skills/dns/">DNSとは何か？</a></li>
</ul>



<h2 class="wp-block-heading">公式情報と関連リンク</h2>



<p class="wp-block-paragraph">HTTPキャッシュの基本はMDNのHTTP caching、Cache-Controlの詳しい意味はMDNのCache-Control、実務寄りの考え方はweb.devのHTTP Cache記事が参考になります。</p>



<ul class="wp-block-list">
<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Caching">MDN: HTTP caching</a></li>



<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cache-Control">MDN: Cache-Control header</a></li>



<li><a href="https://web.dev/articles/http-cache">web.dev: Prevent unnecessary network requests with the HTTP Cache</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">キャッシュは、一度取得したデータを保存して、次回以降すばやく使うための仕組みです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>キャッシュは元データの近くに置いたコピー</li>



<li>ブラウザキャッシュは画像、CSS、JavaScriptなどの再利用に役立つ</li>



<li>Cookieは状態保存、キャッシュは表示高速化が主な目的</li>



<li>古いキャッシュが残ると変更が反映されないことがある</li>



<li><code>no-cache</code>は保存禁止ではなく、使う前の確認を意味する</li>



<li>保存させたくない場合は<code>no-store</code>を検討する</li>
</ul>



<p class="wp-block-paragraph">キャッシュを理解すると、Webページが速く表示される理由だけでなく、変更が反映されないときの切り分けもできるようになります。まずは「速くするためのコピー」として押さえ、Cookieや履歴とは分けて考えましょう。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【IT用語解説】Cookieとは？ログイン状態が残る仕組みを初心者向けに解説</title>
		<link>https://it-biz.online/it-skills/cookie/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Tue, 26 May 2026 09:29:52 +0000</pubDate>
				<category><![CDATA[IT-Skills]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[用語解説]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=11136</guid>

					<description><![CDATA[Cookieとは何か、ブラウザに保存される情報、ログイン状態が残る仕組み、キャッシュやWeb Storageとの違い、安全に使うポイントを初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Cookieとは、<strong><span class="marker-under">Webサイトがブラウザに保存する小さな情報</span></strong>です。</p>



<p class="wp-block-paragraph">たとえば、ログイン状態、表示言語、カートに入れた商品の情報などを覚えるために使われます。Webサイトを閉じても次に開いたときに状態が残ることがあるのは、Cookieが関係している場合があります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>Cookieは「食べ物のクッキー」ではなく、ブラウザとWebサイトの間で使われる小さなメモのような情報です。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、Cookieの意味、保存される情報、サーバーとのやり取り、キャッシュやWeb Storageとの違い、安全に使うポイントを初心者向けに整理します。</p>



<h2 class="wp-block-heading">Cookieはサイト別に残る小さな情報</h2>



<p class="wp-block-paragraph">Cookieは、<strong><span class="marker-under">Webサイトがブラウザに保存し、必要に応じて同じサイトへ送り返される情報</span></strong>です。MDNでも、Cookieはサーバーがユーザーのブラウザへ送る小さなデータで、ブラウザが保存し、後続のリクエストで同じサーバーへ返すものとして説明されています。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">最初は「Webサイトが、ブラウザ側に残しておく小さなメモ」と考えると理解しやすいです。ただし、何でも保存してよい場所ではなく、保存内容や送信条件には注意が必要です。</p>
</div></div>



<p class="wp-block-paragraph">ブラウザ、Cookie、Webサイトの関係を見てください。Cookieはブラウザに保存されますが、Webサイトとのやり取りの中で使われます。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/cookie-concept.png" alt="ブラウザ、Cookie、Webサイトの関係を示す図"/><figcaption class="wp-element-caption">Cookieは、ブラウザに保存されるサイト別の小さな情報です。</figcaption></figure>



<h2 class="wp-block-heading">Cookieが使われる代表例</h2>



<p class="wp-block-paragraph">Cookieは、Webサイトが「この利用者は前にも来た」「この設定を選んでいた」と判断するために使われます。代表的な用途は、ログイン状態の維持、表示設定、ショッピングカート、アクセス解析などです。</p>



<p class="wp-block-paragraph">重要なのは、Cookieにパスワードをそのまま保存するのが一般的な使い方ではない、という点です。多くの場合は、利用者やセッションを識別するID、設定値、状態を示す小さな値を保存します。便利な用途がある一方で、閲覧状況の計測や追跡に使われることもあります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/cookie-uses.png" alt="Cookieの代表的な利用場面を整理する図"/><figcaption class="wp-element-caption">Cookieはログイン状態、表示設定、カート、計測などで使われます。</figcaption></figure>



<h2 class="wp-block-heading">Cookieが保存されて送られる流れ</h2>



<p class="wp-block-paragraph">Cookieは、ブラウザだけで勝手に作られるものではありません。典型的には、サーバーがHTTPレスポンスで<code>Set-Cookie</code>を返し、ブラウザがそれを保存します。その後、同じサイトへアクセスするときに、ブラウザが<code>Cookie</code>ヘッダーとして送り返します。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/cookie-roundtrip.png" alt="サーバーがSet-Cookieを返し、ブラウザがCookieを保存して次回送信する図"/><figcaption class="wp-element-caption">サーバーがSet-Cookieで保存を指示し、ブラウザは次回以降Cookieを送ることがあります。</figcaption></figure>



<p class="wp-block-paragraph">HTTPヘッダーで見ると、イメージは次のようになります。実際には属性が増えることもありますが、まずは<code>Set-Cookie</code>と<code>Cookie</code>の2つを分けて見れば十分です。</p>



<pre class="wp-block-code"><code>HTTP/1.1 200 OK
Set-Cookie: session_id=abc123; Secure; HttpOnly; SameSite=Lax

GET /mypage HTTP/1.1
Cookie: session_id=abc123</code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">HTTPの基本は<a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a>、Webページを開く入口は<a href="https://it-biz.online/it-skills/url/">URLとは？</a>で詳しく整理しています。</p>
</div></div>



<h2 class="wp-block-heading">セッションCookieと永続Cookie</h2>



<p class="wp-block-paragraph">Cookieには、大きく分けてセッションCookieと永続Cookieがあります。セッションCookieは、ブラウザを閉じるまでの一時的な情報として使われます。永続Cookieは、有効期限が設定され、ブラウザを閉じた後も残ることがあります。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>種類</th><th>残り方</th><th>よくある用途</th></tr></thead><tbody><tr><td>セッションCookie</td><td>ブラウザを閉じるまで残ることが多い</td><td>ログイン中の一時的な状態</td></tr><tr><td>永続Cookie</td><td>有効期限まで残る</td><td>表示設定、同意状態、再訪問の判定</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">ただし、実際の挙動はブラウザ設定やサイト側の作りによって変わります。初心者の段階では、「Cookieには一時的なものと、期限付きで残るものがある」と押さえれば十分です。</p>



<h2 class="wp-block-heading">Cookieとキャッシュ、Web Storageの違い</h2>



<p class="wp-block-paragraph">Cookieと混同しやすい言葉に、キャッシュ、localStorage、sessionStorageがあります。どれもブラウザに情報が残ることがありますが、目的と送信のされ方が違います。</p>



<p class="wp-block-paragraph">次の比較図では、Cookie、キャッシュ、localStorage、sessionStorageの違いを整理してください。特にCookieは、条件を満たすとHTTPリクエストに付いてサーバーへ送られる点が大きな特徴です。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/cookie-comparison.png" alt="Cookie、キャッシュ、localStorage、sessionStorageの違いを比較する図"/><figcaption class="wp-element-caption">Cookieはサーバーへ送られることがあり、キャッシュやWeb Storageとは目的が違います。</figcaption></figure>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>用語</th><th>主な目的</th><th>サーバーへ自動で送られるか</th></tr></thead><tbody><tr><td>Cookie</td><td>ログイン状態や設定を扱う</td><td>条件を満たすと送られる</td></tr><tr><td>キャッシュ</td><td>画像やCSSなどを再利用して表示を速くする</td><td>Cookieとは目的が違う</td></tr><tr><td>localStorage</td><td>ブラウザ内にデータを保存する</td><td>自動では送られない</td></tr><tr><td>sessionStorage</td><td>タブ単位の一時保存</td><td>自動では送られない</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">Cookieを削除するとどうなるか</h2>



<p class="wp-block-paragraph">Cookieを削除すると、ログイン状態が切れたり、表示設定が初期状態に戻ったり、ショッピングカートの内容が消えたりすることがあります。これは、サイトがCookieを使って状態を覚えていたためです。</p>



<p class="wp-block-paragraph">一方で、不要なCookieを削除したり、サードパーティCookieを制限したりすることは、プライバシー保護の観点で役立つ場合があります。ブラウザの設定画面では、サイトごとにCookieを確認・削除できることが多いです。</p>



<h2 class="wp-block-heading">サードパーティCookieとは</h2>



<p class="wp-block-paragraph">Cookieには、今開いているサイトが発行するファーストパーティCookieと、別のドメインが関係するサードパーティCookieがあります。サードパーティCookieは、広告配信や計測などで使われることがあり、プライバシー上の理由から制限される方向にあります。</p>



<p class="wp-block-paragraph">初心者は、まず「Cookieは便利な状態保存にも使われるが、閲覧状況をまたいで把握する用途にも使われることがある」と理解しておくとよいです。細かいブラウザ別の制限は変わるため、実務では各ブラウザや公式情報を確認します。</p>



<h2 class="wp-block-heading">安全に使うための確認ポイント</h2>



<p class="wp-block-paragraph">Cookieは便利ですが、ログイン状態や識別情報に関係するため、扱いを間違えるとセキュリティやプライバシーの問題につながります。利用者側と開発者側で見るポイントを分けると整理しやすくなります。</p>



<p class="wp-block-paragraph">次の図では、Cookieを安全に使うための確認ポイントを見てください。利用者は設定や削除、開発者は属性と保存内容を確認します。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/cookie-safety.png" alt="Cookieを安全に扱うための利用者と開発者の確認ポイント"/><figcaption class="wp-element-caption">Cookieを安全に扱うには、削除・ブロックの影響と、Secure、HttpOnly、SameSiteなどの属性を確認します。</figcaption></figure>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>利用者は、Cookie削除でログアウトや設定リセットが起きることを理解する</li>



<li>共有PCではログイン状態を残したままにしない</li>



<li>開発者は、重要なCookieに<code>Secure</code>、<code>HttpOnly</code>、<code>SameSite</code>などの属性を検討する</li>



<li>Cookieにパスワードや秘密情報をそのまま保存しない</li>



<li>サードパーティCookieや同意管理は、プライバシーの観点も含めて確認する</li>
</ul>



<h2 class="wp-block-heading">開発者が最初に見るCookie属性</h2>



<p class="wp-block-paragraph">Web開発でCookieを扱う場合は、値だけでなく属性も重要です。属性は、Cookieをどの範囲で、いつまで、どの通信で送るかを決めます。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>属性</th><th>ざっくりした役割</th><th>初心者向けの見方</th></tr></thead><tbody><tr><td>Expires / Max-Age</td><td>有効期限を決める</td><td>いつまで残すか</td></tr><tr><td>Domain</td><td>送信先ドメインの範囲を決める</td><td>どのサイトへ送るか</td></tr><tr><td>Path</td><td>送信するパスの範囲を決める</td><td>どのURL配下で使うか</td></tr><tr><td>Secure</td><td>HTTPS通信でだけ送る</td><td>盗み見対策の基本</td></tr><tr><td>HttpOnly</td><td>JavaScriptから読み取れないようにする</td><td>XSS被害を減らす一助</td></tr><tr><td>SameSite</td><td>別サイト経由の送信を制御する</td><td>CSRF対策と関係する</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">OWASPのセッション管理に関する資料でも、セッションIDの保護やCookie属性の設定は重要な対策として扱われています。実務でログインに関係するCookieを扱う場合は、フレームワーク任せにせず、属性と保存内容を確認しましょう。</p>



<h2 class="wp-block-heading">既存記事とあわせて読む順番</h2>



<p class="wp-block-paragraph">Cookieはブラウザ、URL、HTTP、サーバーとの関係で理解するとつながります。まずブラウザでWebページを開く流れを押さえ、そのうえでHTTPヘッダーとしてCookieを見ると理解しやすいです。</p>



<ul class="wp-block-list">
<li><a href="https://it-biz.online/it-skills/browser/">ブラウザとは？</a></li>



<li><a href="https://it-biz.online/it-skills/url/">URLとは？</a></li>



<li><a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a></li>



<li><a href="https://it-biz.online/it-skills/client-server/">クライアントサーバシステムとは？</a></li>



<li><a href="https://it-biz.online/it-skills/web_api/">APIとは？APIとWeb APIの違い</a></li>
</ul>



<h2 class="wp-block-heading">公式情報と関連リンク</h2>



<p class="wp-block-paragraph">Cookieの基本はMDNのHTTP cookies、<code>Set-Cookie</code>ヘッダー、Web Storageとの違いはMDNのWeb Storage APIが参考になります。セッション管理の安全性はOWASPの資料も確認対象になります。</p>



<ul class="wp-block-list">
<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies">MDN: HTTP cookies</a></li>



<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie">MDN: Set-Cookie header</a></li>



<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API">MDN: Web Storage API</a></li>



<li><a href="https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html">OWASP Session Management Cheat Sheet</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">Cookieは、Webサイトがブラウザに保存する小さな情報です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>Cookieはブラウザに保存され、同じサイトへ送り返されることがある</li>



<li>ログイン状態、表示設定、カート、計測などで使われる</li>



<li><code>Set-Cookie</code>は保存の指示、<code>Cookie</code>は送信される情報</li>



<li>キャッシュやWeb Storageとは目的と送信のされ方が違う</li>



<li>安全に扱うには保存内容、Secure、HttpOnly、SameSiteなどを確認する</li>
</ul>



<p class="wp-block-paragraph">Cookieを理解すると、ブラウザ、HTTP、ログイン、セッション管理の関係が見えやすくなります。まずは「ブラウザに残るサイト別の小さなメモ」として押さえ、次に送信の流れと安全設定を確認していきましょう。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【HTML】tableタグ：テーブル（表）の作成方法を３分でわかりやすく</title>
		<link>https://it-biz.online/web-design/table/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Thu, 03 Jan 2019 00:00:00 +0000</pubDate>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[WEBデザイン]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=2825</guid>

					<description><![CDATA[HTMLでテーブル（表）を作成するtableタグ（&#60;table&#62;タグ・&#60;tr&#62;タグ・&#60;th&#62;タグ・&#60;td&#62;タグ）の基本・意味・使い方を初心者向けにわかりやすく解説します。  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img wpfc-lazyload-disable="true" fetchpriority="high" decoding="async" width="800" height="1131" src="https://it-biz.online/wp-content/uploads/2019/01/image-800x1131.png" alt="" class="wp-image-11137" srcset="https://it-biz.online/wp-content/uploads/2019/01/image-800x1131.png 800w, https://it-biz.online/wp-content/uploads/2019/01/image-500x707.png 500w, https://it-biz.online/wp-content/uploads/2019/01/image-300x424.png 300w, https://it-biz.online/wp-content/uploads/2019/01/image-768x1085.png 768w, https://it-biz.online/wp-content/uploads/2019/01/image.png 1055w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">HTMLでテーブル（表）を作成するtableタグ（<strong>&lt;table&gt;タグ・&lt;tr&gt;タグ・&lt;th&gt;タグ・&lt;td&gt;タグ</strong>）の基本・意味・使い方を初心者向けにわかりやすく解説します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;table>
  &lt;tr>
    &lt;th>見出し1&lt;/th>
    &lt;th>見出し2&lt;/th>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ1&lt;/td>
    &lt;td>データ2&lt;/td>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ3&lt;/td>
    &lt;td>データ4&lt;/td>
  &lt;/tr>
&lt;/table></pre>



<figure class="wp-block-image aligncenter size-full"><img wpfc-lazyload-disable="true" decoding="async" width="604" height="225" src="https://it-biz.online/wp-content/uploads/2023/12/image-19.png" alt="HTML tableタグ" class="wp-image-8683" srcset="https://it-biz.online/wp-content/uploads/2023/12/image-19.png 604w, https://it-biz.online/wp-content/uploads/2023/12/image-19-500x186.png 500w, https://it-biz.online/wp-content/uploads/2023/12/image-19-300x112.png 300w" sizes="(max-width: 604px) 100vw, 604px" /><figcaption class="wp-element-caption">図1:HTML tableタグ</figcaption></figure>



<p class="wp-block-paragraph">tableタグはデータを行と列の形式で整理し、表示するために使用されるHTML要素。テーブルは、情報を視覚的に整理して比較しやすくすることができ、一般的には数値データや、関連する項目のリストなどを表示するのに適しています。</p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box cocoon-block-tab-caption-box"><div class="tab-caption-box-label block-box-label box-label fab-edit"><span class="tab-caption-box-label-text block-box-label-text box-label-text">このページで学べる内容</span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-hand-o-right block-box"><div class="iconlist-title"></div>
<ul class="wp-block-list">
<li>HTMLのtableタグの使い方（テーブル・表の作成方法）
<ul class="wp-block-list">
<li><strong>&lt;table&gt;タグ・&lt;tr&gt;タグ・&lt;th&gt;タグ・&lt;td&gt;タグ</strong></li>
</ul>
</li>



<li>テーブル・表のデザイン方法</li>
</ul>
</div>
</div></div>



<p class="wp-block-paragraph">Webエンジニアを目指す方であれば<strong><span class="marker-under">知らないと恥ずかしい超・基本知識の１つ</span></strong>です。是非最後までご覧ください。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/web-design/html-rule/">HTMLの基本構文ルール</a></p>



<h2 class="wp-block-heading">HTML：テーブル（表）の定義方法</h2>



<p class="wp-block-paragraph">tableタグを使ってテーブルを作成する際には、次のようなタグを組み合わせて使用します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">テーブルを作るには、tableタグだけではなく、その要素を表す <strong>&lt;tr&gt;タグ・&lt;th&gt;タグ・&lt;td&gt;タグ</strong>が必要になります。</p>
</div></div>



<p class="wp-block-paragraph">全てを暗記する必要はありませんが、それぞれのタグがどのように利用され、どのような意味を持つのか？をまずは頭に入れておきましょう。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" width="859" height="399" src="https://it-biz.online/wp-content/uploads/2019/12/image-52.png" alt="html table" class="wp-image-2834" srcset="https://it-biz.online/wp-content/uploads/2019/12/image-52.png 859w, https://it-biz.online/wp-content/uploads/2019/12/image-52-300x139.png 300w, https://it-biz.online/wp-content/uploads/2019/12/image-52-500x232.png 500w, https://it-biz.online/wp-content/uploads/2019/12/image-52-768x357.png 768w, https://it-biz.online/wp-content/uploads/2019/12/image-52-800x372.png 800w, https://it-biz.online/wp-content/uploads/2019/12/image-52-304x141.png 304w" sizes="(max-width: 859px) 100vw, 859px" /><figcaption class="wp-element-caption">図2：tableタグ</figcaption></figure>



<ul class="wp-block-list is-style-icon-list-circle has-list-style">
<li><code><span class="bold-blue">&lt;table&gt;</span></code>
<ul class="wp-block-list">
<li><strong>テーブル<span class="bold-blue">全体</span>を定義</strong>します。テーブルはこのタグで始まり、<code>&lt;/table&gt;</code>で終わります。</li>
</ul>
</li>



<li><code><span class="bold-blue">&lt;tr&gt;</span></code>
<ul class="wp-block-list">
<li class="is-style-bottom-margin-2em has-bottom-margin"><strong>テーブルの<span class="bold-blue">行</span>を定義</strong>するために使用されるタグです。<br>→<strong>Table Row</strong> (テーブルの行) の略です。「ここから新しい行が始まりますよ」という意味。</li>
</ul>
</li>



<li><code><span class="bold-blue">&lt;th&gt;</span></code>
<ul class="wp-block-list">
<li class="is-style-bottom-margin-2em has-bottom-margin"><strong>テーブルの<span class="bold-blue">見出しセル</span>を定義</strong>するために使用されるタグで、通常は行や列のラベルに使用されます。<br>→<strong>Table Header</strong> (テーブルの見出し) の略です。行の中でも「見出し」となるセルに使います。</li>
</ul>
</li>



<li><code><span class="bold-blue">&lt;td&gt;</span></code>
<ul class="wp-block-list">
<li class="is-style-bottom-margin-2em has-bottom-margin"><strong>テーブルの<span class="bold-blue">データセル</span>を定義</strong>するために使用されるタグで、実際のデータを表します。<br>→<strong>Table Data</strong> (テーブルのデータ) の略です。行の中でも「データ」となるセルに使います。<br></li>
</ul>
</li>
</ul>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">最初のうちはちょっと複雑に感じるかもしれません。順を追って理解していきましょう。</p>
</div></div>



<h3 class="wp-block-heading">HTML：&lt;table&gt;タグの使い方</h3>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" width="848" height="388" src="https://it-biz.online/wp-content/uploads/2019/12/image-53.png" alt="html table" class="wp-image-2835" srcset="https://it-biz.online/wp-content/uploads/2019/12/image-53.png 848w, https://it-biz.online/wp-content/uploads/2019/12/image-53-300x137.png 300w, https://it-biz.online/wp-content/uploads/2019/12/image-53-500x229.png 500w, https://it-biz.online/wp-content/uploads/2019/12/image-53-768x351.png 768w, https://it-biz.online/wp-content/uploads/2019/12/image-53-800x366.png 800w, https://it-biz.online/wp-content/uploads/2019/12/image-53-304x139.png 304w" sizes="(max-width: 848px) 100vw, 848px" /><figcaption class="wp-element-caption">図3:HTML tableタグ</figcaption></figure>



<p class="wp-block-paragraph">&lt;table&gt;タグは、テーブル（表）を作成するタグです。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">イメージとして<strong>「ここにテーブル（表）を作成しますよ！」という宣言</strong>をするだけの役割を担っていると考えてOK。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;table>
&lt;!-- ここに行数や見出しなどを定義していく -->
&lt;/table></pre>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box cocoon-block-tab-caption-box"><div class="tab-caption-box-label block-box-label box-label fab-lightbulb"><span class="tab-caption-box-label-text block-box-label-text box-label-text">tableタグの基本</span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-caret-right block-box"><div class="iconlist-title"></div>
<ul class="wp-block-list">
<li><span class="bold-blue">tableタグの基本構造</span>
<ul class="wp-block-list">
<li class="is-style-bottom-margin-1em has-bottom-margin">HTMLテーブルは、&lt;table&gt;タグで始まり、&lt;/table&gt;タグで終わります。テーブル内には、行と列を定義するためのタグが必要。</li>
</ul>
</li>



<li><span class="bold-blue">行と列の定義</span>
<ul class="wp-block-list">
<li>行: &lt;tr&gt;タグ (table row) を使って、テーブルの行を定義します。</li>



<li>列: &lt;td&gt;タグ (table data) または &lt;th&gt;タグ (table header) を使って、テーブルの列を定義します。通常、&lt;td&gt;タグはデータセルを、&lt;th&gt;タグは見出しセルを表します。</li>
</ul>
</li>
</ul>
</div>
</div></div>



<h3 class="wp-block-heading">HTML：&lt;tr&gt;タグの使い方</h3>



<figure class="wp-block-image aligncenter size-large is-resized"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" width="850" height="367" src="https://it-biz.online/wp-content/uploads/2019/12/image-55.png" alt="html tr" class="wp-image-2837" style="width:840px;height:auto" srcset="https://it-biz.online/wp-content/uploads/2019/12/image-55.png 850w, https://it-biz.online/wp-content/uploads/2019/12/image-55-300x130.png 300w, https://it-biz.online/wp-content/uploads/2019/12/image-55-500x216.png 500w, https://it-biz.online/wp-content/uploads/2019/12/image-55-768x332.png 768w, https://it-biz.online/wp-content/uploads/2019/12/image-55-800x345.png 800w, https://it-biz.online/wp-content/uploads/2019/12/image-55-304x131.png 304w" sizes="(max-width: 850px) 100vw, 850px" /><figcaption class="wp-element-caption">図4：HTML tr</figcaption></figure>



<p class="wp-block-paragraph">&lt;tr&gt;タグは<strong><span class="marker-under">テーブルの行数を指定するタグ</span></strong>です。&lt;tr&gt;タグを設置した分だけ、行数が増えていくことになります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">上記の例で言えば、<strong>&lt;tr&gt;タグは4つ</strong>（＝４行あるので）設置していることになります。必要に応じて、何個でも設置することが可能です。</p>
</div></div>



<p class="wp-block-paragraph">trとは「<big><span style="color:#cf2e2e" class="color">T</span></big>able <big><span style="color:#cf2e2e" class="color">R</span></big>ow」の略です。Rowとは、行という意味を持つため迷ったときは略す前の名称を思い出すと良いでしょう。&lt;tr&gt;タグは、&lt;table&gt;タグの中にネストして利用します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;table>
  &lt;tr>
&lt;!-- ここに表の値などを定義していく -->
  &lt;/tr>
  &lt;tr>
&lt;!-- ここに表の値などを定義していく -->
  &lt;/tr>
&lt;/table></pre>



<h3 class="wp-block-heading">HTML：&lt;th&gt;タグの使い方</h3>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" width="844" height="370" src="https://it-biz.online/wp-content/uploads/2019/12/image-56.png" alt="html th" class="wp-image-2838" srcset="https://it-biz.online/wp-content/uploads/2019/12/image-56.png 844w, https://it-biz.online/wp-content/uploads/2019/12/image-56-300x132.png 300w, https://it-biz.online/wp-content/uploads/2019/12/image-56-500x219.png 500w, https://it-biz.online/wp-content/uploads/2019/12/image-56-768x337.png 768w, https://it-biz.online/wp-content/uploads/2019/12/image-56-800x351.png 800w, https://it-biz.online/wp-content/uploads/2019/12/image-56-304x133.png 304w" sizes="(max-width: 844px) 100vw, 844px" /><figcaption class="wp-element-caption">図5：HTML th</figcaption></figure>



<p class="wp-block-paragraph">&lt;th&gt;タグは、テーブルの見出しやタイトルを定義します。</p>



<p class="wp-block-paragraph">&lt;th&gt;タグは「<big><strong>T</strong></big>able <strong><big>H</big></strong>eader」の略であり、&lt;tr&gt;タグの中にネストして利用します。なお、&lt;th&gt;タグは見出し・タイトルを定義するタグであるため、テキストは<strong>太字</strong>かつ<strong>中央寄せ</strong>で表示されます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;table>
  &lt;tr>
    &lt;th>国&lt;/th>
    &lt;th>通貨&lt;/th>
    &lt;th>言語&lt;/th>
  &lt;/tr>
  &lt;tr>
&lt;!-- ここに表の値を定義していく -->
  &lt;/tr>
&lt;/table></pre>



<h3 class="wp-block-heading">HTML：&lt;td&gt;タグの使い方</h3>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" width="852" height="377" src="https://it-biz.online/wp-content/uploads/2019/12/image-57.png" alt="HTML td" class="wp-image-2840" srcset="https://it-biz.online/wp-content/uploads/2019/12/image-57.png 852w, https://it-biz.online/wp-content/uploads/2019/12/image-57-300x133.png 300w, https://it-biz.online/wp-content/uploads/2019/12/image-57-500x221.png 500w, https://it-biz.online/wp-content/uploads/2019/12/image-57-768x340.png 768w, https://it-biz.online/wp-content/uploads/2019/12/image-57-800x354.png 800w, https://it-biz.online/wp-content/uploads/2019/12/image-57-304x135.png 304w" sizes="(max-width: 852px) 100vw, 852px" /><figcaption class="wp-element-caption">図6：HTML td</figcaption></figure>



<p class="wp-block-paragraph"><strong>&lt;td&gt;タグ</strong>は「Table Data」の略で、テーブルセルの内容を定義します。&lt;tr&gt;タグの中にネストして利用します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;table>
  &lt;tr>
    &lt;th>国&lt;/th>
    &lt;th>通貨&lt;/th>
    &lt;th>言語&lt;/th>
  &lt;/tr>
  &lt;tr>
    &lt;td>日本&lt;/td>
    &lt;td>円&lt;/td>
    &lt;td>言語&lt;/td>
  &lt;/tr>
  &lt;tr>
    &lt;td>アメリカ&lt;/td>
    &lt;td>＄&lt;/td>
    &lt;td>英語&lt;/td>
  &lt;/tr>
  &lt;tr>
    &lt;td>イギリス&lt;/td>
    &lt;td>￡&lt;/td>
    &lt;td>英語&lt;/td>
  &lt;/tr>
&lt;/table></pre>



<p class="wp-block-paragraph">こちらのコードを実行した結果がこちら。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="244" height="180" src="https://it-biz.online/wp-content/uploads/2019/12/image-58.png" alt="" class="wp-image-2842" srcset="https://it-biz.online/wp-content/uploads/2019/12/image-58.png 244w, https://it-biz.online/wp-content/uploads/2019/12/image-58-214x158.png 214w" sizes="(max-width: 244px) 100vw, 244px" /><figcaption class="wp-element-caption">図7：テーブル（表）の表示結果</figcaption></figure>



<p class="wp-block-paragraph">このように、<strong>&lt;table&gt;タグ・&lt;tr&gt;タグ・&lt;th&gt;タグ・&lt;td&gt;タグ</strong>の４つを利用することでHTMLでテーブル（表）を定義することが可能になります。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-caret-right block-box"><div class="iconlist-title">HTML：テーブル（表）の基本</div>
<ul class="wp-block-list">
<li class="is-style-bottom-margin-2em has-bottom-margin">HTMLのtableタグは、データを行と列の形式で整理し、表示するために使用されるHTML要素。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">テーブルは、情報を視覚的に整理して比較しやすくすることができ、一般的には数値データや、関連する項目のリストなどを表示するのに適している。</li>



<li>tableタグを使ってテーブルを作成する際には、以下のタグを組み合わせて使用します。</li>
</ul>
</div>



<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-hand-o-right block-box"><div class="iconlist-title">テーブル定義を行う際の基本タグ</div>
<ul class="wp-block-list">
<li class="is-style-bottom-margin-1em has-bottom-margin"><code><span class="bold-blue">&lt;table&gt;</span></code><br>テーブル全体を定義します。テーブルはこのタグで始まり、<code>&lt;/table&gt;</code>で終わります。</li>



<li class="is-style-bottom-margin-1em has-bottom-margin"><code><span class="bold-blue">&lt;tr&gt;</span></code><br>テーブルの行を定義するために使用されるタグです。</li>



<li class="is-style-bottom-margin-1em has-bottom-margin"><code><span class="bold-blue">&lt;th&gt;</span></code><br>テーブルの見出しセルを定義するために使用されるタグで、通常は行や列のラベルに使用されます。</li>



<li><code><span class="bold-blue">&lt;td&gt;</span></code><br>テーブルのデータセルを定義するために使用されるタグで、実際のデータを表します。</li>
</ul>
</div>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;table>
  &lt;tr>
    &lt;th>見出し1&lt;/th>
    &lt;th>見出し2&lt;/th>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ1&lt;/td>
    &lt;td>データ2&lt;/td>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ3&lt;/td>
    &lt;td>データ4&lt;/td>
  &lt;/tr>
&lt;/table></pre>
</div>



<h2 class="wp-block-heading">現代のWeb環境におけるテーブル（表）の重要性</h2>



<p class="wp-block-paragraph">たまに、現代のWeb環境においてはテーブル（tableタグ）はもはや不要である？という意見を見かけますが、以下のような観点を踏まえると依然として重要なタグの１つであると言えます。</p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li><strong>データの整理と表示</strong>
<ul class="wp-block-list">
<li class="is-style-bottom-margin-2em has-bottom-margin">HTMLの表はデータを整理し、読みやすい形式で表示するのに適しています。例えば、統計データ、スケジュール、比較リストなどが挙げられます。</li>
</ul>
</li>



<li><strong>アクセシビリティ</strong>
<ul class="wp-block-list">
<li class="is-style-bottom-margin-2em has-bottom-margin">正しくマークアップされた表は、スクリーンリーダーを使用する視覚障害者に対して、情報の構造を明確に伝えることができます。</li>
</ul>
</li>



<li><strong>互換性と標準化</strong>
<ul class="wp-block-list">
<li>ほとんどのブラウザでサポートされており、異なるデバイスやブラウザ間で一貫した表示を提供します。</li>
</ul>
</li>
</ol>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">ちょっと寄り道的に解説すると、昔は<strong>テーブル要素をページのレイアウトを整えるために利用する</strong>手法が流行った時期があるのですが、もうその目的では利用しませんよ・・・！ということを勘違いしてしまうと不要論につながってしまいます。</p>
</div></div>



<h3 class="wp-block-heading">限定的な使用</h3>



<ul class="wp-block-list">
<li><strong>レイアウトツールとしての使用の減少</strong>
<ul class="wp-block-list">
<li>過去にはWebページのレイアウト作成に広く使われていましたが、現在ではCSSフレックスボックスやグリッドレイアウトなどの技術が推奨されています。これらはレスポンシブデザインに適しており、より柔軟なレイアウトを可能にします。</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">最適な使用</h3>



<ul class="wp-block-list">
<li><strong>意図した目的での使用</strong>
<ul class="wp-block-list">
<li>テーブルは主にタブラー形式のデータ表示のために使用するべきです。レイアウト目的での使用は、セマンティック（意味論的）なWebデザインの原則に反しています。<br><span class="badge">参考</span>　<a href="https://it-biz.online/web-design/semantic-html/">セマンティックHTMLとは？</a></li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">HTMLの表は現代のWeb環境において、特定の用途、特にデータの整理とアクセス可能な表示において重要ですが、ページレイアウトのツールとしては他のより適した技術に取って代わられています。適切なコンテキストで使用される場合、表は効果的なツールであり続けます。</p>



<h2 class="wp-block-heading">HTML：テーブルのデザイン</h2>



<p class="wp-block-paragraph">ここからは、HTMLでテーブルのデザイン変更を行う方法を解説していきます。CSSを使用してスタイルを指定する方が現代的で柔軟ですが、知識の１つとして知っておいて損はありません。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">代表的な以下の属性について解説します。</p>



<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-caret-right block-box"><div class="iconlist-title">tableタグで利用できる主な属性</div>
<ul class="wp-block-list">
<li>border属性</li>



<li>bordercolor属性</li>



<li>bgcolor属性</li>



<li>cellspacing属性</li>



<li>cellpadding属性</li>
</ul>
</div>
</div></div>



<h3 class="wp-block-heading">テーブルに罫線をつける方法（border属性）</h3>



<p class="wp-block-paragraph">border属性（<span class="badge">参考</span> <a href="https://it-biz.online/web-design/attribute/">属性とは？</a>）は、HTMLのtableタグにおいて、<strong>テーブルやセルの境界線（ボーダー）の幅を指定</strong>するために使用される属性です。この属性に数値を指定することで、ボーダーの幅をピクセル単位で設定できます。</p>



<p class="wp-block-paragraph">例えば、次のようにtableタグにborder属性を指定することで、テーブル全体に1ピクセル幅のボーダーを適用できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;table border="1">
  ...
&lt;/table></pre>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">しかし、border属性はHTML4.01で非推奨となり、HTML5では完全に廃止されました。現代のWeb開発では、代わりにCSSを使用してテーブルやセルのボーダーをスタイルすることが一般的です。</p>



<p class="wp-block-paragraph">例えば、次のようにCSSのborderプロパティを使用して、同様のボーダースタイルを適用できます。</p>
</div>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;style>
  table {
    border-collapse: collapse;
  }
  th, td {
    border: 1px solid black;
  }
&lt;/style>
&lt;table>
  &lt;tr>
    &lt;th>見出し1&lt;/th>
    &lt;th>見出し2&lt;/th>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ1&lt;/td>
    &lt;td>データ2&lt;/td>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ3&lt;/td>
    &lt;td>データ4&lt;/td>
  &lt;/tr>
&lt;/table></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">上記を実行した結果がこちら。</p>



<figure class="wp-block-image aligncenter size-full"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" width="478" height="142" src="https://it-biz.online/wp-content/uploads/2023/04/image-27.png" alt="" class="wp-image-7438" srcset="https://it-biz.online/wp-content/uploads/2023/04/image-27.png 478w, https://it-biz.online/wp-content/uploads/2023/04/image-27-300x89.png 300w" sizes="(max-width: 478px) 100vw, 478px" /><figcaption class="wp-element-caption">例：CSSで罫線を定義</figcaption></figure>
</div></div>



<h3 class="wp-block-heading">枠線の色を変える（bordercolor）</h3>



<p class="wp-block-paragraph"><code>bordercolor</code>属性は、HTMLのテーブルやセルの境界線（ボーダー）の色を指定するためにかつて使用されていた属性です。この属性に色名や16進カラーコードを指定することで、ボーダーの色を設定できました。</p>



<p class="wp-block-paragraph">例えば、以下のようにtableタグに<code>bordercolor</code>属性を指定することで、ボーダーの色を赤に設定できました。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;table border="1" bordercolor="red">
  ...
&lt;/table></pre>



<p class="wp-block-paragraph"><strong><span class="marker-under">しかし、<code>bordercolor</code>属性も非標準の属性であり、HTML標準仕様には含まれていません。そのため、現代のWeb開発では使用を避け</span></strong>、代わりにCSSを利用してボーダーの色をスタイルすることが推奨されています。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">例えば、以下のようにCSSの<code>border</code>プロパティを使用して、同様のボーダーの色を適用できます。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;style>
  table {
    border-collapse: collapse;
  }
  th, td {
    border: 1px solid red;
  }
&lt;/style>

&lt;table>
  &lt;tr>
    &lt;th>見出し1&lt;/th>
    &lt;th>見出し2&lt;/th>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ1&lt;/td>
    &lt;td>データ2&lt;/td>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ3&lt;/td>
    &lt;td>データ4&lt;/td>
  &lt;/tr>
&lt;/table></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">この例では、<code>border-collapse: collapse;</code>を使ってテーブルのボーダーがつながるようにしています。また、<code>th</code>および<code>td</code>要素に対して、<code>border: 1px solid red;</code>を使って1ピクセル幅の赤いボーダーを適用しています。</p>



<p class="wp-block-paragraph">CSSを使用することで、より柔軟で綺麗なデザインを実現できますし、標準仕様に準拠したコードを書くことができます。</p>



<figure class="wp-block-image aligncenter size-full"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" width="502" height="147" src="https://it-biz.online/wp-content/uploads/2023/04/image-28.png" alt="" class="wp-image-7439" srcset="https://it-biz.online/wp-content/uploads/2023/04/image-28.png 502w, https://it-biz.online/wp-content/uploads/2023/04/image-28-300x88.png 300w, https://it-biz.online/wp-content/uploads/2023/04/image-28-500x146.png 500w" sizes="(max-width: 502px) 100vw, 502px" /><figcaption class="wp-element-caption">例：CSSで罫線の色を定義</figcaption></figure>
</div></div>



<h3 class="wp-block-heading">背景色を変更する方法（bgcolor属性）</h3>



<p class="wp-block-paragraph"><code>bgcolor</code>属性は、HTMLの過去のバージョンで使用されていた属性で、テーブルやセルの背景色を指定するために使われていました。この属性に色名や16進カラーコードを指定することで、背景色を設定できました。</p>



<p class="wp-block-paragraph">例えば、次のように<code>table</code>タグや<code>td</code>タグに<code>bgcolor</code>属性を指定することで、背景色を設定できました。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;table bgcolor="#f2f2f2">
  &lt;tr>
    &lt;th>見出し1&lt;/th>
    &lt;th>見出し2&lt;/th>
  &lt;/tr>
  &lt;tr>
    &lt;td bgcolor="lightblue">データ1&lt;/td>
    &lt;td bgcolor="lightblue">データ2&lt;/td>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ3&lt;/td>
    &lt;td>データ4&lt;/td>
  &lt;/tr>
&lt;/table></pre>



<p class="has-text-align-left wp-block-paragraph">しかし、<code>bgcolor</code>属性は<strong>HTML4.01で非推奨</strong>となり、<strong><span class="marker-under">HTML5では完全に廃止</span></strong>されました。現代のWeb開発では、代わりにCSSを使用してテーブルやセルの背景色をスタイルすることが一般的です。</p>



<figure class="wp-block-image aligncenter size-full"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" width="494" height="158" src="https://it-biz.online/wp-content/uploads/2023/04/image-29.png" alt="" class="wp-image-7440" srcset="https://it-biz.online/wp-content/uploads/2023/04/image-29.png 494w, https://it-biz.online/wp-content/uploads/2023/04/image-29-300x96.png 300w" sizes="(max-width: 494px) 100vw, 494px" /><figcaption class="wp-element-caption">例：bgcolor属性</figcaption></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">例えば、次のようにCSSの<code>background-color</code>プロパティを使用して、同様の背景色を適用できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;style>
  table {
    background-color: #f2f2f2;
  }
  td:first-child {
    background-color: lightblue;
  }
&lt;/style>

&lt;table>
  &lt;tr>
    &lt;th>見出し1&lt;/th>
    &lt;th>見出し2&lt;/th>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ1&lt;/td>
    &lt;td>データ2&lt;/td>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ3&lt;/td>
    &lt;td>データ4&lt;/td>
  &lt;/tr>
&lt;/table></pre>



<figure class="wp-block-image aligncenter size-full"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" width="538" height="152" src="https://it-biz.online/wp-content/uploads/2023/04/image-30.png" alt="" class="wp-image-7441" srcset="https://it-biz.online/wp-content/uploads/2023/04/image-30.png 538w, https://it-biz.online/wp-content/uploads/2023/04/image-30-300x85.png 300w, https://it-biz.online/wp-content/uploads/2023/04/image-30-500x141.png 500w" sizes="(max-width: 538px) 100vw, 538px" /><figcaption class="wp-element-caption">例：CSSでセルの色を変更する</figcaption></figure>
</div></div>



<h3 class="wp-block-heading">セル間のスペースを指定（cellspacing属性）</h3>



<p class="wp-block-paragraph"><code>cellspacing</code>属性は、HTMLのtableタグにおいて、<strong>テーブル内のセル間のスペース</strong>（セルスペーシング）を指定するために使用される属性です。この属性に数値を指定することで、セル間のスペースをピクセル単位で設定できます。</p>



<p class="wp-block-paragraph">例えば、次のようにtableタグに<code>cellspacing</code>属性を指定することで、セル間に5ピクセルのスペースを設けることができます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;table cellspacing="5">
  ...
&lt;/table></pre>



<p class="wp-block-paragraph">しかし、<code>cellspacing</code>属性も他の属性と同様に<strong><span class="marker-under">HTML5で非推奨</span></strong>となりました。代わりにCSSを使用してテーブルのセル間のスペースをスタイルすることが一般的です。</p>



<p class="wp-block-paragraph">例えば、次のようにCSSの<code>border-spacing</code>プロパティを使用して、同様のセル間のスペースを設定できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;style>
  table {
    border-collapse: separate;
    border-spacing: 20px;
  }
&lt;/style>

&lt;table>
  &lt;tr>
    &lt;th>見出し1&lt;/th>
    &lt;th>見出し2&lt;/th>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ1&lt;/td>
    &lt;td>データ2&lt;/td>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ3&lt;/td>
    &lt;td>データ4&lt;/td>
  &lt;/tr>
&lt;/table></pre>



<figure class="wp-block-image aligncenter size-full"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" width="587" height="256" src="https://it-biz.online/wp-content/uploads/2023/04/image-31.png" alt="" class="wp-image-7442" srcset="https://it-biz.online/wp-content/uploads/2023/04/image-31.png 587w, https://it-biz.online/wp-content/uploads/2023/04/image-31-300x131.png 300w, https://it-biz.online/wp-content/uploads/2023/04/image-31-500x218.png 500w" sizes="(max-width: 587px) 100vw, 587px" /><figcaption class="wp-element-caption">例：CSSでセル間のスペースを指定</figcaption></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">この例では、<code>border-collapse: separate;</code>を使ってテーブルのボーダーが分離されるようにしています。また、<code>border-spacing: </code>20<code>px;</code>を使ってセル間のスペースを20ピクセルに設定しています</p>
</div></div>



<h3 class="wp-block-heading">セル内のスペースを指定（cellpadding属性）</h3>



<p class="wp-block-paragraph"><code>cellpadding</code>属性は、HTMLのtableタグにおいて、テーブルのセル内の余白（セルパディング）を指定するために使用される属性です。この属性に数値を指定することで、セル内の余白をピクセル単位で設定できます。</p>



<p class="wp-block-paragraph">例えば、次のようにtableタグに<code>cellpadding</code>属性を指定することで、セル内の余白を10ピクセルに設定することができます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;table cellpadding="10">
  ...
&lt;/table></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">しかし、<code>cellpadding</code>属性についても<strong><span class="marker-under">HTML5で非推奨</span></strong>となりました。</p>
</div></div>



<p class="wp-block-paragraph">代わりにCSSを使用してテーブルのセル内の余白をスタイルすることが一般的です。例えば、次のようにCSSの<code>padding</code>プロパティを使用して、同様のセル内の余白を設定できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;style>
  th, td {
    padding: 10px;
  }
&lt;/style>
&lt;table>
  &lt;tr>
    &lt;th>見出し1&lt;/th>
    &lt;th>見出し2&lt;/th>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ1&lt;/td>
    &lt;td>データ2&lt;/td>
  &lt;/tr>
  &lt;tr>
    &lt;td>データ3&lt;/td>
    &lt;td>データ4&lt;/td>
  &lt;/tr>
&lt;/table></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【IT用語解説】ブラウザとは？Webページが表示される仕組みを初心者向けに解説</title>
		<link>https://it-biz.online/it-skills/browser/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Tue, 26 May 2026 07:56:48 +0000</pubDate>
				<category><![CDATA[IT-Skills]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[用語解説]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=11127</guid>

					<description><![CDATA[ブラウザとは何か、ChromeやSafariの役割、URLを開く流れ、検索エンジンやWebサイトとの違い、安全に使うポイントを初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ブラウザとは、<strong><span class="marker-under">Webページを取得して、画面に表示するためのアプリ</span></strong>です。</p>



<p class="wp-block-paragraph">Google Chrome、Safari、Microsoft Edge、Firefoxなどが代表的なブラウザです。スマートフォンやパソコンでWebサイトを見るとき、多くの場合はブラウザを通してページを開いています。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>ブラウザは「インターネットそのもの」ではありません。インターネット上のWebページを見に行くための窓口です。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、ブラウザの意味、URLを開くと何が起きるのか、HTML・CSS・JavaScriptとの関係、検索エンジンやWebサイトとの違い、安全に使うポイントを初心者向けに整理します。</p>



<h2 class="wp-block-heading">ブラウザはWebを見るための窓口</h2>



<p class="wp-block-paragraph">ブラウザは、ユーザーが入力したURLやクリックしたリンクをもとに、Webページを取得しに行くためのアプリ・ツールです。サーバーから受け取ったHTML、CSS、JavaScript、画像などを組み合わせて、読める画面として表示します。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/browser-concept.png" alt="ユーザー、ブラウザ、Webページの関係を示す図"/><figcaption class="wp-element-caption">ブラウザは、ユーザーがWebページを見るために使う窓口のようなアプリです。</figcaption></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">MDNでは、ブラウザはWeb上のページを取得して表示し、リンクを通じて別のページへアクセスできるプログラムとして説明されています。まずは「Webページを取りに行って表示するアプリ」と覚えると十分です。</p>
</div></div>



<h2 class="wp-block-heading">代表的なブラウザ</h2>



<p class="wp-block-paragraph">ブラウザにはいくつか種類があります。日常的によく使われるのは、Chrome、Safari、Microsoft Edge、Firefoxなどです。どれもWebページを見るためのアプリですが、開発元、標準設定、拡張機能、端末との相性などが異なります。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>ブラウザ</th><th>よく使われる場面</th><th>初心者向けの見方</th></tr></thead><tbody><tr><td>Google Chrome</td><td>PC、Android、開発現場</td><td>利用者が多く情報も多い</td></tr><tr><td>Safari</td><td>iPhone、iPad、Mac</td><td>Apple製品で標準的に使われる</td></tr><tr><td>Microsoft Edge</td><td>Windows PC</td><td>Windowsに標準搭載されている</td></tr><tr><td>Firefox</td><td>PC、開発・検証</td><td>独自の特徴を持つブラウザ</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">どのブラウザを使っても、基本的な役割は同じです。URLを開き、Webページを取得し、画面に表示します。</p>



<h2 class="wp-block-heading">ブラウザ画面でよく見る名前</h2>



<p class="wp-block-paragraph">ブラウザを使うときは、画面上の名前もあわせて覚えると理解しやすくなります。URLを入力する場所はアドレスバー、複数のページを切り替える場所はタブ、よく見るページを保存する機能はブックマークです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>アドレスバー：URLや検索語を入力する場所</li>



<li>タブ：複数のWebページを同じブラウザ内で切り替える場所</li>



<li>戻る・進む：前後に見たページへ移動するボタン</li>



<li>更新ボタン：今見ているページを読み込み直すボタン</li>



<li>ブックマーク：あとで見たいページを保存する機能</li>



<li>履歴：過去に開いたページの記録</li>
</ul>



<p class="wp-block-paragraph">問い合わせやトラブル対応で「ブラウザのタブを閉じる」「アドレスバーのURLを確認する」と言われることがあります。用語を知っているだけで、操作説明をかなり読み取りやすくなります。</p>



<h2 class="wp-block-heading">ブラウザでページが表示される流れ</h2>



<p class="wp-block-paragraph">ブラウザでWebページを見るとき、裏側ではいくつかの処理が順番に進みます。細かい通信の仕組みを全部覚える必要はありませんが、URL、サーバー、HTTPという言葉が関係することは押さえておきましょう。</p>



<p class="wp-block-paragraph">次の図では、ブラウザがURLを読み、サーバーへページを取りに行き、受け取った材料を画面に組み立てる流れを確認してください。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/browser-flow.png" alt="ブラウザがURLからサーバーへアクセスしてWebページを表示する流れ"/><figcaption class="wp-element-caption">ブラウザはURLを読み、サーバーからWebページの材料を受け取り、画面として表示します。</figcaption></figure>



<p class="wp-block-paragraph">URLの基本は<a href="https://it-biz.online/it-skills/url/">URLとは？</a>、HTTPの仕組みは<a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a>で詳しく解説しています。</p>



<h2 class="wp-block-heading">ブラウザは何を表示しているのか</h2>



<p class="wp-block-paragraph">Webページは、最初から完成した画像として届くわけではありません。多くの場合、ブラウザはHTML、CSS、JavaScript、画像などのファイルを受け取り、それらを解釈して画面を作ります。</p>



<p class="wp-block-paragraph">HTMLはページの骨組み、CSSは見た目、JavaScriptは動きや操作を担当します。ブラウザはこれらの材料を読み取り、ユーザーが見やすい形に組み立てます。</p>



<p class="wp-block-paragraph">次の図では、Webページの材料をブラウザが組み立てるイメージを見てください。ブラウザは単に文字を表示しているだけではなく、複数のファイルを解釈しています。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/browser-parts.png" alt="HTML、CSS、JavaScript、画像をブラウザがWebページとして表示する図"/><figcaption class="wp-element-caption">ブラウザはHTML、CSS、JavaScript、画像などを組み合わせてWebページを表示します。</figcaption></figure>



<h2 class="wp-block-heading">ブラウザ・検索エンジン・Webサイトの違い</h2>



<p class="wp-block-paragraph">初心者が混同しやすいのが、ブラウザ、検索エンジン、Webサイトの違いです。たとえばChromeはブラウザ、Google検索は検索エンジン、検索結果から開くページがWebサイトです。</p>



<p class="wp-block-paragraph">Googleという名前は検索エンジンとして使われることもあれば、Chromeというブラウザを提供している会社名として出てくることもあります。そのため、最初は役割で分けて考えると混乱しにくくなります。</p>



<p class="wp-block-paragraph">次の図では、ブラウザ、検索エンジン、Webサイト、アプリの違いを整理してください。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/browser-comparison.png" alt="ブラウザ、検索エンジン、Webサイトの違いを比較する図"/><figcaption class="wp-element-caption">ChromeはWebを見るアプリ、Google検索はページを探すサービス、Webサイトは実際に見る中身です。</figcaption></figure>



<h2 class="wp-block-heading">ブラウザでできること</h2>



<p class="wp-block-paragraph">ブラウザはWebページを見るだけでなく、さまざまな操作の入口になります。今のWebサービスでは、メール、地図、動画、買い物、資料作成、学習サイトなど、多くの機能がブラウザ上で使えます。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>URLを入力してWebページを開く</li>



<li>検索エンジンで情報を探す</li>



<li>Webアプリを使う</li>



<li>ファイルをダウンロードする</li>



<li>ログインしてサービスを利用する</li>



<li>タブや履歴、ブックマークでページを管理する</li>
</ul>



<p class="wp-block-paragraph">Webアプリとは、ブラウザ上で使えるアプリのようなものです。インストール型アプリと違い、URLを開くだけで使えるものも多くあります。</p>



<h2 class="wp-block-heading">ブラウザを安全に使うポイント</h2>



<p class="wp-block-paragraph">ブラウザは便利ですが、危険なサイトや偽のログイン画面に出会うこともあります。安全に使うためには、アドレスバー、HTTPS、権限、更新、履歴やCookieを意識します。</p>



<p class="wp-block-paragraph">次の図では、ブラウザを使うときの最低限の確認ポイントをまとめています。特に、ログイン前にURLとドメインを見る習慣は重要です。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/browser-safety.png" alt="ブラウザを安全に使うためのアドレスバー、権限、更新、履歴の確認ポイント"/><figcaption class="wp-element-caption">ブラウザを安全に使うには、URL、HTTPS、権限、更新、履歴やCookieを確認します。</figcaption></figure>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>ログイン前にアドレスバーのドメインを確認する</li>



<li><code>https://</code>で通信が保護されているか見る</li>



<li>通知、位置情報、カメラなどの権限をむやみに許可しない</li>



<li>ブラウザを古いまま使い続けない</li>



<li>共有PCでは履歴、Cookie、ログイン状態に注意する</li>
</ul>



<h2 class="wp-block-heading">ブラウザとサーバーの関係</h2>



<p class="wp-block-paragraph">ブラウザは、利用者側で動くクライアントです。サーバーは、Webページやデータを提供する側です。ブラウザがサーバーへ依頼し、サーバーが結果を返すことでWebページが表示されます。</p>



<p class="wp-block-paragraph">この関係はクライアントサーバーシステムと呼ばれます。詳しくは<a href="https://it-biz.online/it-skills/client-server/">クライアントサーバシステムとは？</a>の記事で確認できます。</p>



<p class="wp-block-paragraph">また、Web APIを呼び出すときも、ブラウザがサーバーへデータを取りに行くことがあります。APIの入口は<a href="https://it-biz.online/it-skills/web_api/">APIとは？APIとWeb APIの違い</a>で整理できます。</p>



<h2 class="wp-block-heading">既存記事とあわせて読む順番</h2>



<p class="wp-block-paragraph">ブラウザを理解したら、URL、HTTP、DNS、クライアントサーバーの順に読むと、Webページが表示される流れがつながります。</p>



<ul class="wp-block-list">
<li><a href="https://it-biz.online/it-skills/url/">URLとは？</a></li>



<li><a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a></li>



<li><a href="https://it-biz.online/it-skills/dns/">DNSとは何か？</a></li>



<li><a href="https://it-biz.online/it-skills/client-server/">クライアントサーバシステムとは？</a></li>



<li><a href="https://it-biz.online/it-skills/network-abc/">ゼロから学ぶネットワーク入門</a></li>
</ul>



<h2 class="wp-block-heading">公式情報と関連リンク</h2>



<p class="wp-block-paragraph">ブラウザの基本的な定義はMDNのBrowser用語集、Webページ表示の流れはMDNのHow the Web worksやHow browsers workが参考になります。初心者の段階では、まずブラウザがWebページを取得して表示するアプリだと理解できれば十分です。</p>



<ul class="wp-block-list">
<li><a href="https://developer.mozilla.org/en-US/docs/Glossary/Browser">MDN Browser glossary</a></li>



<li><a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works">MDN How the Web works</a></li>



<li><a href="https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work">MDN How browsers work</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">ブラウザは、Webページを取得して、画面に表示するためのアプリです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>Chrome、Safari、Edge、Firefoxなどが代表的なブラウザ</li>



<li>ブラウザはURLを読み、サーバーからWebページの材料を受け取る</li>



<li>HTML、CSS、JavaScript、画像などを組み立てて表示する</li>



<li>ブラウザ、検索エンジン、Webサイトは役割が違う</li>



<li>安全に使うにはURL、HTTPS、権限、更新を確認する</li>
</ul>



<p class="wp-block-paragraph">ブラウザを理解すると、URL、HTTP、DNS、Web APIといったWebの基礎用語がつながりやすくなります。まずは、ブラウザを「Webページを見に行き、画面に表示するための窓口」として押さえましょう。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【IT用語解説】URLとは？ドメインやパスとの違いを初心者向けに解説</title>
		<link>https://it-biz.online/it-skills/url/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Tue, 26 May 2026 03:09:06 +0000</pubDate>
				<category><![CDATA[IT-Skills]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[ネットワーク]]></category>
		<category><![CDATA[用語解説]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=11118</guid>

					<description><![CDATA[URLとは何か、ドメイン・パス・クエリとの違い、ブラウザでページが開く流れ、URLを見るときの注意点を初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">URLとは、<strong><span class="marker-under">Webページや画像などが、インターネット上のどこにあるかを示す文字列</span></strong>です。</p>



<p class="wp-block-paragraph">ブラウザの上にあるアドレスバーに表示されている、<code>https://it-biz.online/...</code> のような文字列がURLです。Webページを見る、画像を開く、APIへアクセスするなど、多くのWeb操作はこのURLを手がかりに始まります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>URLは「Web上の住所」です。住所を見ると建物の場所が分かるように、URLを見るとWeb上の目的地が分かります。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、URLの意味、ドメインやパスとの違い、URLを開くと何が起きるのか、安全に見るポイントを初心者向けに整理します。</p>



<h2 class="wp-block-heading">まず結論：URLはWeb上の住所</h2>



<p class="wp-block-paragraph">URLは、<strong>Uniform Resource Locator</strong>の略です。日本語では「統一資源位置指定子」と訳されることがありますが、最初からこの訳語を覚える必要はありません。まずは「Web上の住所」と考えると十分です。</p>



<p class="wp-block-paragraph">MDNでは、URLはWebページ、画像、動画などのリソースがインターネット上のどこにあるかを示す文字列として説明されています。ここでいうリソースとは、Web上で取得できる情報やファイルのことです。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">次の図は、URLを入力したブラウザが、目的のWebページへ向かうイメージです。</p>
</div></div>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/url-concept.png" alt="URLをWeb上の住所として、ブラウザが目的のページへ向かうイメージ"/><figcaption class="wp-element-caption">URLは、ブラウザにWeb上の目的地を伝える住所のような文字列です。</figcaption></figure>



<h2 class="wp-block-heading">URLの基本形</h2>



<p class="wp-block-paragraph">URLは、いくつかの部品に分けて読めます。たとえば、次のURLを見てみます。</p>



<p class="wp-block-paragraph"><code>https://www.example.com/articles/url?id=10#summary</code></p>



<p class="wp-block-paragraph">長く見えますが、最初に見るべきなのは、通信の種類、サイト名、ページの場所です。慣れてきたら、条件やページ内の位置も読めるようになります。次の図では、URLを部品ごとに分けて見てください。全部を暗記する必要はありませんが、ドメインとパスの違いは早めに押さえると役に立ちます。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/url-anatomy.png" alt="URLをスキーム、ドメイン、パス、クエリ、フラグメントに分けて説明する図"/><figcaption class="wp-element-caption">URLは、通信の種類、ドメイン、パス、クエリ、フラグメントなどに分けて読めます。</figcaption></figure>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>部品</th><th>例</th><th>意味</th></tr></thead><tbody><tr><td>スキーム</td><td><code>https://</code></td><td>通信の種類。Webではhttpやhttpsがよく出る</td></tr><tr><td>ドメイン</td><td><code>www.example.com</code></td><td>サイトやサーバーを表す名前</td></tr><tr><td>パス</td><td><code>/articles/url</code></td><td>サイト内のページや場所</td></tr><tr><td>クエリ</td><td><code>?id=10</code></td><td>検索条件やIDなどの追加情報</td></tr><tr><td>フラグメント</td><td><code>#summary</code></td><td>ページ内の特定位置</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">実例でURLを読んでみる</h2>



<p class="wp-block-paragraph">実際のURLを読むときは、左から順番にすべてを完璧に理解しようとしなくて構いません。まずは、<strong>どのサイトの、どのページを開こうとしているのか</strong>を見ます。</p>



<p class="wp-block-paragraph">たとえば、<code>https://it-biz.online/it-skills/http/</code> というURLなら、<code>https://</code> は安全なWeb通信、<code>it-biz.online</code> はサイト名、<code>/it-skills/http/</code> はサイト内の記事の場所だと読めます。</p>



<p class="wp-block-paragraph">検索結果やECサイトでは、URLの後ろに<code>?keyword=...</code>や<code>?id=...</code>のようなクエリが付くことがあります。これは、検索キーワード、商品ID、並び順、流入元などの追加情報を渡すために使われます。</p>



<p class="wp-block-paragraph">また、<code>#summary</code>のようなフラグメントは、同じページ内の特定位置へ移動するために使われます。ページの中にある「まとめ」や「見出し」へ直接飛ぶリンクでよく見かけます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">初心者のうちは、URL全体を暗記するよりも、長いURLを見たときに『ドメインはどこか』『パスはどこからか』『クエリは付いているか』を分ける練習をする方が実務で役立ちます。</p>
</div></div>



<h2 class="wp-block-heading">URL・ドメイン・IPアドレスの違い</h2>



<p class="wp-block-paragraph">URLを学ぶと、ドメインやIPアドレスという言葉も出てきます。これらは似ていますが、同じものではありません。</p>



<p class="wp-block-paragraph">ドメインは、<code>it-biz.online</code> のようなサイトの名前です。IPアドレスは、ネットワーク上の機器を識別する番号です。URLは、それらに加えて、ページの場所や条件まで含められます。</p>



<p class="wp-block-paragraph">次の図では、URL、ドメイン、IPアドレス、ページタイトルを分けて見てください。混同しやすい言葉を先に整理しておくと、HTTPやDNSの記事が読みやすくなります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/url-comparison.png" alt="URL、ドメイン、IPアドレス、ページタイトルの違いを比較する図"/><figcaption class="wp-element-caption">URLはページまで含む住所、ドメインはサイト名、IPアドレスはネットワーク上の番号として分けて考えます。</figcaption></figure>



<h2 class="wp-block-heading">URLを開くと何が起きるか</h2>



<p class="wp-block-paragraph">ブラウザでURLを開くと、ただ文字列を表示しているだけではありません。ブラウザはURLからドメインを読み取り、そのドメインがどのサーバーを指すのかを調べ、目的のページを取りに行きます。</p>



<p class="wp-block-paragraph">この流れでは、DNSやHTTPが関係します。DNSはドメインからIPアドレスを調べる仕組みで、HTTPはブラウザとサーバーがWebページをやり取りするための通信の基本です。</p>



<p class="wp-block-paragraph">次の図では、URLを開いてからページが表示されるまでの流れを確認してください。細かい通信手順をすべて覚えるより、URLがDNSやHTTPにつながっていることを押さえるのが先です。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/url-journey.png" alt="ブラウザがURLからドメインを使ってDNSに問い合わせ、サーバーからページを受け取る流れ"/><figcaption class="wp-element-caption">URLを開くと、ブラウザはドメインを手がかりにサーバーへ行き、パスで指定されたページを受け取ります。</figcaption></figure>



<h2 class="wp-block-heading">httpとhttpsの違い</h2>



<p class="wp-block-paragraph">URLの先頭にある<code>http://</code>や<code>https://</code>は、スキームと呼ばれます。Webページを見るときによく使われるのはHTTPとHTTPSです。</p>



<p class="wp-block-paragraph">初心者の段階では、<code>https://</code>は通信が暗号化されるWeb通信、<code>http://</code>は暗号化されないWeb通信、と押さえれば十分です。ログイン、決済、個人情報入力では、基本的に<code>https://</code>になっているかを確認しましょう。</p>



<p class="wp-block-paragraph">HTTPとHTTPSの詳しい仕組みは、<a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a>の記事で解説しています。</p>



<h2 class="wp-block-heading">URLを見るときの安全チェック</h2>



<p class="wp-block-paragraph">URLは便利ですが、フィッシングサイトや怪しいリンクを見分けるときにも重要です。リンクの文字だけで判断せず、実際に開こうとしているURL、とくにドメインを確認します。</p>



<p class="wp-block-paragraph">次の図では、URLを見るときの最低限のチェックポイントを整理しています。特に、<code>https://</code>かどうか、本当のドメインが何か、長いクエリに不要な情報が含まれていないかを見ます。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/url-safety.png" alt="URLをクリックする前にHTTPSとドメイン、長いクエリを確認する図"/><figcaption class="wp-element-caption">URLを見るときは、httpsかどうか、本当のドメインが何か、長いクエリを共有してよいかを確認します。</figcaption></figure>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>ログイン前に<code>https://</code>か確認する</li>



<li>見た目のリンク文字ではなく、実際のドメインを見る</li>



<li>似た文字を使った偽ドメインに注意する</li>



<li>長いURLをそのまま共有すると、検索条件やIDが含まれることがある</li>



<li>不審な短縮URLは、信頼できる相手からのものか確認する</li>
</ul>



<h2 class="wp-block-heading">URLとURIの違いは最初から必要？</h2>



<p class="wp-block-paragraph">URLを調べると、URIという言葉も出てきます。URIは、より広くリソースを識別するための名前です。URLは、そのリソースの場所を示すものとして説明されます。</p>



<p class="wp-block-paragraph">ただし、IT初心者が最初にWebページを見る範囲では、URLを理解できれば十分なことが多いです。URIとの細かい違いは、API設計や仕様書を読む段階で必要になったら深掘りすれば問題ありません。</p>



<h2 class="wp-block-heading">既存記事とあわせて読む順番</h2>



<p class="wp-block-paragraph">URLを理解したら、ドメイン、DNS、HTTP、クライアントサーバーの順に読むと、Webページが表示される流れがつながりやすくなります。</p>



<ul class="wp-block-list">
<li><a href="https://it-biz.online/it-skills/dns/">DNSとは何か？</a></li>



<li><a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a></li>



<li><a href="https://it-biz.online/it-skills/client-server/">クライアントサーバシステムとは？</a></li>



<li><a href="https://it-biz.online/it-skills/web_api/">APIとは？APIとWeb APIの違い</a></li>



<li><a href="https://it-biz.online/it-skills/network-abc/">ゼロから学ぶネットワーク入門</a></li>
</ul>



<h2 class="wp-block-heading">公式情報と関連リンク</h2>



<p class="wp-block-paragraph">仕様として確認する場合は、WHATWG URL StandardとMDNのURL用語集を参照します。WHATWG URL Standardは、ブラウザなどがURLをどのように扱うかを定義する標準です。</p>



<ul class="wp-block-list">
<li><a href="https://url.spec.whatwg.org/">WHATWG URL Standard</a></li>



<li><a href="https://developer.mozilla.org/ja/docs/Glossary/URL">MDN URL 用語集</a></li>



<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/URL">MDN URL API</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">URLは、Webページや画像などがインターネット上のどこにあるかを示す文字列です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>URLはWeb上の住所として理解できる</li>



<li>ドメインはサイト名、パスはサイト内の場所を表す</li>



<li>URLを開くとDNSやHTTPの仕組みにつながる</li>



<li><code>https://</code>かどうか、本当のドメインは何かを確認する</li>



<li>URIとの細かい違いは、最初は深追いしなくてよい</li>
</ul>



<p class="wp-block-paragraph">URLを読めるようになると、Webページの仕組み、HTTP、DNS、APIの理解が一気につながりやすくなります。まずは、URLを「通信の種類」「ドメイン」「ページの場所」に分けて見るところから始めましょう。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【IT用語解説】Server-Sent Events（SSE）とは？WebSocketとの違いを初心者向けに解説</title>
		<link>https://it-biz.online/it-skills/server-sent-events/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Mon, 25 May 2026 09:12:21 +0000</pubDate>
				<category><![CDATA[IT-Skills]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[ネットワーク]]></category>
		<category><![CDATA[用語解説]]></category>
		<category><![CDATA[通信プロトコル]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=11109</guid>

					<description><![CDATA[Server-Sent Events（SSE）とは何か、WebSocketやポーリングとの違い、EventSourceの使い方、注意点を初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Server-Sent Events（SSE）とは、<strong><span class="marker-under">サーバーからブラウザへ、更新情報を一方向に流し続けるためのWeb標準の仕組み</span></strong>です。</p>



<p class="wp-block-paragraph">チャットのように双方が頻繁に送信するならWebSocketが候補になります。一方で、ニュース、通知、処理状況、ログのように「サーバー側で起きた変化を画面へ届けたい」だけなら、SSEの方がシンプルに書けることがあります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>SSEは「ブラウザからも自由に送る通信」ではありません。サーバーからブラウザへ流れる通知レーンとして見ると理解しやすくなります。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、SSEの意味、EventSourceの使い方、WebSocketやポーリングとの違い、再接続、運用上の注意点を初心者向けに整理します。</p>



<h2 class="wp-block-heading">まず結論：SSEはサーバーからブラウザへの一方向通知</h2>



<p class="wp-block-paragraph">SSEの中心は、<strong><span class="marker-under">サーバーからクライアントへイベントを送ること</span></strong>です。クライアントとは、ここでは主にブラウザを指します。</p>



<p class="wp-block-paragraph">ブラウザは最初にSSE用のURLへ接続します。その後、サーバーは接続を閉じずに、新しい通知があるたびにデータを少しずつ送ります。ブラウザ側では、そのデータをイベントとして受け取って画面へ反映します。</p>



<p class="wp-block-paragraph">次の図では、SSEを「サーバーからブラウザへ流れる通知レーン」として見てください。WebSocketのような双方向の会話ではなく、サーバー発の更新を受け取る流れです。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/sse-concept.png" alt="Server-Sent Eventsがサーバーからブラウザへ一方向に通知を流す様子"/><figcaption class="wp-element-caption">SSEは、サーバー側で起きた変化をブラウザへ一方向に流す通知レーンとして理解できます。</figcaption></figure>



<h2 class="wp-block-heading">SSEが必要になる場面</h2>



<p class="wp-block-paragraph">SSEが役立つのは、ユーザーが何度も更新ボタンを押さなくても、サーバー側の新しい情報を画面へ届けたい場面です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>処理の進捗を画面に表示したい</li>



<li>管理画面に新着通知を出したい</li>



<li>サーバーログや監視結果を流したい</li>



<li>ニュースフィードやタイムラインを更新したい</li>



<li>在庫、注文、ジョブ状態などの変化を反映したい</li>
</ul>



<p class="wp-block-paragraph">反対に、ユーザーがメッセージを頻繁に送り、相手からも返ってくるような双方向のやり取りでは、WebSocketの方が自然なことがあります。</p>



<h2 class="wp-block-heading">REST API・ポーリング・WebSocketとの違い</h2>



<p class="wp-block-paragraph">SSEを理解するときに一番つまずきやすいのは、似た通信方式との違いです。ここでは、REST API、ポーリング、SSE、WebSocketを「何をしたいか」で分けます。</p>



<p class="wp-block-paragraph">次の図では、実装名ではなく、読者が実現したい動きから選ぶように見てください。サーバーから一方的に知らせたいならSSE、双方が送るならWebSocketが候補です。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/sse-decision.png" alt="REST API、ポーリング、SSE、WebSocketの選び方を用途別に示す判断図"/><figcaption class="wp-element-caption">SSEは、サーバーからブラウザへ更新を押し出したい場面で候補になります。</figcaption></figure>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>方式</th><th>通信の見方</th><th>向いている場面</th></tr></thead><tbody><tr><td>REST API</td><td>必要なときに問い合わせる</td><td>検索、登録、詳細取得、通常の更新</td></tr><tr><td>ポーリング</td><td>一定間隔で聞きに行く</td><td>簡単な定期更新、精度がそこまで重要でない通知</td></tr><tr><td>SSE</td><td>サーバーから一方向に流す</td><td>通知、進捗、ログ、ニュースフィード</td></tr><tr><td>WebSocket</td><td>双方から送る</td><td>チャット、共同編集、ゲーム、双方向操作</td></tr></tbody></table></div></figure>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/it-skills/rest-api/">REST APIとは何か？</a> / <a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a></p>



<h2 class="wp-block-heading">EventSourceで受け取る最小コード</h2>



<p class="wp-block-paragraph">ブラウザ側では、<code>EventSource</code>を使ってSSEの接続を開きます。MDNでも、SSEを扱うAPIは<code>EventSource</code>インターフェースに含まれると説明されています。</p>



<pre class="wp-block-code"><code>const source = new EventSource("/events");

source.onopen = () =&gt; {
  console.log("SSEに接続しました");
};

source.onmessage = (event) =&gt; {
  console.log("受信:", event.data);
};

source.onerror = () =&gt; {
  console.log("接続エラーまたは再接続中です");
};

// 画面を閉じる、購読をやめるなどのタイミングで呼ぶ
// source.close();</code></pre>



<p class="wp-block-paragraph">このコードでは、<code>new EventSource("/events")</code>でサーバーのイベント配信URLへ接続します。<code>onmessage</code>は、サーバーから通常のメッセージが届いたときに実行されます。</p>



<p class="wp-block-paragraph">ただし、このコードだけをブラウザに貼っても動きません。サーバー側がSSE用のレスポンスを返す必要があります。SSEは、ブラウザ側の<code>EventSource</code>と、サーバー側の<code>text/event-stream</code>形式のレスポンスがセットです。</p>



<p class="wp-block-paragraph">次の図では、コードの左側とサーバーから流れてくる文字列の右側を対応させて見てください。<code>EventSource</code>は受け口、<code>text/event-stream</code>は流れてくる形式です。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/sse-code-bridge.png" alt="EventSourceのコードとイベントストリーム形式の対応関係を示す図"/><figcaption class="wp-element-caption">EventSourceはブラウザ側の受け口で、サーバーはtext/event-stream形式でイベントを流します。</figcaption></figure>



<h2 class="wp-block-heading">サーバーが返すtext/event-streamの形</h2>



<p class="wp-block-paragraph">SSEでは、サーバーが<code>Content-Type: text/event-stream</code>のレスポンスを返します。MDNの例でも、サーバー側は<code>text/event-stream</code>で応答し、各通知をテキストのブロックとして送ると説明されています。</p>



<pre class="wp-block-code"><code>event: progress
data: {"percent": 80}
id: 42

</code></pre>



<p class="wp-block-paragraph">この例では、<code>event</code>がイベント名、<code>data</code>が実際に渡したいデータ、<code>id</code>がイベントの識別子です。最後の空行で、1件のイベントが終わります。</p>



<p class="wp-block-paragraph">イベント名を付けない場合は、ブラウザ側では通常の<code>message</code>イベントとして受け取れます。イベント名を付けた場合は、<code>addEventListener("progress", ...)</code>のように名前で分けて処理できます。</p>



<h2 class="wp-block-heading">再接続とLast-Event-IDの考え方</h2>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">SSEの便利な点の1つは、接続が切れたときにブラウザが再接続を試みることです。MDNでも、クライアントとサーバーの接続が閉じた場合、デフォルトでは接続が再開されると説明されています。</p>
</div></div>



<p class="wp-block-paragraph">ただし、自動再接続があるから何も考えなくてよい、という意味ではありません。途中で切れた場合に、同じ通知を二重に処理しないか、逆に通知が抜けないかを考える必要があります。</p>



<p class="wp-block-paragraph">次の図では、<code>id</code>を手がかりに、どこまで読んだかを復旧するイメージを見てください。実務では、イベントIDや状態管理を使って、再接続後の抜けや重複を減らします。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/sse-reconnect.png" alt="SSE接続が切断され、最後に受け取ったイベントIDから再接続する流れ"/><figcaption class="wp-element-caption">SSEは再接続しやすい仕組みですが、実務ではイベントIDで抜けや重複を扱う設計が必要です。</figcaption></figure>



<h2 class="wp-block-heading">SSEを使うときの注意点</h2>



<p class="wp-block-paragraph">SSEはWebSocketよりシンプルに見えますが、運用では長く開いたHTTP接続として扱う必要があります。特に、接続数、中継サーバー、切断復旧は先に見ておきたいポイントです。</p>



<p class="wp-block-paragraph">次の図では、実装後に詰まりやすい場所を3つに分けています。SSEは一方向の通信としては分かりやすい一方で、開いた接続を維持するための設計が必要です。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/sse-operations.png" alt="SSE運用時に注意する接続数、プロキシのバッファリング、切断復旧を示す図"/><figcaption class="wp-element-caption">SSEはシンプルですが、接続数、中継、切断復旧を運用設計に含める必要があります。</figcaption></figure>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>HTTP/1.1では同一ブラウザ・同一ドメインの接続数制限に注意する</li>



<li>HTTP/2を使える環境では、同時ストリーム数の扱いも確認する</li>



<li>プロキシやロードバランサーがレスポンスをバッファしないか確認する</li>



<li>切断時に再接続できるだけでなく、抜けや重複も考える</li>



<li>長時間接続を前提に、認証切れや権限変更時の扱いを決める</li>
</ul>



<p class="wp-block-paragraph">MDNでは、HTTP/2ではない場合、SSEのオープン接続数に制限があり、複数タブで痛みやすい点も注意されています。小さなデモでは問題にならなくても、実務ではユーザー数、タブ数、接続先ドメインを含めて考えましょう。</p>



<h2 class="wp-block-heading">SSEを選ぶ判断基準</h2>



<p class="wp-block-paragraph">SSEを選ぶかどうかは、通信の派手さではなく、必要な方向で決めます。サーバーからブラウザへ知らせるだけならSSEは有力です。ブラウザからも細かく送るならWebSocket、単発の取得や登録ならREST APIが自然です。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>確認すること</th><th>SSEが向きやすい条件</th></tr></thead><tbody><tr><td>通信方向</td><td>サーバーからブラウザへ送れればよい</td></tr><tr><td>更新頻度</td><td>変化が起きたときにだけ届けたい</td></tr><tr><td>実装規模</td><td>WebSocketほど複雑にしたくない</td></tr><tr><td>復旧</td><td>切断後の再接続を前提にしたい</td></tr><tr><td>注意点</td><td>接続数、バッファリング、認証を運用で見られる</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">初心者の段階では、SSEを「WebSocketの簡易版」と覚えるより、「サーバーから一方向に流す標準機能」と覚える方が正確です。役割が違うため、どちらが上位という関係ではありません。</p>



<h2 class="wp-block-heading">既存記事とあわせて読む順番</h2>



<p class="wp-block-paragraph">SSEを理解するには、HTTP、クライアントサーバー、API、REST APIの順で土台を確認すると読みやすくなります。</p>



<ul class="wp-block-list">
<li><a href="https://it-biz.online/it-skills/client-server/">クライアントサーバシステムとは？</a></li>



<li><a href="https://it-biz.online/it-skills/http/">HTTPとは？HTTPSとは？</a></li>



<li><a href="https://it-biz.online/it-skills/web_api/">APIとは？APIとWeb APIの違い</a></li>



<li><a href="https://it-biz.online/it-skills/rest-api/">REST APIとは何か？</a></li>



<li><a href="https://it-biz.online/it-skills/network-abc/">ゼロから学ぶネットワーク入門</a></li>
</ul>



<h2 class="wp-block-heading">公式情報と関連リンク</h2>



<p class="wp-block-paragraph">仕様やAPIを確認する場合は、WHATWG HTML StandardのServer-sent events、MDNのServer-sent events、EventSourceのページを参照します。</p>



<ul class="wp-block-list">
<li><a href="https://html.spec.whatwg.org/multipage/server-sent-events.html">WHATWG HTML Standard: Server-sent events</a></li>



<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events">MDN Server-sent events</a></li>



<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events">MDN Using server-sent events</a></li>



<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/EventSource">MDN EventSource</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">Server-Sent Events（SSE）は、サーバーからブラウザへ更新情報を一方向に流すためのWeb標準の仕組みです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>SSEはサーバーからブラウザへの一方向通知に向いている</li>



<li>ブラウザ側ではEventSourceを使って受け取る</li>



<li>サーバー側はtext/event-stream形式でイベントを流す</li>



<li>WebSocketは双方向、SSEは一方向と分けて考える</li>



<li>実務では接続数、再接続、バッファリング、認証を確認する</li>
</ul>



<p class="wp-block-paragraph">SSEを理解すると、リアルタイム更新をすべてWebSocketで考えずに済みます。サーバーから知らせるだけでよい場面では、SSEという選択肢を持っておくと設計がシンプルになります。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
