Webプログラム


プログラム言語
参考文献:「インターネット&Webしくみ辞典」(アイドゥ+スマートイメージ)

基本概念

Webプログラムの必要性

  • HTMLだけで構成されているページだと,ただWeb上で静的に表示させるだけ
    • Webプログラムを組み合わせて動的なWebページにするために必要

分類

プログラム実行場所

クライアントサイド方式

  • ユーザのPCにダウンロードされて実行する
    • マウス操作など,クライアント側に対応した処理が可能
    • サーバに負荷がかからない
    • ダウンロードが手間
  • 言語
    • Java Script
    • VBScript
    • Java
  • プログラム
    • スクリプト
    • Javaアプレット

サーバーサイド方式

  • サーバ側でプログラムが実行され,結果をHTMLにしてクライアントに送る
    • サーバのデータベースの中から必要なデータだけを表示するとか
    • 掲示板もサーバ側でデータが蓄積されるのでサーバーサイド方式
  • 言語
    • Perl
    • Ruby
    • PHP
    • Java
    • C
  • プログラム
    • CGI
    • SSI
    • ASP
    • JSP
    • Javaサーブレット

言語の分類

スクリプト言語

  • インタプリタ方式
    • HTMLの中に直接プログラムを書く
    • Webブラウザがプログラム部分も1行ずつ処理する
  • ただし,ブラウザがその言語に対応していないとダメ

プログラム言語

  • コンパイル方式
    • ダウンロードして,機械語にコンパイルされる言語
    • 実行速度はスクリプト言語より速い

言語の種類


クライアントサイド方式

Java Script

  • スクリプト言語
    • Javaとは違うが,文法が似ている
  • NetscapeとSun Microsystemsの共同開発
    • 当初はNetscapeにしか対応してなかった
      • 今では主なWebブラウザで実行可能
  • HTML文書の中に埋め込む
    <script language="text/javascript">
    <!--
    Javaのプログラム
    //-->
    </script>

VB Script

  • スクリプト言語
    • Visual Basicで作る
  • Microsoftの開発
    • Internet Explorerに実行するためのインタプリタが組み込まれている

Javaアプレット

  • プログラム言語
    • クライアントのWebブラウザ上で動作
  • Sun Microsystemsが開発した
    • Javaプログラム

サーバサイド方式


CGI*1

  • 言語ではなくしくみ
    • Webサーバでプログラムを呼び出して実行する
  • しくみ
    • クライアントからサーバにリクエストを出す
    • サーバはさらにそのリクエストをCGIに渡す
    • CGIが処理をする
      • まずApache(mod_cgi)がリクエストを受け取る
      • そしてWebプログラムに渡し,実際の処理が行われる
      • 結果をApacheが受け取り,サーバに返す
    • サーバはCGIから受け取った処理をクライアントへ返す
  • 中身のWebプログラムの言語は何でも良い
    • Perl*2
      • 最も多く利用される
      • UNIX用に開発されたインタプリタ型のプログラミング言語
      • C言語に似ている
    • Ruby
      • スクリプト言語とその実行環境
      • フリーウェア
      • 強力なテキスト処理能力とシンプルな文法体系
    • その他
      • C
      • Visual Basic
  • 問題点
    • HTMLファイルと別にWebプログラムが必要となる
      • 埋め込み式ならHTMLファイル1つで済むのに
    • 1ユーザに1回の処理なので,多ユーザの場合に大変

PHP*3

  • スクリプト言語
  • Webサーバ自体の機能を拡張
    • Webアプリケーション開発言語と実行環境を指す
  • 埋め込み型
    • HTMLファイルの中に
      <? PHPのプログラム ?>
  • データベースとの連携が強い

SSI*4

  • CGIに似た動き
  • HTMLファイルの中にSSIとして実行するコマンドそのものを書く
    • Webサーバは自動的にそれを実行
    • 処理結果がSSIコマンドと置き換えられてそこに表示される
  • ページの一部表示に便利
    • サーバの日付
    • ファイルの最終更新日の表示

ASP*5

  • CGIの進化版
  • Microsoftにより開発される
    • Windows上で構築されたサーバ上のWebページを動的に作成する技術
  • スクリプト言語
    • VBScriptとJavaScriptで書かれる
      • 本来はクライアント式だが,ASPとして書かれるとサーバサイド式になる
    • Visual BasicやPerlでも書けるが相性がこっちのがいい
  • Microsoftのデータベースソフトと連携できる
    • SQL Server
    • Access
  • WebサーバのIIS*6に処理結果がいく
    • Microsoftのサーバ統合ソフトウェア
    • UNIX系のOSでは無理

JSP*7 & Servlet

  • JSP
    • HTMLの中に埋め込むスクリプト言語(.jsp)
  • Servlet
    • サーバ側で動くJavaプログラム(.java)
  • サーバでの処理
    • クライアントから受け取ったリクエストをコンテナを介してJSPやServletに
    • まずJSPページでリクエストを変換する
    • 変換したリクエストをServletに渡す
    • Servletでの実行結果をHTMLにしてクライアントに返す
  • それぞれの特徴
    • JSP
      • 埋め込むので,長い処理ではHTMLが冗長になってしまう
      • 表示のみならば,HTMLへのスクリプト言語なので良い
    • Servlet
      • プログラムなので小さな処理だといちいちHTMLタグにして送るのは面倒
      • 大きな処理なら,プログラムとして処理するので効率的
  • Javaの利点
    • プラットフォームに関係なくVM*8があれば動く
    • 一度Javaファイルからコンパイルしてしまえば次からすぐ実行出来る
    • EJB*9でデータベースで大規模アプリケーションを管理出来る

*1 Common Gateway Interface
*2 Practical Extraction and Report Language
*3 Hypertext Preprocessor
*4 Server Side Include
*5 Active Server Pages
*6 Internet Information Service
*7 Java Server Pages
*8 Virtual Machine
*9 Enterprise Java Beans