<?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>Web開発 | ビズドットオンライン</title>
	<atom:link href="https://it-biz.online/tag/web%E9%96%8B%E7%99%BA/feed/" rel="self" type="application/rss+xml" />
	<link>https://it-biz.online</link>
	<description></description>
	<lastBuildDate>Wed, 27 May 2026 07:30:08 +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>Web開発 | ビズドットオンライン</title>
	<link>https://it-biz.online</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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" 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>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まず結論：キャッシュは近くに置くコピー</a></li><li><a href="#toc2" tabindex="0">キャッシュで表示が速くなる流れ</a></li><li><a href="#toc3" tabindex="0">キャッシュがある場所</a></li><li><a href="#toc4" tabindex="0">キャッシュとCookie、履歴、ブックマークの違い</a></li><li><a href="#toc5" tabindex="0">キャッシュが原因で起きること</a></li><li><a href="#toc6" tabindex="0">Cache-Controlの基本</a></li><li><a href="#toc7" tabindex="0">利用者ができる対処</a></li><li><a href="#toc8" tabindex="0">開発者が注意するポイント</a></li><li><a href="#toc9" tabindex="0">既存記事とあわせて読む順番</a></li><li><a href="#toc10" tabindex="0">公式情報と関連リンク</a></li><li><a href="#toc11" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず結論：キャッシュは近くに置くコピー</span></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 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"><span id="toc2">キャッシュで表示が速くなる流れ</span></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 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"><span id="toc3">キャッシュがある場所</span></h2>



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



<figure class="wp-block-image aligncenter size-large"><img 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"><span id="toc4">キャッシュとCookie、履歴、ブックマークの違い</span></h2>



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



<figure class="wp-block-image aligncenter size-large"><img 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"><span id="toc5">キャッシュが原因で起きること</span></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"><span id="toc6">Cache-Controlの基本</span></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 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"><span id="toc7">利用者ができる対処</span></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"><span id="toc8">開発者が注意するポイント</span></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"><span id="toc9">既存記事とあわせて読む順番</span></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"><span id="toc10">公式情報と関連リンク</span></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"><span id="toc11">まとめ</span></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" 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>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Cookieはサイト別に残る小さな情報</a></li><li><a href="#toc2" tabindex="0">Cookieが使われる代表例</a></li><li><a href="#toc3" tabindex="0">Cookieが保存されて送られる流れ</a></li><li><a href="#toc4" tabindex="0">セッションCookieと永続Cookie</a></li><li><a href="#toc5" tabindex="0">Cookieとキャッシュ、Web Storageの違い</a></li><li><a href="#toc6" tabindex="0">Cookieを削除するとどうなるか</a></li><li><a href="#toc7" tabindex="0">サードパーティCookieとは</a></li><li><a href="#toc8" tabindex="0">安全に使うための確認ポイント</a></li><li><a href="#toc9" tabindex="0">開発者が最初に見るCookie属性</a></li><li><a href="#toc10" tabindex="0">既存記事とあわせて読む順番</a></li><li><a href="#toc11" tabindex="0">公式情報と関連リンク</a></li><li><a href="#toc12" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Cookieはサイト別に残る小さな情報</span></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 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 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"><span id="toc2">Cookieが使われる代表例</span></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 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"><span id="toc3">Cookieが保存されて送られる流れ</span></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 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 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"><span id="toc4">セッションCookieと永続Cookie</span></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"><span id="toc5">Cookieとキャッシュ、Web Storageの違い</span></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 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"><span id="toc6">Cookieを削除するとどうなるか</span></h2>



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



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



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



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



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



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



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



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



<figure class="wp-block-image aligncenter size-large"><img 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"><span id="toc9">開発者が最初に見るCookie属性</span></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"><span id="toc10">既存記事とあわせて読む順番</span></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"><span id="toc11">公式情報と関連リンク</span></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"><span id="toc12">まとめ</span></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 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 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>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">HTML：テーブル（表）の定義方法</a><ol><li><a href="#toc2" tabindex="0">HTML：&lt;table&gt;タグの使い方</a></li><li><a href="#toc3" tabindex="0">HTML：&lt;tr&gt;タグの使い方</a></li><li><a href="#toc4" tabindex="0">HTML：&lt;th&gt;タグの使い方</a></li><li><a href="#toc5" tabindex="0">HTML：&lt;td&gt;タグの使い方</a></li></ol></li><li><a href="#toc6" tabindex="0">現代のWeb環境におけるテーブル（表）の重要性</a><ol><li><a href="#toc7" tabindex="0">限定的な使用</a></li><li><a href="#toc8" tabindex="0">最適な使用</a></li></ol></li><li><a href="#toc9" tabindex="0">HTML：テーブルのデザイン</a><ol><li><a href="#toc10" tabindex="0">テーブルに罫線をつける方法（border属性）</a></li><li><a href="#toc11" tabindex="0">枠線の色を変える（bordercolor）</a></li><li><a href="#toc12" tabindex="0">背景色を変更する方法（bgcolor属性）</a></li><li><a href="#toc13" tabindex="0">セル間のスペースを指定（cellspacing属性）</a></li><li><a href="#toc14" tabindex="0">セル内のスペースを指定（cellpadding属性）</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">HTML：テーブル（表）の定義方法</span></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 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 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 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"><span id="toc2">HTML：&lt;table&gt;タグの使い方</span></h3>



<figure class="wp-block-image aligncenter size-large"><img 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 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"><span id="toc3">HTML：&lt;tr&gt;タグの使い方</span></h3>



<figure class="wp-block-image aligncenter size-large is-resized"><img 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 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"><span id="toc4">HTML：&lt;th&gt;タグの使い方</span></h3>



<figure class="wp-block-image aligncenter size-large"><img 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"><span id="toc5">HTML：&lt;td&gt;タグの使い方</span></h3>



<figure class="wp-block-image aligncenter size-large"><img 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"><span id="toc6">現代のWeb環境におけるテーブル（表）の重要性</span></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 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"><span id="toc7">限定的な使用</span></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"><span id="toc8">最適な使用</span></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"><span id="toc9">HTML：テーブルのデザイン</span></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 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"><span id="toc10">テーブルに罫線をつける方法（border属性）</span></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 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 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"><span id="toc11">枠線の色を変える（bordercolor）</span></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 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 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 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"><span id="toc12">背景色を変更する方法（bgcolor属性）</span></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 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 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 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"><span id="toc13">セル間のスペースを指定（cellspacing属性）</span></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 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 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"><span id="toc14">セル内のスペースを指定（cellpadding属性）</span></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 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" 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>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-5" checked><label class="toc-title" for="toc-checkbox-5">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ブラウザはWebを見るための窓口</a></li><li><a href="#toc2" tabindex="0">代表的なブラウザ</a></li><li><a href="#toc3" tabindex="0">ブラウザ画面でよく見る名前</a></li><li><a href="#toc4" tabindex="0">ブラウザでページが表示される流れ</a></li><li><a href="#toc5" tabindex="0">ブラウザは何を表示しているのか</a></li><li><a href="#toc6" tabindex="0">ブラウザ・検索エンジン・Webサイトの違い</a></li><li><a href="#toc7" tabindex="0">ブラウザでできること</a></li><li><a href="#toc8" tabindex="0">ブラウザを安全に使うポイント</a></li><li><a href="#toc9" tabindex="0">ブラウザとサーバーの関係</a></li><li><a href="#toc10" tabindex="0">既存記事とあわせて読む順番</a></li><li><a href="#toc11" tabindex="0">公式情報と関連リンク</a></li><li><a href="#toc12" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



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



