WEBとは何か -HTML→掲示板→SNS/ブログ/ECサイト + ブロックチェーン NFTまで-

記事
IT・テクノロジー
C言語のプログラミングします
ということで、こちらのブログでご紹介しておりますシステムのソースコードをサービスとして御提供します。


WEBとは何か
ココナラで、人気のサービスの上位にくるのがWEB制作サービスです。そして、ネットを検索すると、実にたくさんのWEB制作会社があります。つまり、WEB制作は非常に需要が高いサービスだということがわかります。つまり、WEBサイトやホームページを持ちたい!という人が多いわけですね。

そこで、インターネットが一般化(1994年)する前のインターネット黎明期(1990年)から、インターネットを利用してきたアラカンのIT企業社長として、WEBとはなにか、あるいは、WEBはここ1990年からの30年余りでどう変遷してきたのか、さらには、最近いろいろ噂されている Web3についても、知っている範囲で(大して知らないけど)書いてみます。

WEBの始まり
World Wide Web は、1990年にCERN(欧州原子核研究所)のティム・バーナーズ=リーがHTML(ハイパーテキスト記述言語)を開発したときに始まります。その段階で、元祖のHTTPプロトコルが開発されて、ネットワークで繋がったコンピュータ間で、互いにリンクされて繋がったドキュメントをシェアする仕組みができました。

1990年までのインターネットでは、ネットワークにつながったコンピュータ間でのメッセージのやり取りするには、mail とnewsgroupが主に使われていました。mailは、現在とほぼ同じものす。また、newsgroupは、投稿されたメッセージがネットワークで繋がっているコンピュータの間に拡散する仕組みで、返信(リプライ)をつけたりしてスレッドを構成するあたり、現在のTwitterに近い感じです。

そんな中で、CERNのバーナーズ=リーが解決したかったのは、その時その時のメッセージのやりとりではなく、まとまった文書やデータをシェアする仕組みでした。1990年ごろまでには、ネットワークに繋がったコンピュータの間でファイルシステムを共有する仕組み(例えば米国の研究機関や大学を繋いだAFSなど)も有りましたので、文書やデータのファイルを多くの人でシェアすることはできましたが、HTMLのすごいところは、一つの文書から多数のデータや文書へリンクが張れることでした。そこで、CERNの研究者たちは、それぞれ自分のホームページを作り、そこに自分の研究開発成果の文書や、実験データなどを置いておき、それらを相互にリンクしておくことで、いろいろなデータや資料を相互にブラウズできるようにしたのです。

で、これがむちゃくちゃバズりました。なぜなら、インターネット全体で、それまでmailやnewsgroupの配信のノードでしかなかったインターネットサイト(1990年代初頭の日本では100くらいあったかな?)が、突然、そのサイトのもつ様々なドキュメントやデータなどを広く配信できるようになったからです。

1993年にHTMLの最初の仕様がきまり、画像表示などが可能になるころには、日本でもインターネットが一般で使えるようになり、そして、Windows95がどーんと普及すると、一般の人々も、すでに存在していた多数のホームページを閲覧できるようになりました。企業は争ってインターネットのドメインを取得し、そして、企業の顔として、WEBサイトを作り、そこにホームページを置いて、それが正に企業の顔になりました。そして、個人も、自分が契約しているインターネットプロバイダのサイト内に個人のホームページを作成し、自分のもつコンテンツ、データ、文書などを発信しはじめました。

検索エンジンの始まり
色々な企業や個人などが、どんどんホームページを立ち上げるようになると、ホームページのURLというものをみんなに知ってもらう必要がでてきました。ある企業や個人がホームページを開いても、そのページのURLが知られていなければ、だれもそのホームページをアクセスできません。当初は、似たカテゴリーのページ同士が相互にリンクして、互いにホームページを紹介しあうようなこともありました。

そこで登場したのが、検索エンジンです。検索エンジンサイトは、つねに新しいホームページがないかを監視し、そして、見つかったページをデータベースにに登録し、キーワードなどとともにそのページを検索できるようにしたわけです。

ただ、検索エンジンが登場した当時は、WEBページの数もサイトも現在よりは大変少なかったので、キーワード一発でほぼ思った通りのページが見つかりましたが(ただ、WEBページが現在より圧倒的に少ないので、見たいページがそもそも存在しないことも多かったですが)、WEBページがどんどん増えてきている現在では、なかなか思ったページが見つからない、という状況になっていますね。これは実は大きな課題です。

