WEB基礎

このページではWWW(World Wide Web)について学びます。

文系プログラミングスクール
HTML5認定試験対策講座

WEBの概要

インターネットについて

 インターネットは世界中のネットワークを相互につなぐネットワークである。インターネットを絶対的に管理している組織、個人はいない(IPやドメインの管理を行うICANN、技術の標準化を行うIETFなどはある)。また、各国には大量のデータが行き交う基幹ネットワークがあり、プロバイダなどが接続されている。TCP/IPがプロトコルがほとんどのOSには備わっており、プロバイダと契約すれば、誰でも簡単にインターネットに接続できる。
 また、インターネットはデータを一括で送るのではなく、分割し送ることで、全利用者にとって回線を効率よく使えるようにしている(パケット通信)。
 過去には電話回線が主流だったが、現在はADSL、CATV、光ファイバー通信が主流となり、常時接続かつ高速通信が安価で可能になった。

WEBについて

 WWW(World Wide Web)とは全世界にクモの巣状に張り巡らされたネットワークであり、もしくはそのネットワーク状で公開されている情報を閲覧するシステムの総称である。単純にWEBとも表現される。WEB=インターネットではなく、WEBやメールはインターネット(TCP/IP)上で動くアプリケーションとも捉えられる。
 WEBはサーバー/クライアント方式で構成されており、クライアントは情報(文書や画像など)の住所であるURL(Uniform Resource Locater)を指定すれば、DNSサーバーでIPアドレスを取得し、該当するサーバーから情報を受け取ることが出来る。その際、HTTP(HyperText Transfer Protcol)というプロトコルでやり取りが行われる。

HTTPについて

 HTTPはサーバーとクライアント間での情報のやりとりを行うプロトコルである。現在はHTTP/1.1というバージョンで標準化されており、2014年秋ごろにHTTP/2.0が標準化される予定である。HTTPはクライアントからリクエストを送り、リクエストを受け取ったサーバーがレスポンスを返し、クライアントがレスポンスを受け取る。
 HTTP通信には文書や画像などの情報と一緒にやりとりされる情報が含まれる。リクエスト時には、クライアントの情報やGETやPOSTと呼ばれる追加の情報などが送られる。レスポンス時にはHTMLなどと共にサーバー情報やステータスコードなどが送られる。ステータスコードは以下のように分類される。
1XX 2XX 3XX 4XX 5XX
情報 成功 転送 クライアントエラー ex)404 NOT FOUND サーバーエラー ex)503 Service Unavailable

検索システムについて

 WEBの利用において欠かせないのが検索である。検索システムは「ディレクトリ型」と「ロボット型」がある。ディレクトリ型は集められたWEBサイトを人の手作業によってカテゴリ分けされ、データベースに登録される。ロボット型はクローラーと言う巡回プログラムが自動的にページのリンクを辿りながら、情報をデータベースに集積する。その際、ページの内容から有効性を客観的に判断している。その判断基準は常に変化していく。
 検索結果で上位に来るページに多くの人がアクセスする傾向があることから、SEO(Search Engine Optimization)という上位表示を目的としたノウハウがある。SEOを目的としいた対応を過剰に行うと、検索対象から外されたりランクが下がることがあり、近年ではページ構造やコンテンツの内容が重要視されている。

WEBと生活

パソコン、スマートフォン、タブレットの普及により、多くの人にとってWEBと生活は切り離せないものとなった。

道具としてのWEB

 技術の発展により、WEBは作業効率やライフつスタイルの向上のツールとしても利用できるようになった。WEBブラウザが使えれば、ソフトをインストールしなくても使えるWEBアプリケーションは場所やデバイスを選ばない。
 それらの広がりは、HTMLやCSS、javascriptの発展が欠かせなかった。WEBを利用する上での不便さやストレスを軽減し、心地よい操作感を実現したからだ。ユーザーにとってのわかりやすさ、操作性、操作感をUIやUXと言い、研究対象としてみなされている。