<figure class="wp-block-image aligncenter size-large"><img 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 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"><span id="toc2">代表的なブラウザ</span></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"><span id="toc3">ブラウザ画面でよく見る名前</span></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"><span id="toc4">ブラウザでページが表示される流れ</span></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 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"><span id="toc5">ブラウザは何を表示しているのか</span></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 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"><span id="toc6">ブラウザ・検索エンジン・Webサイトの違い</span></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 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"><span id="toc7">ブラウザでできること</span></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"><span id="toc8">ブラウザを安全に使うポイント</span></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 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"><span id="toc9">ブラウザとサーバーの関係</span></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"><span id="toc10">既存記事とあわせて読む順番</span></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"><span id="toc11">公式情報と関連リンク</span></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"><span id="toc12">まとめ</span></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" 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>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まず結論：URLはWeb上の住所</a></li><li><a href="#toc2" tabindex="0">URLの基本形</a></li><li><a href="#toc3" tabindex="0">実例でURLを読んでみる</a></li><li><a href="#toc4" tabindex="0">URL・ドメイン・IPアドレスの違い</a></li><li><a href="#toc5" tabindex="0">URLを開くと何が起きるか</a></li><li><a href="#toc6" tabindex="0">httpとhttpsの違い</a></li><li><a href="#toc7" tabindex="0">URLを見るときの安全チェック</a></li><li><a href="#toc8" tabindex="0">URLとURIの違いは最初から必要？</a></li><li><a href="#toc9" tabindex="0">既存記事とあわせて読む順番</a></li><li><a href="#toc10" tabindex="0">公式情報と関連リンク</a></li><li><a href="#toc11" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず結論：URLはWeb上の住所</span></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 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 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"><span id="toc2">URLの基本形</span></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 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"><span id="toc3">実例でURLを読んでみる</span></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 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"><span id="toc4">URL・ドメイン・IPアドレスの違い</span></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 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"><span id="toc5">URLを開くと何が起きるか</span></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 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"><span id="toc6">httpとhttpsの違い</span></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"><span id="toc7">URLを見るときの安全チェック</span></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 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"><span id="toc8">URLとURIの違いは最初から必要？</span></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"><span id="toc9">既存記事とあわせて読む順番</span></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"><span id="toc10">公式情報と関連リンク</span></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"><span id="toc11">まとめ</span></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" 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>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-7" checked><label class="toc-title" for="toc-checkbox-7">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まず結論：SSEはサーバーからブラウザへの一方向通知</a></li><li><a href="#toc2" tabindex="0">SSEが必要になる場面</a></li><li><a href="#toc3" tabindex="0">REST API・ポーリング・WebSocketとの違い</a></li><li><a href="#toc4" tabindex="0">EventSourceで受け取る最小コード</a></li><li><a href="#toc5" tabindex="0">サーバーが返すtext/event-streamの形</a></li><li><a href="#toc6" tabindex="0">再接続とLast-Event-IDの考え方</a></li><li><a href="#toc7" tabindex="0">SSEを使うときの注意点</a></li><li><a href="#toc8" tabindex="0">SSEを選ぶ判断基準</a></li><li><a href="#toc9" tabindex="0">既存記事とあわせて読む順番</a></li><li><a href="#toc10" tabindex="0">公式情報と関連リンク</a></li><li><a href="#toc11" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず結論：SSEはサーバーからブラウザへの一方向通知</span></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 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"><span id="toc2">SSEが必要になる場面</span></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"><span id="toc3">REST API・ポーリング・WebSocketとの違い</span></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 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"><span id="toc4">EventSourceで受け取る最小コード</span></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 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"><span id="toc5">サーバーが返すtext/event-streamの形</span></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"><span id="toc6">再接続とLast-Event-IDの考え方</span></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 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 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"><span id="toc7">SSEを使うときの注意点</span></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 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"><span id="toc8">SSEを選ぶ判断基準</span></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"><span id="toc9">既存記事とあわせて読む順番</span></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"><span id="toc10">公式情報と関連リンク</span></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"><span id="toc11">まとめ</span></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>
		<item>
		<title>【IT用語解説】WebSocketとは？HTTPとの違いと使いどころを初心者向けに解説</title>
		<link>https://it-biz.online/it-skills/websocket/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Mon, 25 May 2026 07:14:10 +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=11100</guid>

					<description><![CDATA[WebSocketとは何か、HTTPやREST APIとの違い、使いどころ、JavaScriptでの最小コード、注意点を初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">WebSocketとは、<strong><span class="marker-under">ブラウザとサーバーが1本の接続を開いたまま、双方向にメッセージを送り合うための通信技術</span></strong>です。</p>



<p class="wp-block-paragraph">通常のHTTP通信では、ブラウザがリクエストを送り、サーバーがレスポンスを返す、という往復が基本です。一方でWebSocketでは、接続を開いた後、ブラウザからサーバーへも、サーバーからブラウザへも、必要なタイミングでデータを送ることが可能。</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>WebSocketは「ページを表示するための仕組み」ではなく、「開いた接続で会話を続ける仕組み」と考えると理解しやすくなります。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、WebSocketの意味、HTTPやREST APIとの違い、接続開始の流れ、JavaScriptでの最小コード、使いどころと注意点を初心者向けに整理します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まず結論：WebSocketは双方向のリアルタイム通信</a></li><li><a href="#toc2" tabindex="0">HTTPとの違い</a></li><li><a href="#toc3" tabindex="0">WebSocketの接続はどう始まるか</a></li><li><a href="#toc4" tabindex="0">JavaScriptで見るWebSocketの最小コード</a></li><li><a href="#toc5" tabindex="0">WebSocketを使う場面</a></li><li><a href="#toc6" tabindex="0">REST APIやポーリングとの使い分け</a></li><li><a href="#toc7" tabindex="0">Socket.IOとは何が違う？</a></li><li><a href="#toc8" tabindex="0">初心者が誤解しやすいポイント</a></li><li><a href="#toc9" tabindex="0">セキュリティと運用で見るポイント</a></li><li><a href="#toc10" tabindex="0">既存記事とあわせて読む順番</a></li><li><a href="#toc11" tabindex="0">公式情報と関連リンク</a></li><li><a href="#toc12" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず結論：WebSocketは双方向のリアルタイム通信</span></h2>



<p class="wp-block-paragraph">WebSocketの一番大事な特徴は、双方向通信です。双方向通信とは、クライアント側から送るだけでなく、サーバー側からもクライアントへデータを送れる通信のことです。</p>



<p class="wp-block-paragraph">ここでいうリアルタイム通信は、厳密に遅延がゼロという意味ではありません。ユーザーが待って更新ボタンを押さなくても、サーバー側の変化を短い遅延で画面へ届けられる、という意味で使われます。</p>



<p class="wp-block-paragraph">チャットで相手の発言がすぐ表示される、管理画面に新しい通知がすぐ出る、共同編集で他の人の変更が反映される。こうした「サーバー側で起きた変化を画面へすぐ届けたい」場面でWebSocketが候補になります。</p>



<p class="wp-block-paragraph">次の図で、WebSocketを「ブラウザとサーバーが1本の接続で会話を続ける仕組み」として見てください。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/websocket-concept.png" alt="ブラウザとサーバーが1本のWebSocket接続で双方向にメッセージを送受信する図"/><figcaption class="wp-element-caption">WebSocketは、ブラウザとサーバーが接続を開いたまま、双方からメッセージを送れる通信です。</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc2">HTTPとの違い</span></h2>



<p class="wp-block-paragraph">HTTPは、Webページの表示やAPI呼び出しで広く使われる通信の基本です。ブラウザが「このページをください」「このデータをください」と依頼し、サーバーが返事をする形で進みます。</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 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>の記事で要チェック！</p>
</div></div>



<p class="wp-block-paragraph">WebSocketも最初の接続開始ではHTTPの仕組みを利用します。しかし、接続が確立した後は、毎回HTTPリクエストを作るのではなく、開いた接続の上で小さなメッセージをやり取りします。</p>



<p class="wp-block-paragraph">次の比較図では、HTTPは「依頼して返事をもらう」、WebSocketは「開いた接続で会話を続ける」と読み分けてください。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/websocket-comparison.png" alt="HTTPのリクエストレスポンス型通信とWebSocketの双方向通信を比較する図"/><figcaption class="wp-element-caption">HTTPは用事ごとに依頼して返事を受け取り、WebSocketは接続を保ったまま双方から送信できます。</figcaption></figure>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>観点</th><th>HTTP</th><th>WebSocket</th></tr></thead><tbody><tr><td>通信の基本</td><td>リクエストとレスポンス</td><td>接続を開いたまま双方向通信</td></tr><tr><td>サーバーからの通知</td><td>基本はクライアントの依頼後に返す</td><td>サーバー側から送れる</td></tr><tr><td>向いている場面</td><td>ページ表示、通常のAPI、検索、登録</td><td>チャット、ライブ通知、共同編集</td></tr><tr><td>初心者向けの見方</td><td>用事ごとの問い合わせ</td><td>開いた回線で会話を続ける</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading"><span id="toc3">WebSocketの接続はどう始まるか</span></h2>



<p class="wp-block-paragraph">WebSocketは、いきなり独自の通信だけで始まるわけではありません。一般的なWebの文脈では、最初にHTTPのリクエストとして接続を始め、サーバーがWebSocketへ切り替える流れを受け入れると、その後WebSocketの通信へ進みます。</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 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">RFC 6455では、WebSocketプロトコルは接続開始のハンドシェイクと、その後のメッセージフレーミングから成り、TCP上で動くものとして説明されています。初心者の段階では、まず「最初に握手して、接続ができたらメッセージを送り合う」と押さえれば十分です。</p>
</div></div>



<p class="wp-block-paragraph">次の図では、WebSocket接続が始まる順番を確認してください。HTTPのUpgrade、切り替え成功、その後のメッセージ交換という3段階で見ます。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/websocket-handshake.png" alt="WebSocket接続がHTTP Upgradeの流れで始まり、その後メッセージフレームをやり取りする図"/><figcaption class="wp-element-caption">WebSocketは、接続開始の手続きが通った後、双方向のメッセージ通信へ進みます。</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc4">JavaScriptで見るWebSocketの最小コード</span></h2>



<p class="wp-block-paragraph">ブラウザのJavaScriptでは、<code>WebSocket</code>オブジェクトを作ってサーバーへ接続します。URLは、暗号化なしなら<code>ws://</code>、TLSで保護するなら<code>wss://</code>を使います。実務のWebサイトでは、基本的に<code>wss://</code>を選ぶと考えてください。</p>



<pre class="wp-block-code"><code>const socket = new WebSocket("wss://example.com/chat");

socket.addEventListener("open", () =&gt; {
  socket.send("こんにちは");
});

socket.addEventListener("message", (event) =&gt; {
  console.log("受信:", event.data);
});

socket.addEventListener("close", () =&gt; {
  console.log("接続が閉じました");
});

socket.addEventListener("error", (event) =&gt; {
  console.error("通信エラー", event);
});</code></pre>



<p class="wp-block-paragraph">このコードでは、<code>open</code>で接続開始、<code>send</code>で送信、<code>message</code>で受信、<code>close</code>で切断、<code>error</code>でエラーを扱っています。</p>



<p class="wp-block-paragraph">ただし、このコードだけをブラウザに貼っても、接続先のWebSocketサーバーがなければ動きません。WebSocketは、ブラウザ側のコードとサーバー側の受け口がセットで必要になる通信です。</p>



<p class="wp-block-paragraph">ここで重要なのは、<code>message</code>イベントです。WebSocketでは、サーバー側からメッセージが届いたタイミングで処理を実行できます。通常のREST APIのように、毎回こちらから取得しに行く発想とは少し違います。</p>



<h2 class="wp-block-heading"><span id="toc5">WebSocketを使う場面</span></h2>



<p class="wp-block-paragraph">WebSocketは、どんなWeb開発でも必ず使うものではありません。強みが出るのは、サーバー側で起きた変化を、クライアント側へすぐ届けたい場面です。</p>



<p class="wp-block-paragraph">次の図では、WebSocketが向いている代表的な場面を確認してください。見るポイントは「サーバー側の変化を待たずに画面へ届けたいか」です。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/websocket-usecase.png" alt="チャット、ライブ通知、共同編集などWebSocketが向く場面を示す図"/><figcaption class="wp-element-caption">WebSocketは、チャットやライブ通知のように、サーバーからの即時更新が重要な場面で使われます。</figcaption></figure>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>チャットや問い合わせ画面で、新しいメッセージをすぐ表示したい</li>



<li>注文、障害、監視、株価などのライブ通知を表示したい</li>



<li>共同編集ツールで、他の人の変更をリアルタイムに反映したい</li>



<li>ゲームやダッシュボードで、状態変化を継続的に受け取りたい</li>
</ul>



<p class="wp-block-paragraph">反対に、普通の記事ページを表示する、検索結果を返す、フォームの登録結果を返す、といった処理ではHTTPやREST APIで十分なことが多いです。</p>



<h2 class="wp-block-heading"><span id="toc6">REST APIやポーリングとの使い分け</span></h2>



<p class="wp-block-paragraph">REST APIは、クライアントが必要なタイミングでサーバーへ問い合わせ、結果を受け取る設計でよく使われます</p>



<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></p>



<p class="wp-block-paragraph">ポーリングは、一定間隔でサーバーへ問い合わせる方法です。たとえば5秒ごとに「新着はありますか？」と聞き続けます。実装は分かりやすい一方で、何も変化がないときも通信が発生します。</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>REST API</td><td>通常の取得、登録、更新、削除</td><td>サーバーから自発的には送れない</td></tr><tr><td>ポーリング</td><td>簡単な定期更新</td><td>無駄な問い合わせが増えやすい</td></tr><tr><td>WebSocket</td><td>リアルタイムな双方向通信</td><td>接続管理と再接続を考える必要がある</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">判断に迷ったら、まず「サーバー側の変化をすぐ画面に届ける必要があるか」を見ます。必要がなければREST APIで十分なことが多く、必要があるならWebSocketを検討します。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/it-skills/web_api/">APIとは？APIとWeb APIの違い</a></p>



<h2 class="wp-block-heading"><span id="toc7">Socket.IOとは何が違う？</span></h2>



<p class="wp-block-paragraph">WebSocketを調べていると、Socket.IOという名前もよく出てきます。ここで混同しやすいのは、WebSocketが通信プロトコルであるのに対し、<strong><span class="marker-under">Socket.IOはリアルタイム通信を扱いやすくするためのライブラリ</span></strong>だという点です。</p>



<p class="wp-block-paragraph">Socket.IOは、再接続、イベント名付きの送受信、環境に応じた通信方式の切り替えなどを助けます。一方で、ブラウザ標準の<code>WebSocket</code> APIとはそのまま互換ではありません。Socket.IOを使う場合は、サーバー側もSocket.IOに対応している必要があります。</p>



<p class="wp-block-paragraph">初心者の段階では、まずWebSocketを通信の考え方として理解し、その後で「実装を楽にする選択肢としてSocket.IOがある」と分けておくと混乱しにくくなります。</p>



<h2 class="wp-block-heading"><span id="toc8">初心者が誤解しやすいポイント</span></h2>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>誤解</th><th>正しい見方</th></tr></thead><tbody><tr><td>WebSocketはHTTPの上位版</td><td>役割が違う。HTTPは通常の取得や更新、WebSocketは継続的な双方向通信に向く</td></tr><tr><td>WebSocketなら必ず速い</td><td>用途次第。接続管理のコストもある</td></tr><tr><td>REST APIは不要になる</td><td>通常のCRUDや検索ではREST APIの方が自然なことが多い</td></tr><tr><td>接続したらずっと安心</td><td>切断、再接続、認証、権限、エラー処理が必要</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">WebSocketは便利ですが、アプリケーション設計のすべてを置き換えるものではありません。画面表示、通常のデータ取得、ログイン、履歴取得などはHTTPやREST APIで行い、リアルタイム更新部分だけWebSocketにする構成もよくあります。</p>



<h2 class="wp-block-heading"><span id="toc9">セキュリティと運用で見るポイント</span></h2>



<p class="wp-block-paragraph">WebSocketを実務で使うときは、接続できることだけでなく、誰が接続しているのか、どのメッセージを許可するのか、切断時にどう復旧するのかを考える必要があります。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li><code>wss://</code>を使い、通信をTLSで保護する</li>



<li>接続時やメッセージ処理時に認証・認可を確認する</li>



<li>予期しない切断に備えて再接続の設計をする</li>



<li>サーバー側で接続数、送信頻度、メッセージサイズを制御する</li>



<li>ブラウザやネットワーク環境による切断を前提にログを残す</li>
</ul>



<p class="wp-block-paragraph">特に重要なのは、WebSocket接続が長く続くことです。通常のHTTPリクエストよりも、接続数や切断時の処理が運用に影響しやすくなります。</p>



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



<p class="wp-block-paragraph">WebSocketを理解するには、HTTP、クライアントサーバー、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"><span id="toc11">公式情報と関連リンク</span></h2>



<p class="wp-block-paragraph">仕様を深く確認する場合は、IETFのRFC 6455とMDNのWebSocket APIリファレンスを参照します。初心者の段階では、RFCを最初からすべて読む必要はありません。この記事で全体像を押さえた後、実装時に必要なイベント、メソッド、接続開始の仕様を確認すると効率的です。</p>



<ul class="wp-block-list">
<li><a href="https://datatracker.ietf.org/doc/html/rfc6455">RFC 6455: The WebSocket Protocol</a></li>



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



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



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



<p class="wp-block-paragraph">WebSocketは、ブラウザとサーバーが1本の接続を開いたまま、双方向にメッセージを送り合うための通信技術です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>WebSocketはリアルタイムな双方向通信に向いている</li>



<li>HTTPは用事ごとのリクエストとレスポンス、WebSocketは接続を保った会話として見る</li>



<li>チャット、ライブ通知、共同編集などで使われる</li>



<li>REST APIを置き換えるものではなく、用途で使い分ける</li>



<li>実務では認証、切断、再接続、接続数の管理も重要</li>
</ul>



<p class="wp-block-paragraph">最初は「WebSocketは、サーバーからもブラウザへすぐ送れる通信」と覚えるだけで十分です。そのうえで、HTTPやREST APIと役割を分けて考えると、どの場面で使うべきか判断しやすくなります。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【TypeScript】typeとは？interfaceとの違いと使い分け</title>
		<link>https://it-biz.online/web-design/typescript/typescript-type-alias/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Thu, 07 May 2026 10:53:40 +0000</pubDate>
				<category><![CDATA[TypeScript]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10774</guid>

					<description><![CDATA[TypeScriptのtypeを、型に名前を付ける仕組みとして解説し、union型、object型、interfaceとの使い分けまで整理します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">TypeScriptの<code>type</code>とは、<strong><span class="marker-under">型に名前を付けて、読みやすく再利用できるようにする書き方</span></strong>です。</p>



<p class="wp-block-paragraph">長いオブジェクト型、複数の候補を持つunion型、関数の引数や戻り値の型を、そのまま毎回書くとコードが読みにくくなります。<code>type</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>typeはJavaScriptの値を作る命令ではありません。TypeScriptの型チェックで使う「型の名前」です。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、<code>type</code>の基本構文、union型で便利な理由、<code>interface</code>との違い、実務での使い分けを初心者向けに整理します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-9" checked><label class="toc-title" for="toc-checkbox-9">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まず結論：typeは型に名前を付けるための書き方</a></li><li><a href="#toc2" tabindex="0">typeが必要になる理由</a></li><li><a href="#toc3" tabindex="0">typeの読み方を図で見る</a></li><li><a href="#toc4" tabindex="0">union型に名前を付けると便利</a></li><li><a href="#toc5" tabindex="0">typeは実行時の値を作らない</a></li><li><a href="#toc6" tabindex="0">interfaceとの違い</a></li><li><a href="#toc7" tabindex="0">typeを使うとよい場面</a></li><li><a href="#toc8" tabindex="0">interfaceを使うとよい場面</a></li><li><a href="#toc9" tabindex="0">初心者がつまずきやすいポイント</a></li><li><a href="#toc10" tabindex="0">type名の付け方</a></li><li><a href="#toc11" tabindex="0">型を直すときの考え方</a></li><li><a href="#toc12" tabindex="0">チームで読むコードとしてのtype</a></li><li><a href="#toc13" tabindex="0">公式情報と関連して読みたい記事</a></li><li><a href="#toc14" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず結論：typeは型に名前を付けるための書き方</span></h2>



<p class="wp-block-paragraph">TypeScript公式ドキュメントでは、同じ型を何度も参照するために名前を付けられる仕組みとしてtype aliasが説明されています。まずは「型の別名を作る」と考えると分かりやすいです。</p>



<pre class="wp-block-code"><code>type User = {
  id: number;
  name: string;
};

function showUser(user: User) {
  console.log(user.name);
}</code></pre>



<p class="wp-block-paragraph">この例では、<code>{ id: number; name: string }</code>という型に<code>User</code>という名前を付けています。以後は、同じ型を<code>User</code>として読めます。</p>



<h2 class="wp-block-heading"><span id="toc2">typeが必要になる理由</span></h2>



<p class="wp-block-paragraph">型をその場に直接書くこともできます。しかし、同じ型が複数箇所に出てくると、コードの意味が追いにくくなります。</p>



<pre class="wp-block-code"><code>function send(user: { id: number; name: string; email?: string }) {
  // ...
}

function save(user: { id: number; name: string; email?: string }) {
  // ...
}</code></pre>



<p class="wp-block-paragraph">このような型は、<code>type</code>で名前を付けると、何を表すデータなのかが分かりやすくなります。</p>



<pre class="wp-block-code"><code>type User = {
  id: number;
  name: string;
  email?: string;
};

function send(user: User) {
  // ...
}

function save(user: User) {
  // ...
}</code></pre>



<p class="wp-block-paragraph"><strong><span class="marker-under">typeの価値は、短くすることではなく、型に意味のある名前を付けること</span></strong>です。</p>



<h2 class="wp-block-heading"><span id="toc3">typeの読み方を図で見る</span></h2>



<p class="wp-block-paragraph">次の図では、typeを「型を書く、名前を付ける、何度も使う」という流れで見てください。型の分類名より先に、再利用の流れを理解するのがポイントです。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/typescript-type-alias-flow-v2.png" alt="TypeScriptのtypeが型に名前を付けて変数や関数で再利用される流れを示す図"/><figcaption class="wp-element-caption">typeは長い型や繰り返し使う型に、意味のある名前を付けるための書き方です。</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc4">union型に名前を付けると便利</span></h2>



<p class="wp-block-paragraph"><code>type</code>は、オブジェクト型だけでなく、複数の候補を持つunion型にも名前を付けられます。</p>



<pre class="wp-block-code"><code>type Status = &quot;loading&quot; | &quot;success&quot; | &quot;error&quot;;

let currentStatus: Status = &quot;loading&quot;;</code></pre>



<p class="wp-block-paragraph">このように書くと、<code>Status</code>には指定した文字列だけを入れられます。画面の状態、APIの結果、処理ステータスなどを表すときに便利です。</p>



<h2 class="wp-block-heading"><span id="toc5">typeは実行時の値を作らない</span></h2>



<p class="wp-block-paragraph">初心者が混同しやすいのは、<code>type</code>がJavaScriptのオブジェクトや変数を作るわけではない点です。TypeScriptの型は、基本的にコンパイル時のチェックに使われます。</p>



<pre class="wp-block-code"><code>type User = {
  id: number;
  name: string;
};

const user: User = {
  id: 1,
  name: &quot;Sato&quot;,
};</code></pre>



<p class="wp-block-paragraph">実際に存在する値は<code>user</code>です。<code>User</code>は、その値がどんな形であるべきかを確認するための型名です。</p>



<h2 class="wp-block-heading"><span id="toc6">interfaceとの違い</span></h2>



<p class="wp-block-paragraph"><code>type</code>と<code>interface</code>は、どちらもオブジェクトの形に名前を付けられます。そのため、簡単なオブジェクト型だけを見ると似ています。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>比較</th><th>type</th><th>interface</th></tr></thead><tbody><tr><td>オブジェクト型に名前を付ける</td><td>できる</td><td>できる</td></tr><tr><td>union型に名前を付ける</td><td>得意</td><td>できない</td></tr><tr><td>既存の型を組み合わせる</td><td>intersectionなどで表現しやすい</td><td>extendsで表現しやすい</td></tr><tr><td>同じ名前の再宣言</td><td>基本的にできない</td><td>宣言マージがある</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">TypeScript公式ドキュメントでも、typeとinterfaceは多くの場面で似ており、必要な機能が出てくるまでは個人の好みで選べるという考え方が示されています。</p>



<h2 class="wp-block-heading"><span id="toc7">typeを使うとよい場面</span></h2>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>union型に名前を付けたい</li>
  <li>文字列リテラルの候補を管理したい</li>
  <li>関数の引数や戻り値の型を短く読みたい</li>
  <li>複数の型を組み合わせて別名を付けたい</li>
</ul>



<pre class="wp-block-code"><code>type ApiResult =
  | { ok: true; data: string[] }
  | { ok: false; message: string };</code></pre>



<p class="wp-block-paragraph">このような「成功か失敗かで形が変わるデータ」は、<code>type</code>で表すと読みやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc8">interfaceを使うとよい場面</span></h2>



<p class="wp-block-paragraph"><code>interface</code>は、オブジェクトの形を拡張していく場面でよく使われます。クラスの実装条件や、ライブラリの型定義でもよく見かけます。</p>



<pre class="wp-block-code"><code>interface User {
  id: number;
  name: string;
}

interface AdminUser extends User {
  role: &quot;admin&quot;;
}</code></pre>



<p class="wp-block-paragraph">初心者のうちは、<strong>union型や文字列候補ならtype、オブジェクトの形を拡張したいならinterface</strong>と考えると判断しやすいです。</p>



<h2 class="wp-block-heading"><span id="toc9">初心者がつまずきやすいポイント</span></h2>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>つまずき</th><th>理解のしかた</th></tr></thead><tbody><tr><td>typeを値だと思う</td><td>typeは型チェック用の名前</td></tr><tr><td>typeとinterfaceを完全に別物だと思う</td><td>オブジェクト型では似ている場面が多い</td></tr><tr><td>何でもtypeで巨大化する</td><td>複雑なら小さな型に分ける</td></tr><tr><td>型名が抽象的すぎる</td><td>User、Status、ApiResultのように意味で名付ける</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading"><span id="toc10">type名の付け方</span></h2>



<p class="wp-block-paragraph"><code>type</code>は型を短くするためだけに使うものではありません。型名を見たときに、そのデータが何を表すのか分かることが大切です。</p>



<p class="wp-block-paragraph">たとえば、<code>Data</code>や<code>Value</code>だけでは意味が広すぎます。ユーザー情報なら<code>User</code>、画面状態なら<code>PageStatus</code>、APIの返却結果なら<code>ApiResult</code>のように、役割が分かる名前を付けると読みやすくなります。</p>



<pre class="wp-block-code"><code>type PageStatus = &quot;idle&quot; | &quot;loading&quot; | &quot;success&quot; | &quot;error&quot;;

type UserSummary = {
  id: number;
  displayName: string;
};</code></pre>



<p class="wp-block-paragraph">名前を付けることで、関数の引数や戻り値を見ただけで、コードの意図を追いやすくなります。これは型安全性だけでなく、チームで読むコードの分かりやすさにも効きます。</p>



<h2 class="wp-block-heading"><span id="toc11">型を直すときの考え方</span></h2>



<p class="wp-block-paragraph">実務では、最初に作った型があとから変わることがあります。たとえば、APIの返却項目が増えたり、ステータスの種類が増えたりする場合です。</p>



<p class="wp-block-paragraph">このとき、同じ型を複数箇所へ直接書いていると、修正漏れが起きやすくなります。<code>type</code>で名前を付けておけば、変更する場所を集約しやすくなります。</p>



<p class="wp-block-paragraph">ただし、何でも1つの巨大な型にまとめると、逆に読みにくくなります。画面用、API用、保存用など、役割が違う型は分けて名前を付けるのが現実的です。</p>



<h2 class="wp-block-heading"><span id="toc12">チームで読むコードとしてのtype</span></h2>



<p class="wp-block-paragraph">TypeScriptの型は、自分のためだけでなく、あとから読む人への説明にもなります。関数の引数に<code>User</code>と書かれていれば、その関数がユーザー情報を受け取ることがすぐ分かります。</p>



<p class="wp-block-paragraph">逆に、毎回長いオブジェクト型を直接書いていると、同じ意味の型なのか、少し違う型なのかを判断しづらくなります。共有して使う型には名前を付け、画面の中だけで一度しか使わない型は無理に外へ出さない、という線引きが実務では扱いやすいです。</p>



<h2 class="wp-block-heading"><span id="toc13">公式情報と関連して読みたい記事</span></h2>



<ul class="wp-block-list">
  <li><a href="https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#type-aliases">TypeScript Handbook: Type Aliases</a></li>
  <li><a href="https://www.typescriptlang.org/docs/handbook/2/objects.html">TypeScript Handbook: Object Types</a></li>
  <li><a href="https://it-biz.online/web-design/typescript/typescript-interface/">TypeScriptのinterfaceとは？</a></li>
  <li><a href="https://it-biz.online/web-design/typescript/typescript-union-type/">TypeScriptのunion型とは？</a></li>
</ul>



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



<p class="wp-block-paragraph">TypeScriptの<code>type</code>は、型に名前を付けて読みやすく再利用するための書き方です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>長い型に意味のある名前を付けられる</li>
  <li>union型や文字列リテラル型と相性がよい</li>
  <li>実行時の値を作るものではない</li>
  <li>interfaceとは似ているが、得意な場面が少し違う</li>
</ul>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【JavaScript】Promiseとは？then・catch・finallyとasync/awaitの読み方</title>
		<link>https://it-biz.online/web-design/js/javascript-promise/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Thu, 07 May 2026 10:54:05 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10771</guid>

					<description><![CDATA[Promiseを「将来の結果を受け取る仕組み」として、then・catch・finally、fetch、async/awaitの読み方まで初心者向けに整理します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">JavaScriptのPromiseとは、<strong><span class="marker-under">すぐには終わらない処理の結果を、あとで受け取るための仕組み</span></strong>です。</p>



<p class="wp-block-paragraph">Promiseが分かると、<code>fetch</code>、<code>then</code>、<code>catch</code>、<code>async/await</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>Promiseは「結果そのもの」ではなく、「あとで結果を受け取る入口」です。最初はこの理解だけで十分です。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、Promiseの意味、3つの状態、<code>then</code>・<code>catch</code>・<code>finally</code>の使い方、fetchでつまずきやすいポイント、async/awaitとの関係を順番に解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まず結論：Promiseは将来の結果を表すオブジェクト</a></li><li><a href="#toc2" tabindex="0">Promiseが必要になる場面</a></li><li><a href="#toc3" tabindex="0">Promiseの流れを図で見る</a></li><li><a href="#toc4" tabindex="0">pending・fulfilled・rejectedの3状態</a></li><li><a href="#toc5" tabindex="0">then・catch・finallyの役割</a></li><li><a href="#toc6" tabindex="0">fetchでよくある誤解：HTTPエラーは必ずcatchに入るわけではない</a></li><li><a href="#toc7" tabindex="0">async/awaitはPromiseを読みやすくする書き方</a></li><li><a href="#toc8" tabindex="0">最初に覚える判断基準</a></li><li><a href="#toc9" tabindex="0">Promise.allは最初から暗記しなくてよい</a></li><li><a href="#toc10" tabindex="0">コードレビューで見るポイント</a></li><li><a href="#toc11" tabindex="0">公式情報と関連して読みたい記事</a></li><li><a href="#toc12" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず結論：Promiseは将来の結果を表すオブジェクト</span></h2>



<p class="wp-block-paragraph">Promiseは、非同期処理の最終的な成功または失敗を表すオブジェクトです。MDNでも、Promiseは非同期処理の完了または失敗と、その結果の値を表すものとして説明されています。</p>



<p class="wp-block-paragraph">ただし、初心者のうちは仕様文を暗記するより、次の読み方を先に覚える方が実用的です。</p>



<pre class="wp-block-code"><code>非同期処理を始める
  ↓
Promiseが返る
  ↓
成功したら then
失敗したら catch
最後に finally</code></pre>



<p class="wp-block-paragraph">この時点で大事なのは、Promiseが返ってきても、まだ中身の結果を直接持っているとは限らないことです。結果はあとから成功または失敗として確定します。</p>



<h2 class="wp-block-heading"><span id="toc2">Promiseが必要になる場面</span></h2>



<p class="wp-block-paragraph">JavaScriptでは、通信、タイマー、ファイル読み込みのように、すぐ終わらない処理がよく出てきます。特にWebアプリでは、APIからデータを取る<code>fetch</code>が代表例です。</p>



<p class="wp-block-paragraph">通信が終わるまで画面全体を止めると、ユーザーは操作できません。そのためJavaScriptでは、通信を待っている間も他の処理を進め、結果が返ってきたときに続きを実行します。</p>



<p class="wp-block-paragraph">この「あとで続きを実行する」ための約束を整理するのがPromiseです。</p>



<h2 class="wp-block-heading"><span id="toc3">Promiseの流れを図で見る</span></h2>



<p class="wp-block-paragraph">次の図では、Promiseを「非同期処理の結果を、成功・失敗・最後の処理へ分けて受け取る流れ」として見てください。細かい用語より先に、左から右への読み順を作るのがポイントです。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1100" height="520" src="https://it-biz.online/wp-content/uploads/2026/05/javascript-promise-flow-v2-1.png" alt="JavaScriptのPromiseが非同期処理の結果をthen、catch、finallyへ渡す流れを示す図" class="wp-image-10802" srcset="https://it-biz.online/wp-content/uploads/2026/05/javascript-promise-flow-v2-1.png 1100w, https://it-biz.online/wp-content/uploads/2026/05/javascript-promise-flow-v2-1-500x236.png 500w, https://it-biz.online/wp-content/uploads/2026/05/javascript-promise-flow-v2-1-800x378.png 800w, https://it-biz.online/wp-content/uploads/2026/05/javascript-promise-flow-v2-1-300x142.png 300w, https://it-biz.online/wp-content/uploads/2026/05/javascript-promise-flow-v2-1-768x363.png 768w" sizes="(max-width: 1100px) 100vw, 1100px" /><figcaption class="wp-element-caption">Promiseは値そのものではなく、非同期処理の結果を後から受け取るための入口として見ると理解しやすくなります。</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc4">pending・fulfilled・rejectedの3状態</span></h2>



<p class="wp-block-paragraph">Promiseには状態があります。まずは次の3つだけ押さえれば十分です。</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>pending</td><td>まだ結果が出ていない</td><td>処理中</td></tr><tr><td>fulfilled</td><td>成功して結果が得られた</td><td>成功</td></tr><tr><td>rejected</td><td>失敗して理由が返った</td><td>失敗</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">Promiseは最初に<code>pending</code>になり、その後、成功すれば<code>fulfilled</code>、失敗すれば<code>rejected</code>になります。成功と失敗のどちらかに決まった状態を、実務では「settled」と表現することもあります。</p>



<h2 class="wp-block-heading"><span id="toc5">then・catch・finallyの役割</span></h2>



<p class="wp-block-paragraph">Promiseでよく使うのは、<code>then</code>、<code>catch</code>、<code>finally</code>です。</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><code>then()</code></td><td>成功時の結果を受け取る</td><td>取得したデータを画面に出す</td></tr><tr><td><code>catch()</code></td><td>失敗時の理由を受け取る</td><td>エラー表示やログ出力をする</td></tr><tr><td><code>finally()</code></td><td>成功・失敗に関係なく最後に動く</td><td>ローディング表示を消す</td></tr></tbody></table></div></figure>



<pre class="wp-block-code"><code>fetch("/api/users")
  .then((response) =&gt; response.json())
  .then((users) =&gt; {
    console.log(users);
  })
  .catch((error) =&gt; {
    console.error("取得に失敗しました", error);
  })
  .finally(() =&gt; {
    console.log("読み込み処理を終了します");
  });</code></pre>



<p class="wp-block-paragraph">ポイントは、<strong><span class="marker-under">前のthenで返した値が、次のthenへ渡される</span></strong>ことです。<code>response.json()</code>を返すから、次の<code>then</code>で変換後のデータを受け取れます。</p>



<h2 class="wp-block-heading"><span id="toc6">fetchでよくある誤解：HTTPエラーは必ずcatchに入るわけではない</span></h2>



<p class="wp-block-paragraph">Promiseをfetchで使うとき、初心者がつまずきやすいのがエラー処理です。ネットワーク自体に失敗した場合は<code>catch</code>に入りますが、HTTPステータスが404や500の場合は、必ずしも自動で<code>catch</code>に入るとは限りません。</p>



<p class="wp-block-paragraph">fetchの結果では、<code>response.ok</code>を見て、HTTPとして成功扱いできるかを確認するのが安全です。</p>



<pre class="wp-block-code"><code>fetch("/api/users")
  .then((response) =&gt; {
    if (!response.ok) {
      throw new Error("HTTPエラー: " + response.status);
    }
    return response.json();
  })
  .then((users) =&gt; {
    console.log(users);
  })
  .catch((error) =&gt; {
    console.error(error);
  });</code></pre>



<p class="wp-block-paragraph">このように書くと、通信そのものの失敗だけでなく、サーバーがエラーを返した場合も同じ<code>catch</code>で扱いやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc7">async/awaitはPromiseを読みやすくする書き方</span></h2>



<p class="wp-block-paragraph"><code>async/await</code>は、Promiseと別物ではありません。Promiseを、上から順に読む形で書きやすくするための構文です。</p>



<pre class="wp-block-code"><code>async function loadUsers() {
  try {
    const response = await fetch("/api/users");

    if (!response.ok) {
      throw new Error("HTTPエラー: " + response.status);
    }

    const users = await response.json();
    console.log(users);
  } catch (error) {
    console.error(error);
  }
}</code></pre>



<p class="wp-block-paragraph"><code>await</code>はPromiseの完了を待ち、その結果を取り出します。つまり、async/awaitを使っていても、裏側ではPromiseを扱っています。</p>



<h2 class="wp-block-heading"><span id="toc8">最初に覚える判断基準</span></h2>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li><code>fetch()</code>の戻り値はPromiseとして読む</li>



<li><code>then</code>では次へ渡したい値を<code>return</code>する</li>



<li>HTTPステータスの失敗は<code>response.ok</code>で確認する</li>



<li>async/awaitはPromiseを消すものではなく、読みやすくする書き方と考える</li>
</ul>



<h2 class="wp-block-heading"><span id="toc9">Promise.allは最初から暗記しなくてよい</span></h2>



<p class="wp-block-paragraph">Promiseを調べると、<code>Promise.all</code>、<code>Promise.race</code>、<code>Promise.allSettled</code>なども出てきます。これらは複数のPromiseをまとめて扱うための機能です。</p>



<p class="wp-block-paragraph">ただし、初学者が最初に全部を覚える必要はありません。まずは、1つのPromiseが成功・失敗へ分かれる流れを読めることが先です。複数の通信を同時に待つ必要が出てきたときに、<code>Promise.all</code>を学ぶ順番で問題ありません。</p>



<p class="wp-block-paragraph">たとえば、ユーザー情報と注文履歴を同時に取得したい場合は、複数のPromiseをまとめて待つ考え方が必要になります。一方、単に1つのAPIからデータを取るだけなら、<code>then</code>・<code>catch</code>・<code>finally</code>とasync/awaitを理解していれば十分です。</p>



<h2 class="wp-block-heading"><span id="toc10">コードレビューで見るポイント</span></h2>



<p class="wp-block-paragraph">Promiseを使ったコードを読むときは、まず「どこでPromiseが作られ、どこで結果を取り出しているか」を見ます。次に、失敗時の処理があるか、ローディング表示などの後片付けが漏れていないかを確認します。</p>



<p class="wp-block-paragraph">特にWeb画面では、通信中の表示、成功時の表示、失敗時の表示がそろっているかが重要です。Promiseの文法だけでなく、ユーザーに何が見えるかまで考えると、実務のコードを読みやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc11">公式情報と関連して読みたい記事</span></h2>



<ul class="wp-block-list">
<li><a href="https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise">MDN: Promise</a></li>



<li><a href="https://developer.mozilla.org/ja/docs/Web/API/Fetch_API/Using_Fetch">MDN: Fetch API の使用</a></li>



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



<li><a href="https://it-biz.online/web-design/async-await/">async/awaitとは？Promiseとの違い</a></li>
</ul>



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



<p class="wp-block-paragraph">Promiseは、非同期処理の結果をあとで受け取るための仕組みです。最初は「将来の結果を表すオブジェクト」と考えれば十分です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>成功時は<code>then</code></li>



<li>失敗時は<code>catch</code></li>



<li>最後の処理は<code>finally</code></li>



<li>fetchでは<code>response.ok</code>も確認する</li>



<li>async/awaitはPromiseを読みやすくする構文</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>JSPファイル超入門 – 0 → 現場で“JSPの人”になるまで</title>
		<link>https://it-biz.online/web-design/html/java-server-pages/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Tue, 06 May 2025 04:00:00 +0000</pubDate>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10372</guid>

					<description><![CDATA[JSP（Java Server Pages）は HTMLにJavaコードを差し込み、動的ページを生成する仕組み です。 まず最初にお伝えしたいのは、JSPは決して難しいものではありません。むしろ、「ちょっと動きのあるWe [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">JSP（Java Server Pages）は <strong><a href="https://it-biz.online/web-design/html-basic/">HTML</a>にJavaコードを差し込み、動的ページを生成する仕組み</strong> です。</p>



<p class="wp-block-paragraph">まず最初にお伝えしたいのは、<strong>JSPは決して難しいものではありません。</strong>むしろ、「ちょっと動きのあるWebページを、できるだけ簡単に作りたい！」という人のために生まれたものなのです。近年では他の技術に取って代わられた印象が否めないJSPですが、昔からある巨大なレガシーシステムなどでは現役で、システムの更改案件などではよく目にすることがあります。</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 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">このページでは「JSPってそもそも何？」という一番大事な部分から、初心者向けに順を追って１からわかりやすく専門用語を避けて解説します。</p>
</div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">JSPとは何か？</a><ol><li><a href="#toc2" tabindex="0">【前提１】静的なページと動的なページ</a></li><li><a href="#toc3" tabindex="0">JSPとはどのような技術か</a></li><li><a href="#toc4" tabindex="0">JSPの動作のしくみ</a></li></ol></li><li><a href="#toc5" tabindex="0">JSPを動かすための準備</a><ol><li><a href="#toc6" tabindex="0">JSPの動作に必要なもの</a></li></ol></li><li><a href="#toc7" tabindex="0">最初のJSPファイルを作ってみよう</a><ol><li><a href="#toc8" tabindex="0">JSPファイルとはどんなファイルか</a></li><li><a href="#toc9" tabindex="0">ブラウザで表示してみる</a></li></ol></li><li><a href="#toc10" tabindex="0">JSPの基本構文</a><ol><li><a href="#toc11" tabindex="0">JSPの構成要素</a></li><li><a href="#toc12" tabindex="0">ディレクティブ</a></li><li><a href="#toc13" tabindex="0">スクリプトレット</a></li><li><a href="#toc14" tabindex="0">式（Expression）</a></li><li><a href="#toc15" tabindex="0">宣言</a></li><li><a href="#toc16" tabindex="0">コメントの書き方</a></li><li><a href="#toc17" tabindex="0">スクリプトレットはなるべく使わない</a></li></ol></li><li><a href="#toc18" tabindex="0">ELとJSTLでスクリプトレットのないJSPへ</a><ol><li><a href="#toc19" tabindex="0">EL（式言語）とは</a></li><li><a href="#toc20" tabindex="0">JSTL（JSP標準タグライブラリ）とは</a></li><li><a href="#toc21" tabindex="0">JSPをすっきり保つために</a></li></ol></li><li><a href="#toc22" tabindex="0">フォームからデータを受け取る</a><ol><li><a href="#toc23" tabindex="0">フォーム送信の流れ</a></li><li><a href="#toc24" tabindex="0">フォームを作るJSP（entry.jsp）</a></li><li><a href="#toc25" tabindex="0">データを受け取るJSP（result.jsp）</a></li><li><a href="#toc26" tabindex="0">ELを使って書き換える</a></li></ol></li><li><a href="#toc27" tabindex="0">セッションとCookieでデータを保持する</a><ol><li><a href="#toc28" tabindex="0">セッションの基本操作</a></li><li><a href="#toc29" tabindex="0">Cookieとは</a></li><li><a href="#toc30" tabindex="0">Cookieの基本操作</a></li><li><a href="#toc31" tabindex="0">セッションとCookieの使い分け</a></li></ol></li><li><a href="#toc32" tabindex="0">JSPで簡単なアンケートアプリを作ろう</a><ol><li><a href="#toc33" tabindex="0">アプリの構成と目的</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">JSPとは何か？</span></h2>



<p class="wp-block-paragraph"><strong>JSP（Java Server Pages）</strong>は、Javaを使ってWebページを動的に生成するための技術で、通常のHTMLファイルにJavaのコードを埋め込むことで、アクセスするたびに内容が変化するページを作成することを可能にします。</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 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">そのため、JSPはJavaをベースとしていますが、HTMLの知識があれば、基本的な使い方は十分に理解することができます。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc2">【前提１】静的なページと動的なページ</span></h3>



<p class="wp-block-paragraph">Webページには、大きく分けて2種類あります。<br>1つは「<strong>静的なページ</strong>」、もう1つは「<strong>動的なページ</strong>」です。</p>


<a href="https://it-biz.online/it-skills/static-dynamic/" title="静的コンテンツ/動的コンテンツの違いを１分で解説【初心者向け】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-320x180.png 320w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-500x282.png 500w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-800x451.png 800w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-300x169.png 300w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-768x433.png 768w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-240x135.png 240w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-640x360.png 640w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic.png 1480w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">静的コンテンツ/動的コンテンツの違いを１分で解説【初心者向け】</div><div class="blogcard-snippet internal-blogcard-snippet">【初心者向け】「動的」「静的」という言葉の意味とその違いを端的に解説します。本で学習したがイマイチ理解できない、、、結局一言でいうと違いは何？という疑問をお持ちの方に具体例を用いながら分かりやすく解説します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://it-biz.online" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">it-biz.online</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.04.26</div></div></div></div></a>


<p class="wp-block-paragraph">静的なページとは、内容があらかじめ決まっていて、アクセスするたびに同じ内容が表示されるページです。たとえば、自己紹介だけが書かれた会社のホームページや、お知らせ一覧だけが載っているページなどが該当します。</p>



<p class="wp-block-paragraph">一方、動的なページは、アクセスした時点の情報や、閲覧しているユーザーの状態に応じて内容が変わります。たとえば、ショッピングサイトで商品が表示されたり、ログイン中のユーザー名が画面に表示されたりするページがそうです。</p>



<p class="wp-block-paragraph"><strong><span class="marker-under">静的なページはHTMLだけで作成できますが、動的なページを作るには、プログラムによってページの内容を生成する仕組みが必要</span></strong>です。JSPは、そのような仕組みの一つです。</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 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">もちろんJSP以外にも同じようなことを実現することが可能で、現代ではほとんどJSP以外が主役です。なのですが、レガシーシステムでは今でも現役で動いていることが多いので「まあ知っておいて損はないかな」というのがJSPの位置づけです。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc3">JSPとはどのような技術か</span></h3>



<p class="wp-block-paragraph">JSPは、<strong>JavaのコードをHTMLに埋め込むことで</strong>、Webサーバー上で動的にHTMLを生成する技術です。拡張子が <code><span class="blue">.jsp</span></code> であるファイルを使ってページを作成します。</p>



<p class="wp-block-paragraph">JSPファイルは、<a href="https://it-biz.online/it-skills/web-server/">Webサーバー</a>（通常は<strong>Tomcat</strong>）に配置され、ユーザーがアクセスすると、サーバー側でJavaのコードが実行されます。その結果として生成されたHTMLが、ブラウザに送信され、画面に表示されます。</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 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">つまり、JSPは「動的にHTMLを生成する仕組み」であり、「HTMLの中にJavaの処理を一部書き足せる形式のファイル」と言えます。</p>
</div></div>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">JSPは、以下のような場面でよく利用されます。</p>



<ul class="wp-block-list">
<li>ユーザーの入力に応じて表示内容を変えたいとき</li>



<li>データベースから取得した情報を一覧表示したいとき</li>



<li>フォーム送信結果を別の画面に反映したいとき</li>



<li>ログインしたユーザーごとにページの表示内容を切り替えたいとき</li>
</ul>



<p class="wp-block-paragraph">このような場合、HTMLだけでは対応が難しくなりますが、JSPを使えば、これらの処理をサーバー側で実現できます。</p>
</div>



<h3 class="wp-block-heading"><span id="toc4">JSPの動作のしくみ</span></h3>



<p class="wp-block-paragraph">JSPファイルは、ユーザーがアクセスしたときに、サーバー側で一度「Javaのクラス（Servlet）」に変換されます。変換されたクラスはコンパイルされ、Javaプログラムとして実行されます。このとき、JSPファイルに書かれたHTMLの部分はそのままHTMLとして出力され、Javaのコード部分は処理されて結果が埋め込まれます。最終的に生成されたHTMLがブラウザに送信され、ユーザーに表示されます。</p>



<p class="wp-block-paragraph">このしくみによって、JSPは1枚のファイルで「HTMLの見た目」と「動的な処理」を両立させることができます。</p>



<p class="has-text-align-center wp-block-paragraph"><strong>JSPの動き方の流れ</strong></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-1em has-bottom-margin">ユーザーが <code>.jsp</code> ファイルをリクエストする（例：<code>hello.jsp</code>）</li>



<li class="is-style-bottom-margin-1em has-bottom-margin">Tomcat がその <code>.jsp</code> を読んで、中の Java を実行</li>



<li class="is-style-bottom-margin-1em has-bottom-margin">結果として HTML を作り出し、ブラウザに返す</li>



<li>ブラウザには、あたかも普通のHTMLのように見える</li>
</ol>



<p class="wp-block-paragraph">この一連の流れによって、「動きのあるページ」がリクエスト元に返却されることになります。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center wp-block-paragraph"><span class="badge-green">まとめ１</span>　<strong>JSPファイルとは？</strong></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">HTMLだけでは静的なページしか作れない。<br>→JSPを使うことで動的なページが作成できます。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">JSPは、JavaのコードをHTMLに埋め込むことで、アクセスごとに変化するページを生成。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">JSPは、Webサーバー上で実行され、結果がHTMLとしてブラウザに表示される。</li>
</ol>
</div>



<h2 class="wp-block-heading"><span id="toc5">JSPを動かすための準備</span></h2>



<p class="wp-block-paragraph">JSPファイルは、<strong>通常のHTMLファイルと違い、単独では動作しません。</strong>JSPはサーバー側でJavaのコードを実行する仕組みのため、その処理を受け持つ「Webサーバー」や「Javaの開発環境」が必要です。</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 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">この章では、JSPを動かすために必要なソフトウェアや環境を、1つずつ順を追って準備していきます。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc6">JSPの動作に必要なもの</span></h3>



<p class="wp-block-paragraph">JSPを動作させるには、次の3つが必要です。<strong>ここでは、それってそもそも何？みたいな説明＋実際にあなたのPCにインストールする手順をメモ程度に記載しておきますので、この辺の知識がすでにあるよ！という方は読み飛ばしてください。</strong></p>



<figure class="wp-block-table aligncenter"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>項目</th><th>説明</th></tr></thead><tbody><tr><td>JDK（Java Development Kit）</td><td>Javaのプログラムを実行するために必要なソフトウェアです。JSPはJavaで動作するため、必ず必要になります。</td></tr><tr><td>Tomcat（トムキャット）</td><td>JSPファイルを処理し、Javaのコードを実行してHTMLに変換するWebサーバーです。</td></tr><tr><td>エディタ（テキスト編集ソフト）</td><td>JSPファイルを作成するための道具です。Visual Studio Code（VS Code）やIntelliJ IDEAなどが便利です。</td></tr></tbody></table></div></figure>



<h4 class="wp-block-heading">JDKのインストール</h4>



<p class="wp-block-paragraph">まず、Javaの開発環境であるJDKをインストールします。JDKがインストールされていないと、JSPも動作しません。</p>


<a href="https://it-biz.online/java/java-setup/" title="Javaの開発環境構築の３ステップ解説（JDK/JRE/JVMの仕組みを１から解説）" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://it-biz.online/wp-content/uploads/2024/05/image-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://it-biz.online/wp-content/uploads/2024/05/image-320x180.png 320w, https://it-biz.online/wp-content/uploads/2024/05/image-240x135.png 240w, https://it-biz.online/wp-content/uploads/2024/05/image-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Javaの開発環境構築の３ステップ解説（JDK/JRE/JVMの仕組みを１から解説）</div><div class="blogcard-snippet internal-blogcard-snippet">【超・初心者向け】Javaの開発環境を初心者向けに簡単に設定する方法をわかりやすく解説します。JDKのインストール、IDEの選択、開発のスタートまで、スムーズにJavaプログラミングを始める方法をご説明します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://it-biz.online" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">it-biz.online</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.04.16</div></div></div></div></a>


<p class="has-text-align-center wp-block-paragraph"><span class="inline-button-green">手順</span></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">Oracleの公式サイトまたはOpenJDKのサイトから、JDKをダウンロード。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">お使いのOSに合ったインストーラを選び、画面の指示に従ってインストール。</li>



<li>インストール後、コマンドプロンプト（またはターミナル）を開き、↓のコマンドを入力。</li>
</ol>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">java -version
</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 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>



<h4 class="wp-block-heading">Tomcatのインストール</h4>



<p class="wp-block-paragraph">JSPファイルを処理するために、Tomcatをインストールします。<strong><span class="marker-under">TomcatはJavaで動作するWebサーバー</span></strong>で、JSPの実行に適した軽量なサーバーです。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="inline-button-green">手順</span></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">Apache Tomcat の公式サイトにアクセス。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">zip ファイル（Windows の場合）または tar.gz ファイル（Mac/Linux の場合）をダウンロード。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">ダウンロードしたファイルを任意の場所に展開（解凍）。<br>→<code>C:\tomcat</code> や <code>~/tomcat</code> などが一般的ですが、どこでもOK。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin"><code>bin</code>フォルダにある <code>startup.bat</code>（Windows）または <code>startup.sh</code>（Mac/Linux）を実行。</li>



<li>ブラウザを開き、次のURLにアクセスします：</li>
</ol>




<a rel="noopener" href="http://localhost:8080/" title="&#28961;&#21177;&#12394;URL&#12391;&#12377;" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/http%3A%2F%2Flocalhost%3A8080%2F?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">&#28961;&#21177;&#12394;URL&#12391;&#12377;</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=http://localhost:8080/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">localhost</div></div></div></div></a>
</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 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">Tomcatのトップページが表示されれば、インストールは成功です。</p>
</div></div>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">注意：すでに他のアプリケーションがポート8080を使っている場合、Tomcatが起動できないことがあります。その場合は、設定ファイル（server.xml）でポート番号を変更してください。</p>
</div>



<h4 class="wp-block-heading">JSP用のフォルダを作る</h4>



<p class="wp-block-paragraph">Tomcatでは、<code><span class="bold-blue">webapps</span></code> フォルダの中にあるプロジェクトが自動的に読み込まれます。自分でJSPファイルを作って表示するには、ここに新しいフォルダを作成します。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="inline-button-green">手順</span></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">Tomcatフォルダ内の <code>webapps</code> に移動。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">新しくフォルダを作成し、たとえば <code>jsp-demo</code> という名前をつける。</li>



<li><code>jsp-demo</code> フォルダの中に、最初のJSPファイルを作成します。ファイル名は <code>hello.jsp</code> など。</li>
</ol>



<h4 class="wp-block-heading">エディタの準備</h4>



<p class="wp-block-paragraph">JSPファイルは、普通のテキストファイルとして作成できますが、プログラミングに適したエディタを使うと効率が上がります。以下のいずれかのエディタを使用するのが一般的です。</p>



<ul class="wp-block-list">
<li>Visual Studio Code（無料で軽量、拡張機能が豊富）</li>



<li>IntelliJ IDEA（Javaに特化した統合開発環境）</li>



<li>Eclipse（Java開発で定番のIDE）</li>
</ul>



<p class="wp-block-paragraph">初心者の方には、<strong>Visual Studio Codeが扱いやすくおすすめ</strong>です。必要に応じて「Java Extension Pack」などを追加すると、補完機能や構文チェックも利用できます。</p>



<h2 class="wp-block-heading"><span id="toc7">最初のJSPファイルを作ってみよう</span></h2>



<p class="wp-block-paragraph">前の章で、JSPを動かすための準備が整いました。この章では、実際にJSPファイルを1つ作成し、それをブラウザで表示するところまで進めます。</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 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">ここでは、「JSPとはどういうものか」を実際に体験しながら、基本的な書き方や仕組みを理解していきます。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc8">JSPファイルとはどんなファイルか</span></h3>



<p class="wp-block-paragraph">JSPファイルは、基本的にはHTMLっぽく見えるコードで、この中の必要な部分にJavaのコードを差し込むことで、表示内容を動的に変えることができるようにしています。たとえば、「現在の日時を表示する」などの処理が可能になります。</p>



<p class="wp-block-paragraph">JSPファイルの拡張子は <code><span class="bold-blue">.jsp</span></code> です。ファイルの中には、通常のHTMLタグと、Javaのコードが組み合わさって記述されます。</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;%@ page contentType="text/html; charset=UTF-8" %>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>Hello JSP&lt;/title>
&lt;/head>
&lt;body>
  &lt;h1>こんにちは、JSPの世界へようこそ！&lt;/h1>
  &lt;p>現在の時刻は：&lt;%= java.time.LocalDateTime.now() %>&lt;/p>
&lt;/body>
&lt;/html>
</pre>



<p class="wp-block-paragraph">上記のJSPファイルの中では、JavaのコードとHTMLが組み合わさっています。それぞれの部分について説明します。</p>



<ul class="wp-block-list is-style-icon-list-circle has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin"><code>&lt;%@ page contentType="text/html; charset=UTF-8" %&gt;</code><br>→ この行は「ページ全体の設定」です。文字コードをUTF-8にすることで、文字化けを防ぎます。</li>



<li><code>&lt;%= java.time.LocalDateTime.now() %&gt;</code><br>→ この部分がJSPの特徴です。「現在の時刻を表示する」Javaのコードが入っています。<br><code>&lt;%=</code> と <code>%&gt;</code> で囲まれた中はJavaの「式」として実行され、結果がそのままHTMLに差し込まれます。</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 not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img 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>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">Tomcatの <code>webapps</code> フォルダの中にある、前章で作成した <code>jsp-demo</code> フォルダに移動。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin"><code>hello.jsp</code> という名前の新しいファイルを作成。</li>



<li>ファイルをエディタで開き、↑の内容を記述し保存！</li>
</ol>



<h3 class="wp-block-heading"><span id="toc9">ブラウザで表示してみる</span></h3>



<p class="wp-block-paragraph">ファイルを保存したら、Tomcatが起動していることを確認し、ブラウザで次のURLにアクセスしてみましょう。</p>




<a rel="noopener" href="http://localhost:8080/jsp-demo/hello.jsp" title="&#28961;&#21177;&#12394;URL&#12391;&#12377;" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/http%3A%2F%2Flocalhost%3A8080%2Fjsp-demo%2Fhello.jsp?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">&#28961;&#21177;&#12394;URL&#12391;&#12377;</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=http://localhost:8080/jsp-demo/hello.jsp" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">localhost</div></div></div></div></a>
</pre>



<p class="wp-block-paragraph">画面に「こんにちは、JSPの世界へようこそ！」という見出しと、現在の時刻が表示されていれば成功です。</p>



<p class="wp-block-paragraph">ブラウザでページを更新するたびに、時刻が変化するはずです。これは、<strong>JSPがアクセスされるたびにJavaのコードを実行して、ページの中身を動的に作っている</strong>ということを意味します。</p>



<h2 class="wp-block-heading"><span id="toc10">JSPの基本構文</span></h2>



<p class="wp-block-paragraph">前の章では、JSPファイルを作成し、Javaのコードを埋め込むことで「現在の時刻を表示する」ページを作成しました。ここからは、JSPファイルで使われる代表的な構文について解説します。どのようにJavaのコードをHTMLに差し込むのか、そしてJSP特有の書き方にはどんな種類があるのかを、順を追って学習していきましょう。</p>



<h3 class="wp-block-heading"><span id="toc11">JSPの構成要素</span></h3>



<p class="wp-block-paragraph">JSPでは、<strong>以下の4種類の記述形式が用意されています</strong>。これらを使い分けることで、Javaの処理とHTMLの表示を同時に扱うことができます。</p>



<figure class="wp-block-table aligncenter"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>種類</th><th>記述方法</th><th>役割</th></tr></thead><tbody><tr><td>ディレクティブ</td><td><code>&lt;%<span class="bold-red">@</span> ... %&gt;</code></td><td>ページ全体の設定を行う（文字コードなど）</td></tr><tr><td>スクリプトレット</td><td><code>&lt;% ... %&gt;</code></td><td>Javaの処理（変数の定義や条件分岐など）を書く</td></tr><tr><td>式（Expression）</td><td><code>&lt;%<span class="bold-red">=</span> ... %&gt;</code></td><td>Javaの値をそのままHTMLに出力する</td></tr><tr><td>宣言</td><td><code>&lt;%<span class="bold-red">!</span> ... %&gt;</code></td><td>メソッドやフィールドを定義する（あまり使われない）</td></tr></tbody></table></div></figure>



<h3 class="wp-block-heading"><span id="toc12">ディレクティブ</span></h3>



<p class="wp-block-paragraph">ディレクティブは、JSPファイル全体に関する設定を行うものです。最もよく使われるのは <code>page</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;%@ page contentType="text/html; charset=UTF-8" %>
</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 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">この記述によって、出力するHTMLの文字コードがUTF-8になります。日本語を正しく表示するために必須です。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc13">スクリプトレット</span></h3>



<p class="wp-block-paragraph">スクリプトレットは、JSPファイル内にJavaの処理を書くための領域です。</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;%
  int year = java.time.LocalDate.now().getYear();
  String message = "今年は " + year + " 年です。";
%>
&lt;p>&lt;%= message %>&lt;/p>
</pre>



<p class="wp-block-paragraph">この例では、Javaで現在の年を取得し、それを文字列として作成しています。そして <code>&lt;%= ... %&gt;</code> を使って、結果をHTMLに出力しています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">スクリプトレットの中ではJavaの文法がそのまま使えます。ただし、後述するように<strong>スクリプトレットは新しい開発ではなるべく使わない方向にあります</strong>。</p>
</blockquote>



<h3 class="wp-block-heading"><span id="toc14">式（Expression）</span></h3>



<p class="wp-block-paragraph">式は、値をそのままHTMLとして出力したいときに使います。</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;p>こんにちは、&lt;%= "JSPユーザー" %>さん！&lt;/p>
</pre>



<p class="wp-block-paragraph">上の例では、<code>"JSPユーザー"</code> という文字列がHTMLに挿入され、ブラウザには次のように表示されます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">こんにちは、JSPユーザーさん！
</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 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"><span id="toc15">宣言</span></h3>



<p class="wp-block-paragraph">宣言は、JSPファイルの中で<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;%! 
  private String getGreeting(String name) {
    return "こんにちは、" + name + "さん！";
  }
%>
&lt;p>&lt;%= getGreeting("太郎") %>&lt;/p>
</pre>



<p class="wp-block-paragraph">このように、JSPファイルの中で小さな関数を定義して、それを式の中で呼び出すこともできます。<strong>ただし、JSPファイルに処理を詰め込みすぎると保守が難しくなるため、このような記述はできるだけ避け、外部のJavaクラスに処理を分けることが望まれます。</strong></p>



<h3 class="wp-block-heading"><span id="toc16">コメントの書き方</span></h3>



<p class="wp-block-paragraph">JSPには、HTMLのコメントと、JSP用のコメントの2種類があります。</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;!-- これはHTMLのコメントです（ブラウザの「ページのソース」に表示されます） -->

&lt;%-- これはJSPのコメントです（ブラウザには一切表示されません） --%>
</pre>



<p class="wp-block-paragraph">HTMLのコメントはWebページに送信されるため、内容を見られる可能性があります。<br>一方、JSPのコメントはサーバー側で処理が止まるため、セキュリティ的に重要なコメントや開発者向けのメモはJSPのコメントで書くのが安全です。</p>



<h3 class="wp-block-heading"><span id="toc17">スクリプトレットはなるべく使わない</span></h3>



<p class="wp-block-paragraph">JSPの構文として紹介しましたが、<strong>スクリプトレット（<code>&lt;% ... %&gt;</code>）の使用は、今では非推奨</strong>とされています。理由は以下の通り。</p>



<ul class="wp-block-list is-style-icon-list-cross has-list-style">
<li>HTMLとJavaのロジックが混ざることで、読みづらくなる</li>



<li>保守性が下がり、エラーが起きやすくなる</li>



<li>JSTL（JSP標準タグライブラリ）やEL（式言語）の方がシンプルで安全に書ける</li>
</ul>



<p class="wp-block-paragraph">そのため、今後はJSTLやELを使って、できるだけ「Javaコードを書かずに表示を制御する方法」を覚えていくことが大切です。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center wp-block-paragraph"><span class="badge-green">まとめ</span>　<strong>JSPの基本構文</strong></p>



<ul class="wp-block-list">
<li>JSPには、ディレクティブ・スクリプトレット・式・宣言という4種類の書き方がある。</li>



<li>スクリプトレットや宣言ではJavaの文法をそのまま使うことができるが、使いすぎは避けるべし。</li>



<li>式（<code>&lt;%= ... %&gt;</code>）は、値を簡単に出力するのに便利です。</li>



<li>コメントは、必要に応じてJSPコメント（<code>&lt;%-- --%&gt;</code>）を使いましょう。</li>
</ul>
</div>



<p class="wp-block-paragraph">次の章では、<strong>JSTLとEL（式言語）を使った“スクリプトレットを使わない”JSPの書き方</strong>を学びます。より読みやすく、安全なJSPの記述方法を習得していきましょう。</p>



<h2 class="wp-block-heading"><span id="toc18">ELとJSTLでスクリプトレットのないJSPへ</span></h2>



<p class="wp-block-paragraph">ここまでの解説では、JSPの基本構文としてスクリプトレット（<code>&lt;% ... %&gt;</code>）などを紹介しました。<br>しかし近年のJSP開発では、<strong>スクリプトレットを使わない記述スタイル</strong>が主流となっています。</p>



<p class="wp-block-paragraph">この章では、<strong>EL（Expression Language）とJSTL（JSP Standard Tag Library）</strong>という2つの仕組みを使って、<strong>JSPファイルの中にJavaコードを書かずに動的な表示を行う方法</strong>を学んでいきます。</p>



<h3 class="wp-block-heading"><span id="toc19">EL（式言語）とは</span></h3>



<p class="wp-block-paragraph">EL（Expression Language）は、JSPの中で<strong>Javaの値を簡潔に記述するための言語</strong>です。<br>スクリプトレットのように <code>&lt;%=</code> で囲む必要がなく、シンプルに <code>${変数名}</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;p>こんにちは、${userName} さん。&lt;/p>
</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 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">このコードでは、Javaのサーバー側で <code>userName</code> という名前のデータ（属性）が用意されていれば、自動的にその値が表示されます。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc20">JSTL（JSP標準タグライブラリ）とは</span></h3>



<p class="wp-block-paragraph">JSTLとは、JSP上で使える<strong>共通の処理をあらかじめタグ化したライブラリ</strong>です。<br>たとえば、以下のような処理が可能です。</p>



<ul class="wp-block-list">
<li>条件分岐（if）</li>



<li>繰り返し処理（forEach）</li>



<li>値のフォーマット（日付や数値）</li>



<li>URLの生成</li>
</ul>



<p class="wp-block-paragraph">JSTLを使うことで、<strong>複雑なJavaの処理をわかりやすいタグで書くことができる</strong>ようになります。</p>



<h4 class="wp-block-heading">JSTLを使う準備</h4>



<p class="wp-block-paragraph">JSTLを使うには、JSTLライブラリの <code>.jar</code> ファイルを JSPプロジェクトの中に追加する必要があります。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="inline-button-green">手順</span></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">JSTLの最新版（Jakarta標準）をダウンロード<br>→ <a>https://jakarta.ee/specifications/tags/</a></li>



<li class="is-style-bottom-margin-2em has-bottom-margin">ダウンロードした <code>jakarta.servlet.jsp.jstl-api-x.x.x.jar</code> などの <code>.jar</code> ファイルを、Tomcatの <code>lib</code> フォルダ、またはプロジェクトの <code>WEB-INF/lib</code> フォルダにコピーします。</li>



<li>JSPファイルの先頭に、以下のようにタグライブラリを読み込む宣言を記述します。</li>
</ol>



<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;%@ taglib prefix="c" uri="https://jakarta.ee/taglibs/core" %>
</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 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>&lt;c:if&gt;</code> や <code>&lt;c:forEach&gt;</code> などのJSTLタグが使えるようになります。</p>
</div></div>



<h4 class="wp-block-heading">JSTLで条件分岐をする</h4>



<p class="wp-block-paragraph">スクリプトレットで <code>if</code> 文を書かなくても、JSTLの <code>&lt;c:if&gt;</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;%@ taglib prefix="c" uri="https://jakarta.ee/taglibs/core" %>
&lt;c:if test="${loginUser != null}">
  &lt;p>ようこそ、${loginUser.name} さん&lt;/p>
&lt;/c:if>
</pre>



<p class="wp-block-paragraph">このように、<code>loginUser</code> という属性が <code>null</code> でなければ、挨拶文が表示されます。</p>



<h4 class="wp-block-heading">JSTLで繰り返し表示をする</h4>



<p class="wp-block-paragraph">リストや配列の内容を繰り返し表示するには、<code>&lt;c:forEach&gt;</code> を使います。</p>



<p class="wp-block-paragraph">サーバー側で、次のようにリストをセットしておきます（Servletなどで）：</p>



<pre class="EnlighterJSRAW" data-enlighter-language="java" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">List&lt;String> names = List.of("太郎", "花子", "次郎");
request.setAttribute("nameList", names);
</pre>



<p class="wp-block-paragraph">JSPファイルでは、次のように記述します：</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ taglib prefix="c" uri="https://jakarta.ee/taglibs/core" %>
&lt;ul>
  &lt;c:forEach var="name" items="${nameList}">
    &lt;li>${name}&lt;/li>
  &lt;/c:forEach>
&lt;/ul>
</pre>



<p class="wp-block-paragraph">このコードにより、以下のようなHTMLが生成されます：</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;ul>
  &lt;li>太郎&lt;/li>
  &lt;li>花子&lt;/li>
  &lt;li>次郎&lt;/li>
&lt;/ul>
</pre>



<h3 class="wp-block-heading"><span id="toc21">JSPをすっきり保つために</span></h3>



<p class="wp-block-paragraph">ELとJSTLを使うことで、JSPファイル内にJavaのコードを書く必要がなくなり、<strong>HTMLに近い構造を保ちながら動的な処理を行うことができます。</strong><br>これは、JSPを読みやすく・保守しやすくする上でも非常に重要です。</p>



<p class="wp-block-paragraph">また、デザイナーと共同で作業するようなプロジェクトでも、HTMLに近い見た目を保つことで、分業がしやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc22">フォームからデータを受け取る</span></h2>



<p class="wp-block-paragraph">JSPを使ってWebアプリケーションを作成する際、ユーザーの入力に応じて処理を行うことは非常に重要です。この章では、<strong>HTMLのフォームを使って入力されたデータを、JSPで受け取って表示する方法</strong>を学びます。</p>



<h3 class="wp-block-heading"><span id="toc23">フォーム送信の流れ</span></h3>



<p class="wp-block-paragraph">フォームを使った処理は、次のような流れで行われます。</p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li>入力フォームのあるページ（JSP）を表示する</li>



<li>ユーザーが名前などの情報を入力し、送信ボタンを押す</li>



<li>入力内容がサーバーに送られる</li>



<li>受け取ったJSPファイルがその情報を読み取り、画面に表示する</li>
</ol>



<p class="wp-block-paragraph">JSPではこの一連の流れを、HTMLとJavaの仕組みで簡単に実現できます。</p>



<h3 class="wp-block-heading"><span id="toc24">フォームを作るJSP（entry.jsp）</span></h3>



<p class="wp-block-paragraph">まずは、名前を入力するための簡単なフォームを作成します。</p>



<h4 class="wp-block-heading">entry.jsp</h4>



<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;!DOCTYPE html>
&lt;html>
&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>名前の入力&lt;/title>
&lt;/head>
&lt;body>
  &lt;h2>お名前を入力してください&lt;/h2>
  &lt;form action="result.jsp" method="post">
    &lt;label>名前：&lt;input type="text" name="username" />&lt;/label>
    &lt;input type="submit" value="送信" />
  &lt;/form>
&lt;/body>
&lt;/html>
</pre>



<p class="wp-block-paragraph">このページでは、名前を入力して「送信」ボタンを押すと、<code>result.jsp</code> にPOSTリクエストでデータが送信されます。</p>



<h3 class="wp-block-heading"><span id="toc25">データを受け取るJSP（result.jsp）</span></h3>



<p class="wp-block-paragraph">次に、送信されたデータを受け取って表示するためのJSPファイルを作成します。</p>



<h4 class="wp-block-heading">result.jsp</h4>



<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;%@ page contentType="text/html; charset=UTF-8" %>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>入力結果&lt;/title>
&lt;/head>
&lt;body>
  &lt;h2>ようこそ！&lt;/h2>
  &lt;p>あなたの名前は &lt;strong>&lt;%= request.getParameter("username") %>&lt;/strong> さんですね。&lt;/p>
&lt;/body>
&lt;/html>
</pre>



<p class="wp-block-paragraph">ここでは、<code>request.getParameter("username")</code> というコードで、フォームから送られたデータを取得しています。</p>



<ul class="wp-block-list">
<li><code>request</code> はJSPに自動で用意されているオブジェクト。</li>



<li><code>getParameter("username")</code> は、フォームの<code>name="username"</code> に対応した値を取得するメソッド。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc26">ELを使って書き換える</span></h3>



<p class="wp-block-paragraph">JSTLやELを使えば、<code>result.jsp</code> をもっとすっきり書くこともできます。以下のようにリクエスト属性に値をセットしてから表示することで、式言語を活用できます。</p>



<h4 class="wp-block-heading">Servlet側（例）</h4>



<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="">String name = request.getParameter("username");
request.setAttribute("username", name);
request.getRequestDispatcher("/result.jsp").forward(request, response);
</pre>



<h4 class="wp-block-heading">result.jsp：</h4>



<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;%@ taglib prefix="c" uri="https://jakarta.ee/taglibs/core" %>
&lt;p>こんにちは、${username} さん！&lt;/p>
</pre>



<p class="wp-block-paragraph">ただし、Servletを使う方法はこのガイドの後半で詳しく扱いますので、今はまず <code>request.getParameter()</code> による受け取りに慣れることをおすすめします。</p>



<h2 class="wp-block-heading"><span id="toc27">セッションとCookieでデータを保持する</span></h2>



<p class="wp-block-paragraph">JSPでは、ユーザーが入力した情報を「別のページでも使いたい」という場面がよくあります。<br>たとえば、ログイン状態を維持したり、前の画面で入力された名前を次の画面でも表示したりする場合です。</p>



<p class="wp-block-paragraph">そのようなときに役立つのが <strong>セッション（Session）</strong> と <strong>クッキー（Cookie）</strong> です。<br>この章では、それぞれの役割と使い方を学びます。</p>



<h3 class="wp-block-heading"><span id="toc28">セッションの基本操作</span></h3>



<h4 class="wp-block-heading">データの保存：</h4>



<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;%
  String name = request.getParameter("username");
  session.setAttribute("userName", name);
%>
</pre>



<p class="wp-block-paragraph">このコードは、<code>userName</code> という名前でセッションに値を保存します。</p>



<h4 class="wp-block-heading">データの取得：</h4>



<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;%
  String name = (String) session.getAttribute("userName");
%>
&lt;p>ようこそ、&lt;%= name %> さん&lt;/p>
</pre>



<p class="wp-block-paragraph">このようにすれば、<strong>前のページで保存した値を、別のページで取り出して使うことができます。</strong></p>



<h4 class="wp-block-heading">セッションの有効期間と注意点</h4>



<p class="wp-block-paragraph">セッションは、ユーザーがブラウザを閉じるか、一定時間操作をしないと自動的に無効になります。Tomcatの初期設定では、30分間操作がないとセッションが切れます。</p>



<p class="wp-block-paragraph">また、<strong>多くの情報をセッションに保存しすぎると、サーバーのメモリを圧迫する可能性がある</strong>ため、用途を絞って使うことが大切です。</p>



<h3 class="wp-block-heading"><span id="toc29">Cookieとは</span></h3>



<p class="wp-block-paragraph">Cookie（クッキー）は、<strong>情報をユーザーのブラウザに保存する仕組み</strong>です。<br>サーバー側から「この情報を保存しておいてください」と指示すると、ブラウザがその内容を保持し、次回以降のアクセス時にその情報を自動的に送信してきます。</p>



<h3 class="wp-block-heading"><span id="toc30">Cookieの基本操作</span></h3>



<h4 class="wp-block-heading">Cookieの作成と送信：</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%
  String name = request.getParameter("username");
  Cookie cookie = new Cookie("userName", name);
  cookie.setMaxAge(60 * 60); // 1時間（秒単位）
  response.addCookie(cookie);
%>
</pre>



<h4 class="wp-block-heading">Cookieの取得：</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%
  String name = "";
  Cookie[] cookies = request.getCookies();
  if (cookies != null) {
    for (Cookie c : cookies) {
      if ("userName".equals(c.getName())) {
        name = c.getValue();
      }
    }
  }
%>
&lt;p>こんにちは、&lt;%= name %> さん&lt;/p>
</pre>



<p class="wp-block-paragraph">このように、Cookieを使えば、ブラウザに保存された情報を次回のアクセス時にも利用できます。</p>



<h3 class="wp-block-heading"><span id="toc31">セッションとCookieの使い分け</span></h3>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table class="has-fixed-layout"><thead><tr><th>比較項目</th><th>セッション</th><th>Cookie</th></tr></thead><tbody><tr><td>保存場所</td><td>サーバー側</td><td>ブラウザ側</td></tr><tr><td>有効期間</td><td>ログアウトや時間切れまで</td><td>明示的に期限を設定できる</td></tr><tr><td>データの大きさ</td><td>比較的大きなデータがOK</td><td>少量（4KBまで）</td></tr><tr><td>セキュリティ</td><td>比較的安全（外部に見えない）</td><td>攻撃に注意が必要（盗聴・改ざん）</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph"><strong>一時的な状態保持（ログイン情報など）にはセッション</strong>、<br><strong>ユーザーに関連する設定（言語選択やテーマなど）にはCookie</strong>がよく使われます。</p>



<h2 class="wp-block-heading"><span id="toc32">JSPで簡単なアンケートアプリを作ろう</span></h2>



<p class="wp-block-paragraph">JSPを使ってWebアプリケーションを作るには、「複数ページにまたがる処理」を整理することが大切です。<br>この章では、<strong>3画面構成のアンケートアプリ</strong>を作り、情報の受け渡し、表示の切り替え、セッションの活用を総合的に体験します。</p>



<h3 class="wp-block-heading"><span id="toc33">アプリの構成と目的</span></h3>



<p class="wp-block-paragraph">このアプリでは、以下のような流れでユーザーにアンケートに答えてもらい、最終画面でまとめて表示します。</p>



<ol class="wp-block-list">
<li><strong>入力画面</strong>：名前と好きな色を入力（form）</li>



<li><strong>確認画面</strong>：入力された内容を表示（セッションで一時保持）</li>



<li><strong>完了画面</strong>：ありがとうメッセージと入力内容の最終確認</li>
</ol>



<p class="has-text-align-center wp-block-paragraph"><strong>プロジェクト構造</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">jsp-demo/
├─ input.jsp     （入力画面）
├─ confirm.jsp   （確認画面）
└─ thanks.jsp    （完了画面）
</pre>



<h4 class="wp-block-heading">入力画面：input.jsp</h4>



<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;%@ page contentType="text/html; charset=UTF-8" %>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>&lt;meta charset="UTF-8">&lt;title>アンケート入力&lt;/title>&lt;/head>
&lt;body>
  &lt;h2>アンケートにご協力ください&lt;/h2>
  &lt;form action="confirm.jsp" method="post">
    &lt;p>お名前：&lt;input type="text" name="userName" />&lt;/p>
    &lt;p>好きな色：
      &lt;select name="favoriteColor">
        &lt;option value="赤">赤&lt;/option>
        &lt;option value="青">青&lt;/option>
        &lt;option value="緑">緑&lt;/option>
      &lt;/select>
    &lt;/p>
    &lt;input type="submit" value="確認画面へ" />
  &lt;/form>
&lt;/body>
&lt;/html>
</pre>



<h4 class="wp-block-heading">確認画面：confirm.jsp</h4>



<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;%@ page contentType="text/html; charset=UTF-8" %>
&lt;%
  String userName = request.getParameter("userName");
  String favoriteColor = request.getParameter("favoriteColor");

  session.setAttribute("userName", userName);
  session.setAttribute("favoriteColor", favoriteColor);
%>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>&lt;meta charset="UTF-8">&lt;title>確認画面&lt;/title>&lt;/head>
&lt;body>
  &lt;h2>以下の内容でよろしいですか？&lt;/h2>
  &lt;p>お名前：&lt;%= userName %>&lt;/p>
  &lt;p>好きな色：&lt;%= favoriteColor %>&lt;/p>
  &lt;form action="thanks.jsp" method="post">
    &lt;input type="submit" value="送信する" />
  &lt;/form>
&lt;/body>
&lt;/html>
</pre>



<h4 class="wp-block-heading">完了画面：thanks.jsp</h4>



<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;%@ page contentType="text/html; charset=UTF-8" %>
&lt;%
  String name = (String) session.getAttribute("userName");
  String color = (String) session.getAttribute("favoriteColor");

  // 必要があればセッションのデータを破棄
  session.invalidate();
%>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>&lt;meta charset="UTF-8">&lt;title>送信完了&lt;/title>&lt;/head>
&lt;body>
  &lt;h2>ご協力ありがとうございました！&lt;/h2>
  &lt;p>&lt;strong>&lt;%= name %>&lt;/strong> さんの好きな色は &lt;strong>&lt;%= color %>&lt;/strong> ですね。&lt;/p>
&lt;/body>
&lt;/html>
</pre>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center wp-block-paragraph">&#x2705; まとめ</p>



<ul class="wp-block-list">
<li><strong>JSPとは何か</strong>
<ul class="wp-block-list">
<li>HTMLにJavaの処理を埋め込んで、動的なWebページを作成できる技術</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">サーバー側で処理され、HTMLとしてブラウザに返される</li>
</ul>
</li>



<li><strong>JSPの実行に必要な環境</strong>
<ul class="wp-block-list">
<li>JDKとTomcatが必須（Java実行環境とWebサーバー）</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">JSPファイルはTomcatの<code>webapps</code>内に配置することで動作する</li>
</ul>
</li>



<li><strong>JSPファイルの基本構文</strong>
<ul class="wp-block-list">
<li><code>&lt;%@ page %&gt;</code>：ページ全体の設定</li>



<li><code>&lt;%= ... %&gt;</code>：Javaの値をHTMLに出力</li>



<li><code>&lt;% ... %&gt;</code>：処理を書く（スクリプトレット）</li>



<li class="is-style-bottom-margin-2em has-bottom-margin"><code>&lt;%! ... %&gt;</code>：変数やメソッドの宣言</li>
</ul>
</li>



<li><strong>スクリプトレットの非推奨と代替方法</strong>
<ul class="wp-block-list">
<li>EL（式言語）で<code>${変数名}</code>と書くと簡単に出力可能</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">JSTLで<code>&lt;c:if&gt;</code>や<code>&lt;c:forEach&gt;</code>などの制御構文を記述可能</li>
</ul>
</li>



<li><strong>フォームデータの送受信</strong>
<ul class="wp-block-list">
<li><code>&lt;form&gt;</code>タグでデータをPOST送信し、<code>request.getParameter()</code>で取得</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">データをセッションに保存して複数ページで利用可能</li>
</ul>
</li>



<li><strong>セッションとCookieの使い分け</strong>
<ul class="wp-block-list">
<li>セッション：サーバー側に一時的に情報を保持（ログイン状態など）</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">Cookie：ブラウザに保存し、次回アクセス時に自動送信（言語設定など）</li>
</ul>
</li>
</ul>
</div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