掲示板サイトの登場
WEBの掲示板は、だいたい検索エンジンと同じころに出来始めました。その理由は、cgiが使えるようになったことと関係します。当初、ホームページは、HTMLで書いたテキストファイルと、ページ内に表示されている画像ファイルなどを、まとめてWEBサーバ上の所定のディレクトリ(フォルダ)に入れておくだけでした。しかし、これだと、アクセスカウンタすら設置できません。これは、ページがアクセスされたら、カウンタの数を1だけ増やして、その結果をホームページに反映させる必要がありますが、それはHTMLで書かれたページがアクセスされる度に、カウンターの部分だけちょっと書き換える、という必要があるからです。

そこで、HTTPのプロトコルが拡張され、cgiという仕組みが生まれました。ページがアクセスされたときに、固定的なページを送り返すのではなく、ページを生成するプログラム(これがcgiそのものです)を実行して、生成されたページを送り返すわけです。また、WEBページを見るためのブラウザが、WEBサーバに対してデータを送信できる仕組みも付加されました。HTMLでもform文というものが付加され、テキストなどをサーバに送ることが可能になったのです。これで、ようやくブラウザから、WEBサーバに対して、検索キーワードが送れるようになり、検索エンジンが可能になり、アクセスカウンタも設置でき、そして、なによりも、掲示板システムが可能になったのです。掲示板サイトでは、アクセスした人がどんどん投稿して、スレッドが形成され、コミュニケーションができるようになりました。そして、そのころ、インターネットでのコミュニケーションシステムだった newsgroupが使われなくなりました。

HTTPのプロトコル自身は、TLS(SSH)による暗号化通信が入ってHTTPSが一般化したことを除き、現在に至るまで、大きな仕様変更はありません。CSSの導入なども、HTMLの仕様変更であって、基本的な通信プロトコルとしての、HTTPは変更されていないのです。つまり、WEBという仕組みは、cgiの導入で、アクセスカウンタと検索エンジンと掲示板が実現できるようになった段階で、ほぼ完成したと言えます。そして、掲示板システムが、現在のほとんどのSNS、ブログ、ECサイト、などなどあらゆるWEBプラットフォームに発展、展開していったのです。

WEBサイトの基本要素
さて、ここで、WEBサイトの基本要素となるものを挙げると、以下の二点です。

1)ページの内容や画像、動画、その他を管理するデータベース(SQLとその派生が利用されることが多い)
2)データベースにアクセスするcgiプログラム(PHP,Perl,rubyなどのスクリプト言語で書かれることが多い)。

WEBサイトを制作する際、ほとんどのレンタルサーバは、SQLを既に走らせていて、いつでも使えるようになっています。また、PHP, perl, ruby などのスクリプト言語を処理する言語処理系も、多くのレンタルサーバにインストールされています。ですから、WEB制作では PHPでページの枠組みを記述し、その後、ブラウザから、枠組みにそってページの内容をアップロードすることで完了します。そうすると、WEB制作後、新なページの追加や、既存ページの内容の更新を、ブラウザから行うことができます。

そして、WordPressが登場しました。PHPで書かれたWEBページの雛形(テンプレート)のキットです。WordPress は、WEBサイト制作で必要なPHPのいろいろな部品が既に用意されています。ですから、必要なWordPressのテンプレートをもってきて、それをカスタマイズし、その後、ページの内容を書き込むだけで、WEB制作は完了します。 WEB制作後は、お客様自身がページの更新や追加が可能になり、メンテナンスもほとんど必要ありません。

インターネットプラットフォームへの展開
さて、SNS、ブログ、ECサイトなどは、掲示板サイトの発展形として生まれてきたものです。これらを、一般的に、インターネットプラットフォームとかいいますね。

SNSは、短い文章や画像、動画などを投稿して、フォロワーさんに見てもらい、さらにコメントや返信をもらったりできます。また、自分自身がフォローするアカウントの投稿記事が優先的に読めて、反応することができます。

ブログサイトでは、SNSとは違い、まとまった長めの記事が書けます。また、ブログとは呼びませんが、YouTubeなどの動画投稿サイトも、ブログのようなものです。ブログサイトも、小説投稿サイト、コミック投稿サイトなど、それぞれいろいろな方向に展開していますね。

さらに、ECサイトもいろいろたくさんあります。より広く、マッチングサイトとなれば、求人、転職情報サイトや、サービス斡旋サイトなども、ECサイトのようなものです。つまり、ここ、ココナラもまた、ECサイトの一種と言えますね。

こうなってくると、インターネットでの、そのときどきの情報のやりとりはSNSで可能になり、まとまった資料や文書はブログサイトで可能で、かつ、商品を売るときは、ECサイトを利用する、となれば、個人や企業はなんのためにホームページをもつか、みたいな話になってきます。あたらしいホームページを作っても、まず検索エンジンで検索されるには、かなりの広報宣伝が必要だったりしますが、SNSのプロフィールページは、案外簡単に検索されます。知名度が高い大企業などの場合は、自社のホームページを充実させていろいろ宣伝にも使えますが、そうでない場合は、SNSやブログの活用だけで充分になってきた、という状況です。

