【Web技術】『http』『https』『www』とは何なのか?その違いを分かりやすく説明する

みなさん、ウェブブラウザでネットサーフィンをしているときブラウザのアドレス欄によく「https://www.~」というのを目にすると思います。今回はこの「http」「www」とは何なのか?について取り上げていきたいと思います。

 httpとは?

『http』とは、Hypertext Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル)の略でWebサーバと、Webブラウザなどのクライアントがデータを送受信する際に使われる通信上の約束ごとで、コンピュータが話し合うための「言葉」を指定するものです。

簡単にいうと日本人と「外国人」で話するときに「英語」を指定して話をするということです。プロトコル(通信規約)とは、言葉のルールを決めたものです。もしあなたがWEBサイトを見たいのならば、httpという言葉を使ってホームページにアクセスすれば、サイトに書かれているhtmlをダウンロードして読むことができるということです。

そして、このやり取りをすべて勝手にやってくれるのがインターネットエクスプローラー(IE)Google chromeといったWebブラウザです。

ブラウザなどのアドレス欄に http://www.yahoo.co.jp を記述するのは、ブラウザが www.yahoo.co.jp に「http」で通信を行うことを指定するためです。通信方式は「http」の1つしかないのにわざわざブラウザで表示させる必要がある?と思う方もいらっしゃると思いますが、昔は「http」以外にも色々な通信方式があり、現在はその競争を勝ち抜いた「http」だけが残っている状態になっています。

ちなみに現在Webブラウザで使用される通信プロトコルには、「http」よりもより暗号化されたセキュリティー耐性の高い「https」 もあります。そして、自分のサイトの通信方式をこのhttpからhttpsに変更することを「SSL化」とも言います。

 httpの歴史とhttpsについて

httpは1990年にCERN(欧州原子核研究機構)に在籍していたティム・バーナーズ・リー氏によって開発されました。基本的には普通のテキストデータを使い、 ブラウザなどのクライアントがWebサーバに対してget、putといったコマンドを送ると、 それに応じた結果がサーバから送られてきます。

そして送られてきたHTMLやJPEGといったテキスト・画像データをきれいに成形して見せるのは、 Googlechromeやインターネットエクスプローラーに代表されるWebブラウザの仕事になっています。

特徴としては、原則としてステートレス(= stateless 前回の状態は非保持の意)、 つまり1回コマンドを送ったら1回結果が返ってきてそれで終わり、ということが挙げられます。ちなみにAmazonなどのネットショッピングでは取引確認などに複数回のやりとりが必要なので、これにcookieなどの技術を組み合わせて使うことで複数回のやりとりを追跡しています。

そして単にhttpを使ってデータのやり取りをしていると、データが暗号化されていないため、 通信経路のどこかで第3者に内容を知られる可能性があります。これを防ぐために使われているのがhttpを暗号化した「https」というプロトコル(通信基準)です。↓こんなやつ

f:id:oruka199665:20170708162508j:plain

このサイトのような普通のブログだとhttpで問題ないのですが、Amazonや楽天のようなキャッシュカード情報をやり取りするようなサイトではhttpsが使われています。まあ現在はセキュリティ意識の高まりとSSL化のコストが小さくなったことから、このサイトのように個人運営のサイトでもhttpsにするサイトがかなり多いです。2018年以降に作られたサイトはほぼ「https」でしょう。

wwwとは?

「www」とは「World Wide Web(ワールド・ワイド・ウェブ)」の略称で、世界中に張り巡らされたクモの巣という意味です。「www」はもともと、さまざまな種類のコンピュータ上で共有できるファイルシステムとして開発されたもので、インターネットそのものではなく、世界中のサーバで公開されている情報をインターネットのWebページとして得ることができるシステムのことをいいます。

「www」では、URLを指定したり、Webページのリンクをクリックすることで、ユーザは世界中の「www」サーバに保存、公開されているWebページの情報を受信することができます。そして、私たちはその受信したデータをWebブラウザを介して見やすい受け取る状態で観覧することができます。

このWebブラウザでは、ユーザのURL入力やクリックなどの操作に従って、wwwサーバとブラウザ間で必要な情報の交換や転送が行われ、ユーザの元に返ってきたHTML文書の内容をブラウザが解析し、パソコンの画面上に表示するのです。

 (例)

ブラウザが実際に受け取っているデータ⇨

<span style=”color: #ff5252; font-size: 150%;”><strong> テスト</strong></span>