ビジネスとWEB

 WEBは圧倒的影響力を保っていたテレビから視聴者を奪う程に大きな存在となっている。それは、時間と場所を選ばず、知りたい情報だけを素早く手に入れられる優位性があるからだ。
 人が多く目にするWEBにおいても広告の規模が大きくなった。そして、個人メディアを持つ人が企業に広告枠を貸し、クリック数や売り上げに応じて課金されるアフィリエイトが広まった。
 また、ホームページは企業にとって広報の役割を担うことになり、ブランドイメージの向上にも役立てられている。また、EC(Electronic Commerce)サイトの登場により、店舗を構えなくても商売が出来るようになった。店員や営業マンの代わりになってきているのである。

メディアとしてのWEB

 WEBは情報インフラとして人々の生活に密着し、最早誰も無視することのできないものとなった。知識さえあれば誰でもホームページを制作し、公開できることから、従来、企業しか持てなかったメディアを個人でも創ることが出来るようになった。
 特に、CMS(Contents Management System)により、専門知識が無くても誰でもメディアを持てるようになり、情報発信ができるようになった。ブログを含む個人メディアの登場により、距離を問わず様々な人とコミュニケーションがとれるようになった。また、SNS(Soicial Networking Service)というコミュニケーションに特化したサービスもある。コミュニケーションの場としてオンラインゲームやチャットサービスもある。
 従来、CGM(Consumer Generated Media)など消費者が声を発信することにより、CtoCといった形も生まれている。
 メディアが増える一方で、最近では人々がメディアを選択することに面倒を感じ、メディアを選抜するメディアともいえるキュレーションメディアが増えてきている。ユーザーは自分の趣向にあうキュレーションメディアを選定し、情報の取捨選択を任せるのである。

WEBの危険性

 前述したようにWEBは誰でも情報の発信源となることが出来る。これまでも情報の正確性の見極めは、受け手のメディアリテラシーに委ねられていたが、それがより困難さを増した。嘘の情報、大げさな情報に惑わされないために、気をつけなくてはいけない。
 アフィリエイトを含め、WEBは売り上げにも直結するため、必要以上に効果をうたうことが少なくないのである。口コミサイトなども、企業の声が入っていることが少なくない。
 また、個人が出品できるECサイトなどでは、お金を受取って置いて商品を送らなかったりする詐欺に注意する必要がある。匿名の人とのコミュニケーションについては常に考えなければならない問題である。
 WEBは基本的に匿名性が守られているが故に、誹謗中傷が横行してしまうことがある。行きすぎると刑罰の対象になるが、些細なことでも無責任な発言がきっかけで、個人を特定されてしまったり、個人ブログが非難の対象となる「炎上」といったことも起こる。

WEBの環境

 WEBはサーバー/クライアント方式で成り立っており、サーバーとクライアントの技術はWEBの環境への影響が大きい。

サーバー

 サーバーはサーバーマシンとサーバーソフトで構成される。
 サーバーマシンは基本的にはパソコンのような他のコンピューターと同じ構成である。多数のクライアントからリクエストを受けてレスポンスを返さなくてはいけないので、負荷に対し強い耐久性を持っている。障害が起きてもすぐに復旧する仕組みなども持っている。
 サーバーにも、WindowsやLinux、UNIXといったOSが備わっている。パソコンなどで使われるOSより、保守性や安定性が要求される。その他のソフトウェアとして、特定のプログラミング言語で書かれた指示を実行するためのWEBサーバー、データベースソフトやメールサーバー、ファイルを設置するためのFTPサーバーなどがある。

クライアント

 WEBサイトを閲覧するために、クライアント側ではWEBブラウザが利用される。WEBブラウザはアプリケーションソフトである。
 WEBブラウザはサーバーから受け取った情報を視覚的に最適化されるよう処理(レンダリング)し、画面に表示する。サーバーから受け取る情報は主にHTMLという文書ファイルである。HTMLを解析し、テキストなどを画面上に配置する。そのデザインに関してはHTMLが参照しているCSS(Cascading Style Sheet)に書かれている通りに表現する。HTMLの該当部分で参照される画像を配置することも出来る。また、javascriptを使えば、クライアント側で動くプログラムを実行することが出来る。
 WEBブラウザによってレンダリングの仕方が異なるため、ブラウザによって表示が変わっていたりする。
 情報の閲覧だけではなく、情報の登録(ECサイトにおける注文などを含む)も行う為、WEBブラウザは単なるビューワーソフトではなく、WEBシステムとのインターフェイスも兼ね備えている。