今後のWEB制作
となると、企業や個人が自分のWEBサイト(ホームページ)をもつのは、次第に意味を失うかもしれません。自分のWEBサイトには、最低限の内容と、SNSやブログに投稿したり、ECサイトに出品した情報をリンクしておくだけになるかもしれません。基本的には、SNS上のプロフィールページで書ききれない情報を追加として書く所になる可能性があります。その意味では、WEB制作は、だんだんと下火になりそうです。

また、そんな中で、NFTも登場してきました。NFTは、インターネット上のデジタルコンテンツ(文書、画像、動画、その他のデータなどなど)について、誰が制作し、誰がそれを利用し、だれがその利用権やアクセス権を人に譲ったか(取引ですね)、という情報をブロックチェーンに記録して改竄できないようにする仕組みです。取引が絡むので、当然、お金もネット上で飛び交います。だから、仮想通貨(とか暗号資産とか)の取引履歴を記録するブロックチェーン技術がそのままNFTでも使われています。
つまり、先程のWEBサイトの要素、つまり、1)データベース、2)cgiに、もう一つ、
0)データのアクセス、取引を改竄不能な形で記録するブロックチェーン
というものが加わったわけですね。

企業や個人が自分のホームページ(WEBサイト)に置いていたようなものは、NFTマーケットに出品するほうが、よりアクセスされやすいし、売れるかもしれないです。おそらく、ECサイトの多くがNFTマーケットに飲み込まれていくと思います。現在のNFTは、デジタルアートなどの一品ものを取引する場がほとんどですが、これからデジタルコンテンツ全般に広がると、NFTは、SNSやブログを巻き込んで、大きく発展するかもしれません。で、その将来の姿のことを、どうやらWeb3というらしいのです。まあ、Web3が何かはほとんどみんなわかっていませんが。ホームページと掲示板サイトと検索エンジンの時代がWeb1で、SNSやブログ、ECサイトなどのプラットフォームが登場したのがWeb2で、そこに0番目の要素としてブロックチェーンがはいってきたのが、Web3。だいたいそんなイメージで良いと思います。

となると、個人や企業のWEBサイトは、NFTのノードの一つになります。そこで情報、画像、動画、データを発信し、また商品を出品し、それらが互いに繋がっているような具合です。Facebook 改めMeta社の戦略はそこにあるのでしょう。いわば、NFTによる、SNS+ブログ+ECが一体化された、分散型のプラットフォームです。それが、VRによるメタバースなのかどうかは、わかりません。いやたぶんVRは必要な所以外では必要ないでしょう。

まとめに変えて
ということで、このブログを皮切りに、弊社は、ココナラにおいて、WEB制作というものをより技術的な部分を、掘り下げたブログを、これから、たくさん投稿するつもりです。そして、WEB制作の発展形としてのWeb3の世界におけるブロックチェーンなどについても、実装方法の一例を示していきたいと思います。

弊社は、NFTマーケットのプラットフォーム HOTPort をスクラッチから開発しました。それは、cgiと、CMSやブロックチェーン chainmail(鎖かたびら) のためのデータベースシステムと、HTML生成機能があります。全部で2万行を超えるもので、SQLもPHPもrubyも使わず、すべてをC言語(C99)で書きました。理由は、私が、C言語しか分からなかったから、なんですが、そのために、逆に、cgiで求められることはなにか、あるいは、postで送られてくるデータをどう処理するか、さらに、ブロックチェーンってなんだ?などなどについて、かなりの知見が得られました。たぶん、PHPやSQLをさらっと勉強して実装するより苦労しましたけど。

これから、書くブログは、ひたすらC言語でcgi (クライアント)、マルチスレッドサーバ、データベースシステム、ブロックチェーン、CMSなどを実現する方法になります。いわば、私のプログラミング流儀みたいな話ですね。で、全部読んでくださった皆さまは、分散型NFTマーケットのプラットフォームを自身で設計したりC言語で書いたりできるようになると思います。

それと並行して、C言語のプログラミングサービスも開始します。そこでは、皆さまが必要としているプログラムを書いてまいりますが、その多くは、AWExion HOTPortのソースコードからの切り出しで行ける部分が多いと思います。充分にバグもとれているので、切り出しして、カスタマイズしてお届け、みたいな感じですね。なんせ2万行以上ありますから。

ということで、今後ともよろしくお願いいたします。
その2を書きました。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す