はじめに
みなさま、torihaziです
今回はweb技術初学者が下記書籍を読んだ上での
アウトプット要約兼説明となります。
なるべく小学生でもわかるような表現になるように努めました。
『プロになるためのWeb技術入門』――なぜ,あなたはWebシステムを開発できないのか
既に知っているよという方は復習がてらに、
初耳だよという方はこれを機に知っていただければと思います。
またご指摘、質問ありましたらどしどしコメントください!
それではいってみましょう!!
WEB技術を知る上で出てくる用語
目次(ここをクリック)
Web技術
ネットワーク経由で文字や写真、動画などの情報をやりとりする技術
ネットワーク
コンピュータ同士を繋いで情報をやりとりするための通信設備
あるいはコンピュータ同士を繋いで情報を共有できるようになったその状態のこと
ハイパーテキスト
ハイパーリンクや画像などもテキスト(文章)によって表現されているもの
ハイパーリンク
あるハイパーテキストへの参照(リンク)を示すもの
Web(World-Wide-Web)
ネットワーク上にあるハイパーテキストが互いに参照し合うことによってできるつながりのこと
この繋がりがまるで蜘蛛の巣のようだということで World-wide-web(世界に広がる蜘蛛の巣)とされた。
Mosaic
昔使われていた元祖Webブラウザ用のソフトウェア(Microsoft Edge やSafari、Chromeの祖先)
文字と画像を合わせてコンピュータ上に表示できるようになった
HTML
正式名称はHyper Text Markup Language
ハイパーテキストを書くために決められた形式のこと
その形式に従って記述されたファイルは拡張子htmlやhtmで表現される
サーバ
何かを蓄積し必要に応じて相手にそれを提供することに特化したソフトウェアのこと
またそのソフトウェアがインストールされているコンピュータそのもの
Webサーバ
HTMLファイルの扱いに特化した機能を持つサーバのこと
ApacheやIIS 、nginxというソフトウェアをコンピュータにインストールする必要がある
Webサーバとして表現された場合は
上記ソフトウェアがインストールされたコンピュータそのものを指す場合が多い。
クライアント
サーバに対して情報を要求したり、
その応答を解釈して自身の端末上に表現させることに特化したソフトウェアのこと
あるいはそのソフトウェアがインストールされているコンピュータそのもの
Webクライアント
HTMLファイルの扱いに特化した機能を持つクライアントのこと
Internet Explorer、Firefox、Safariなどが該当する
Webクライアントとして表現された場合は
上記ソフトウェアがインストールされたコンピュータそのものを指す場合が多い
リクエスト
WebクライアントからWebサーバに対して行う情報の要求のこと
レスポンス
Webサーバがwebクライアントからのリクエストに対して行う情報の応答のこと
URL
web上に存在している情報を一意に特定するための仕組み、記述方法
あるいはその情報のweb上における所在地を表す文字列のこと
スキーム、ホスト名、パス名で表現される
例: https://blog.hatena.ne.jp/torihazi
スキーム(https)
情報を取得するための方法を表す
webにおいては httpやhttpsを利用する
ホスト名(blog.hatena.ne.jp)
情報を持っているコンピュータ名のこと
パス名(torihazi)
ホスト名で指定されたコンピュータ上における情報の場所を示す
つまり例示したURL(https://blog.hatena.ne.jp/torihazi)は
blog.hatena.ne.jpというコンピュータ内にあるtorihaziというディレクトリ以下の情報を
httpsというプロトコルで取得してきましたよということを表している
プロトコル
コンピュータ同士が通信をする上で必要になるルールのこと
WebサーバとWebクライアントが通信をする上で必要になるルールはHTTP、HTTPSである
HTTP
正式名称はHyper Text Transfer Protocol
HTMLファイルのやり取りに最適なプロトコルのこと
HTTPS
正式名称はHyper Text Transfer Protocol Secure
HTTPに比べてより安全なやり取りを可能にするプロトコルのこと
静的コンテンツ
あらかじめ用意されたHTMLの情報のこと
動的コンテンツ
プログラムによって生成されるHTML形式の情報のこと
Webサーバ上で動作するプログラムがHTMLを生成する必要がある
CGI
Webサーバと動的コンテンツを生成するプログラムを連携させるしくみのこと
その仕組みを実現させるために Perl などのプログラミング言語が使用された
ポート
情報を受け取る側のコンピュータが届いた情報がどのようなものであるかを識別するための考え方
あるいはコンピュータに設けられた特定の情報を待ち受ける窓口を表す概念
ポート番号
上記のポートは0~65536個あり、それぞれに番号が振られている。
よく使用するものはwell-knownポートと呼ばれている
その中で特定のプロトコルに対応したポートがあり、下記のようなものがある。
ポート番号:プロトコル
ステートフル
通信において状態を保持すること
例えばFTPのように通信する上で
ログインしているという状態を保持する必要があるプロトコルをステートフルなプロトコルという
ステートレス
通信において状態を保持しないこと
例えばHTTPのように通信する上で情報のやり取りをするだけなら
ログイン状態を保持する必要がないプロトコルのことをステートレスなプロトコルという
クッキー(Coockie)
ステートレスなプロトコルであるHTTPを扱うWebクライアントに状態を持たせる技術のこと
またその技術を利用してwebクライアントに埋め込まれた情報のこと
ただ簡単にその情報を参照することができるので安全性は低い
セッション
クッキーで扱っていたような状態を表す情報の識別情報をサーバ側で管理する技術のこと
あるいはそのような情報自体のこと
ノード
ネットワークを構成している各々のコンピュータのこと
リンク
ノードを結びつける線のこと
つまりネットワークは複数ノードが互いにリンクで結ばれた結果できるものと説明することもできる
データベース(DB)
コンピュータ上で扱う情報の集合のこと
データベース管理システム(DBMS)
データベースの表現とその扱いに特化したソフトウェアのこと
RDBMS
DBMSの中でも表として扱うデータベースの表現と扱いに特化したソフトウェアのこと
エクセルなどが該当する。
CRUD操作
データベースに対して行うことができる各操作のこと
Create, Read, Update, Deleteのこと。
SQL
CRUD操作をする上で必要になる特定の記法によって書かれた言語のこと
DBMSに行ってほしい処理をこの言語記法に則って記述する必要がある。
終わりに
いかがだったでしょうか。
どれも知っていてかつ自身の言葉で表現できた方はいましたでしょうか。
もちろん用語を覚えたからと言ってプログラミングができるようになるわけではありません。
辞書的な意味を覚えたとしても試験のための知識にしかなり得ないかもしれません。
しかしこの道は誰しも必ず通るべき道だと私は思います。
理由は2つ。
- 技術者である以上、自身が扱う技術については自身の言葉で説明できるべきであると思うから。
- web上にある数多の情報に踊らされすぎないようになるために必要であると思うから。
・・・
1つ目については私自身がこれまでの経験上その方が気持ちがいいと思うからです。
学校の数学などの授業においてなんとなく使っていた知識に限って
大事なときに頻出したり応用を求められたりして木っ端微塵になりました。
あのときしっかりやっていればと何度思ったことでしょう。
もうそんな思いはしたくありません。
それにわかっていれば自信が持てて気持ちが良いじゃないですか。
・・・
2つ目については1つの用語に対して解釈が人それぞれ違うことが多いからです。
それによって勉強時間が奪われます。
"サーバ"というもの1つとっても、ソフトウェアなのかハードウェアを表すものなのか
ネットで検索してみれば多岐にわたります。
そしてそれが定義されずにどちらかの意味で説明されているwebの記事が多いです。
おそらく初学者であれば確実に戸惑います。
1度腹落ちしている用語であれば、「この記事はこっちの意味で説明されているな」
とすぐわかるのですんなり理解することができ、学習効率が上がります。
(特に自身の経験上、コンピュータ周りの知識をネットで調べた際には
その知識をまたわからない知識で説明されていることがざらにあります。)
・・・
以上、そのような理由が個人的にはあるので地味な作業ではありますが
1度この道を通ってみることをお勧めします。
長くなってしまいましたが、最後まで読んでいただきありがとうございました。