WEBプログラミング

 WEBシステム、WEBページを機能させるために、プログラミングが行われる。
 現在はWordPressなどのオープンソースのCMSやjQueryなど自由に使えるソースが多い。だが、それら全て自由に使えるかどうかは確認が必要である。
 加えて、画像などもWEB上にあるもの全てが素材ではない。

サーバーサイドプログラミング

 サーバーからクライアントに送る情報を加工するため、またクライアントからフォームを通じて送られた情報を処理するためにはプログラムを実行させなければならない。
 現在WEBプログラムの開発はPHP,Perl,ASP.NET,java,Ruby,Node.jsといったプログラミング言語が使われる。それらの言語を理解できるソフトウェア、WEBサーバーと連携して動く。プログラムをWEBサーバー上で実行するためにCGIというインターフェイスがある。どのプログラムを実行するか、またはしないかをURLを基に判断される。代表的なWEBサーバーとしてはApacheとIISなどがある。
 ユーザーから受け取った情報を保存するにはWEBサーバーを通じて、データベースに保存される。
 WEBプログラムにはオープンソースソフトウェアという、公開されているソースコードが使われることがある。それらは公開されているとはいえ、高品質である。Linux,Apache,MySQL,PHPの組み合わせ(LAMP)は良く使われる。知識を公開し、共有することでWEBの技術は発展してきた。
 また、フレームワークやライブラリ、APIといったものを利用することで、開発効率が向上する。

クライアントサイドプログラミング

 WEBプログラミングにはクライアント側で動くプログラムもある。javascriptファイルなどから、ソースをWEBブラウザが読み込み実行する。WEBブラウザによって、挙動が変わることもある。クライアント側単独で動くため、WEBサーバーに負担をかけない。その代わり、クライアントには負担をかける。パソコンはスペックが向上しているが、スマートフォンなどのデバイスで動くかどうかという問題もある。
 クライアントサイドプログラムにより、使いやすさが向上するので、現在のWEBサイトでは必須のプログラムである。

セキュリティ

 情報を扱う上でセキュリティには気をつける必要がある。

情報流出

 個人情報の流出はWEBサイトを制作する上で最も気をつけなくてはいけない。何らかの情報を送信する際、クライアントからサーバーのネットワーク上で、悪意あるユーザーにその情報を抜き取られることがある。そうなることを防ぐために、個人情報を取り扱うサイトでは最低でもSSLによる暗号化通信などを行う必要がある。セキュリティーが確保されたHTTP通信をHTTPSと言う。
 そもそも、情報流出は、情報を管理する人間によるミス、もしくは悪意で起こることが多い。パスワードを分かりにくいものにしたり、端末に二重ロックをかけたり、情報管理を一人に任せないなどの対策が必要だ。

WEBサイトへの攻撃

 WEBサイトの改ざんなど攻撃も珍しいことではない。情報流出にもつながるので対策が必要である。代表的には以下の方法がある。

SQLインジェクション

データベースを不正に操作する攻撃。対策としてはSQLを埋め込む所で特殊文字をエスケープ処理することなどがある。

クロスサイトスクリプティング(XSS)

入力を画面に表示する箇所で、スクリプトを埋め込みサーバーに被害を与える攻撃。対策として、入力値のチェック、特殊文字のサニタイズなどがある。

クロスサイト・リクエスト・フォージェリ

攻撃用のWEBサイトにアクセスした際に、攻撃者が用意した不正なHTTPリクエストを送信させられる攻撃。対策として外部サイトからのPOSTリクエストを遮断し、ユーザーチェックを行うことなどが挙げられる。

ディレクトリ・トラバーサル

WEBサーバー上にあるアクセスできないはずのファイルにアクセスする攻撃。対策として相対パスを絶対パスに変換したり、ファイルの権限を正しく設定することなどがある。

HTTPヘッダインジェクション

不正にHTTPヘッダを挿入する攻撃。対策としてはHTTPヘッダ出力用のAPIを使用したり、改行コードのエスケープなどがある。

お問い合わせはこちら

 東京都内からも近い千葉県の船橋駅近くで文系向けプログラミングスクール(個別指導)を開講しています。未経験WEB担当者の育成にもお役立てください。
お気軽にお問い合わせください。
千葉県のsomosomoプログラミングスクール

文系プログラミングスクール教材一覧

文系プログラミングスクール
HTML5認定試験対策講座