私たちが観覧するときに表示されるデータ⇨

 テスト

wwwの情報はHTMLという言語で記述され、文章だけでなく、多くの画像や音声なども含めて保存、公開されています。

スポンサーリンク

httpとwwwの違い

上述したようにwwwサーバは、インターネット上で Webページのコンテンツを提供するサーバです。その際に、http というプロトコル(通信ルール)に則ってHTMLデータをやりとりするのですが、その仕組みを提供するサーバという意味でhttpサーバとも呼ばれます。

要するに両者は同じものなのです。提供する機能に重点をおけば WWWサーバ、提供する仕組みに重点を置けば httpサーバという名称になると理解できそうです。よくリンクで同じサイトなのに「https://~」と「www.~」から始まる場合の2パターンの表記方法があるのはこのためです。

まとめ

以上が「http」「https」「www」の基本的な仕組みです。Webの通信プロトコルは現在はこの方式が主流ですが、1990年代のインターネット混迷期にはいろんなプロトコルがありしのぎを削っていました。興味のある人はそういう歴史も調べてみるといいと思います。

これとHTMLについて知っていれば、インターネットの表面上の仕組みは抑えたことになるので、スクレイピング(プログラムを組んで自動でWEBサイトの情報を収集すること)を行うこともできるようになると思います。

プログラミングの独学はとても難しい


プログラミングは小学校の義務教育にも導入され始めており、これから社会人として生きていく上でプログラミングはもはや出来て当たり前、出来なれば論外というエクセルレベルの必須スキルになりつつあります。そしてそういう話を聞いて参考書なりを購入して独学でプログラミング勉強しようと思っている人も少なくないでしょう。しかしプログラミングを独学で勉強し始めようと思うものの



・「分からない箇所で詰まって挫折してしまった」

・「勉強する時間が足りない」

・「ネットの記事だと情報が断片的でよくわからない」

・「コードのエラーの原因が分からない」



という壁にぶち当たって、プログラミングの勉強を止めてしまう方が少なくありません。独学でプログラミングを勉強してる時間のほとんどはつまづいている時間です。実際僕も最初のころ独学でプログラミングを勉強していた頃はエラーの原因が分からず丸1日を不意にしてしまった・・・そんな苦い経験がありました。それで僕は一度はプログラミングの学習を諦めてしまいましたが、就活で現実を知る中で



「プログラミングを勉強して、いずれフリーランスとして自由な生き方がしたい」

「エンジニアとして若いうちから高収入を得たい」



という強い気持ちから一念発起して「侍エンジニアのwebサービスコース」に申し込み、プロのエンジニアの方に対面でマンツーマンでPythonによるWebサービス作り方とWeb技術の基本を教えてもらい、ようやくプログラミングが理解でき、今ではエンジニアとしてそこそこの暮らしができるようになりました。





侍エンジニアでは、とりあえずプログラミングやインターネットの基本を知っておきたい人から、HTML・cssなどでWebサイトやWebアプリを作ってみたい人やPythonを勉強してデータサイエンティストやAIエンジニアになりたい人まで幅広いニーズに応えた様々なコースが用意されています。



IT業界と言ってもエンジニアの仕事はプログラミング言語次第でサーバーから機械学習・ディープラーニングまで多種多様ですし、侍エンジニアの無料レッスン(カウンセリング)を受けてみて、自分のやりたいITの仕事は何なのか?を見つけるのがエンジニアへの第一歩になります。ちなみに今侍エンジニアの無料レッスンを受けると1000円分のAmazonギフト券がもらえるので、試しに受けてみるだけもお得です。


自分は半端に独学やオンラインスクールで勉強して金と時間を無駄にするくらいなら、リアルのプログラミングスクールに通ってしっかりプログラミングを勉強した方がいいと思います。ちなみに今、侍エンジニアに申し込むと、25歳以下の学生の方であれば、受講料が20%OFFになるので超お得です。


そして、プログラミングは大勢で授業を受けたり漫然とオンライン学習をするよりも自分が分からない箇所をピンポイントでプロの講師に直接質問して、ちゃんと納得するというスタイルの方がお金は確かに少し掛かりますが、独学で学ぶよりも絶対にモノになります。


シェアする

  • このエントリーをはてなブックマークに追加

フォローする

   侍エンジニア塾       
侍エンジニアの無料体験レッスンを予約する -->