Webプログラミング入門

トップ > アラカルト > Webプログラミング入門

技術のあれこれ

CGI だの SSI だの JavaScript だの ASP だのいろいろあるけど、それぞれどういう違いがあるのか、Web で用いられるプログラミング技術全般についてまとめてみました。

分類

それぞれの技術を表にすると次のようになります。

技術 動作 言語 形式 開発
JavaScript C(S) JavaScript系 P Netscape
JScript C(S) JavaScript系 P Microsoft
VBScript C(S) VisualBasic系 P Microsoft
PerlScript C Perl P ActiveState
DHTML C JavaScript系等 P Microsoft
Netscape
CGI S 非依存 S NCSA
SSI S 非依存 P NCSA
PHP S PHP P ???
ASP S VisualBasic系 P Microsoft
JSP S Java P Sun
Servlet S Java S Sun
技術 - 技術名。
動作 - サーバ(S)側で動作するか、クライアント(C)側で動作するか。
言語 - 使用される言語。
形式 - 埋めこみ形式。P はページの中にスクリプトを埋めこむ形式、S はスクリプトやプログラムの中でページを書き出す形式を意味します。
開発 - その技術を開発した会社。

JavaScript

◆ JavaScript とは

JavaScript に関する詳細は「とほほの JavaScript 入門」を参照してください。

◆ JavaScript を動かすのに必要なもの

JavaScript(=Client Side JavaScript)を動かすには、Internet Explorer 3.0 以降、Netscape Navigator 2.0 以降のブラウザがあればOKです。Server Side JavaScript を動作させるには、Netscape Web Server(現在は iPlanet Web Server)など、Server Side JavaScript をサポートしている Web サーバーが必要です。

◆ JavaScript(Client Side JavaScript)の例

下記のコードを test.htm に保存して、IEなどのブラウザで表示してください。

<html>
<head><title>JavaScript Sample</title></head>
<body>
<script>
document.write("Hello World!!");
</script>
</body>
</html>
◆ Server Side JavaScript の例

下記のコードを test.htm に保存して、Server Side JavaScript をサポートした Web サーバー経由で読み出してください。

<html>
<head><title>JavaScript Sample</title></head>
<body>
<server>
write("Hello World!!");
</server>
</body>
</html>
◆ JavaScript の参考リンク

JScript

◆ JScript とは

Netscape 社の JavaScript を真似て、Microsoft 社が自社の Internet Explorer 3.0 に実装したのが JScript です。細かな仕様のや機能の豊富さに差異はあるものの、基本的には同じものです。面子の問題からか、商標の問題からか、Microsoft 社は「JavaScript」という用語を使用していません。

現在、JScript 自体は ECMAScript をベースとした純粋な言語仕様となっており、サーバー/クライアントを問わず、動作します。ファイルの読み書きも可能ですが、ページ上に張りつけられた状態では利用できないようになっています。JScript をベースに、ウェブ上の機能と組み合わせたものを、Microsoft 社は「ActiveScript」とか「DHTML(Dynamic HTML)」とか呼びたがっているようですが、利用者の大半は「JavaScript」と呼んでいます。

◆ JScript を動かすのに必要なもの

JScript をブラウザで動かすには、IE3.0 以上のブラウザが必要です。JScript を純粋な言語仕様としてコマンドラインで動かすには、WSH の環境(wscript.exe や cscript.exe)が必要です。

◆ JScript のサンプル(*.htm)
<html>
<head><title>JavaScript Sample</title></head>
<body>
<script>
document.write("Hello World!!");
</script>
</body>
</html>
◆ JScript のサンプル(*.js)

下記の内容を test.js に保存し、MS-DOS コマンドプロンプトから、「cscript.exe test.js」と実行してください。

WShell.Echo("Hello World!!");
◆ 参考文献

VBScript

◆ VBScript とは

JScript と同時に Microsoft 社が IE3.0 に実装したのが VBScript です。Visual Basic をベースとした言語を用います。JScript と同様、現在は WSH の言語エンジンのひとつとして実装されており、純粋な言語仕様としても動作します。

◆ VBScript を動かすのに必要なもの

ブラウザで動かすには IE3.0 以降のブラウザが必要です。コマンドラインで動かすには WSH の環境(wscript.exe や cscript.exe)が必要です。

◆ VBScript のサンプル(*.htm)
<html>
<head><title>VBScript Sample</title></head>
<body>
<script type="text/vbscript">
<!--
document.write "Hello World!!"
' -->
</script>
</body>
</html>
◆ VBScript のサンプル(*.vbs)

下記の内容を test.vbs というファイルで保存し、MS-DOS コマンドラインから「cscript.exe test.vbs」と実行してください。

WScript.Echo "Hello World!!"
◆ 参考文献

WSH(Windows Scripting Host)

◆ WSH とは

Windows 98 でサポートされた、スクリプト実行環境です。言語エンジンを拡張することで、複数の言語をサポートすることができます。標準では、JScript と VBScript がサポートされています。他にも、PerlScript、TclScript などが存在します。

WSH という言語エンジン実行環境があり、JScript、VBScript、PerlScript などの各種言語エンジンがあり、これをサーバー側で実行するのが ASP、クライアント側のブラウザ上で実行するのが ActiveScript、ActiveScript をベースにしたブラウザ上のインタラクティブ技術を DHTML と呼ぶというのが関係図のようです。

JScript VBScript PerlScript :
WSH
─(Server)→ ASP
─(Browser)→ ActiveScript → DHTML

WSH の登場により、プログラミング言語の壁を超えたオブジェクト定義、オブジェクト利用が今までよりも容易になりました。ここらへんは、DDE → OLE → COM → DCOM → ActiveX → .NET と名前を変えてきた Microsoft の基本ポリシーのようです。

◆ WSH を実行するには

WSH のスクリプトを実行するには、cscript.exe または wscript.exe を用います。前者はコマンドラインインタフェース用、後者はウィンドウベースインタフェース用です。Windows 98 以降には標準でサポートされています。

◆ WSH のサンプル

JScript や VBScript の説明の *.js や *.vbs のサンプルを参照してください。

PerlScript

◆ PerlScript とは

WSH 上で動作する言語エンジンのひとつに PerlScript があります。Windows 版の Perl を開発・配布していた ActiveState 社に Microsoft 社が資金援助して開発しました。

◆ PerlScript を動かすには

ActiveState 社から Windows 版の Perl である ActivePerl を入手してインストールし、下記のサンプルを IE4.0 以降のブラウザで開きます。

◆ PerlScript のサンプル(*.htm)
<script type="text/perlscript">
$window->document->write("Hello world!!");
</script>

CGI

◆ CGI とは

CGI については「とほほのCGI入門」を参照してください。

◆ CGI のサンプル(Perl の場合)(hello.cgi)
#!/usr/bin/perl

print "Content-type: text/html\n";
print "\n";
print "<html>\n";
print "<head><title>CGI Sample</tltle></head>\n";
print "<body>Hello World!!</body>\n";
print "</html>\n";
◆ CGI のサンプル(C言語の場合)(hello.exe)
#include <stdio.h>

void main()
{
    printf("Content-type: text/html\n");
    printf("\n");
    printf("<html>\n");
    printf("<head><title>CGI Sample</tltle></head>\n");
    printf("<body>Hello World!!</body>\n");
    printf("</html>\n");
}

SSI

◆ SSI とは

SSI については「とほほのSSI入門」を参照してください。

◆ SSI のサンプル(hello.shtml)
<html>
<head><title>SSI Sample</title></head>
<body>
This page was last modified at
<!--#echo var="LAST_MODIFIED" -->
</body>
</html>

PHP

◆ PHP とは

PHP は「PHP:Hypertext Preprocessor」の略で、先頭の PHP がまた「PHP: Hyper...」の略という再帰的頭字語になっています。ASP や JSP と同様、処理はサーバー側で行います。構文は Perl に似ています。拡張子は .php や .php3 など。処理のたびに別プロセスを起動することがなく高速で、Web に関連した記述性も高く、PHP ファンも多いようです。

◆ PHP を動かすのに必要なもの

PHP モジュールを組みこんだ Webサーバーが必要です。Apache や IIS などに組みこみ可能な PHP モジュールが「The PHP Group」から無償で提供されています。Windows のフリーソフト AnHTTPD にも組みこめます。また、PHP をサポートするプロバイダも少なからず存在しています。

◆ PHP のサンプル(hello.php)

PHP は何通りかの書き方があります。一般的には <? ... ?> を使用するケースが多いようです。

<html>
<head><title>PHP Sample</title></head>
<body>
<? echo "Hello World!!"; ?>
<% echo "Hello World!!"; %>
<?php echo "Hello World!!"; ?>
<script language="php"> echo "Hello World!!"; </script>
</body>
</html>
◆ 関連リンク

ASP

◆ ASP とは

Active Server Pages の略で、Microsoft 社が独自に開発した技術です。JSP などと同様、サーバー上で Web サーバーが HTML 文書を解釈してスクリプト部分を実行して、その結果を反映したものをクライアントに送ります。

◆ ASP を動かすには

ASP をサポートしている Web サーバーが必要です。Microsoft 社の IIS(Internet Information Service)や PWS(Personal Web Server)が ASP をサポートしています。

◆ ASP のサンプル(hello.asp)
<html>
<head><title>ASP Sample</title></head>
<body>
<%
  Response.Write("Hello World!!")
%>
</body>
</html>

Java

◆ Java とは

「ジャバ」と読みます。Java は Sun Microsystems 社が開発しました。Java 自体は、C言語、FORTRAN、COBOL などと同様の、単なるプログラミング言語仕様です。この Java を用いて開発されるプログラムの形態として「Java Applet」、「Java Servlet」などがあります。また、HTML ページ中に、Java 言語で記述されるプログラムを埋めこむ技術として「JSP」があります。

◆ Java のアプリケーションを作成するには

JDK(Java Development Kit)と呼ばれる開発環境が必要です。JDK は Sun のサイトから無償でダウンロードできます。

◆ Java のサンプル(HelloWorld.java)
class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!!");
    }
}
◆ コンパイル方法

HelloWorld.java ファイルを javac コマンドでコンパイルすると、中間言語ファイル HelloWorld.class が生成されます。

javac HelloWorld.java
◆ 実行方法
java HelloWorld

Java Applet

◆ Java Applet とは

「ジャバアプレット」と読みます。let は「小さなもの」を意味し、「Java 言語で記述され、クライアント側(アプリケーション側)で動作する小さなプログラム」という意味から「Java Applet」と名づけられました。Applet クラスのサブクラスとして定義することにより、ブラウザのページ上で実行することが可能になっています。

◆ Java Applet を作成するには

JDK があれば開発可能です。通常の Java アプリケーションと同様にコンパイルしてください。

◆ Java Applet のサンプル(HelloWorld.java)
import java.awt.Graphics;

public class HelloWorld extends java.applet.Applet {
    public void paint(Graphics g) {
        g.drawString("Hello World!!", 50, 50);
    }
}
◆ 呼び出し方法(JavaAppletTest.htm)
<html>
<head><title>Java Applet Test</title></head>
<body>
<applet code="HelloWorld.class" height=100 width=200></applet>
</body>
</html>

JSP(JavaServer Pages)

◆ JSP とは

HTML に埋めこんだスクリプトがサーバー側で実行される点は PHP、ASP に似ています。異なるのは言語に Java を用いているということでしょうか。

◆ JSP を実行するには

JSP を実行するには、Tomcat(Apache-Jakata)、JRun(マクロメディア)、WebLogic(BEA)、WebSphere(IBM)、iPlanet(Sun&Netscape)など、JST をサポートする Web サーバーが必要です。

◆ JSP のサンプル(hello.jsp)
<html>
<head><title>JSP Sample</title></head>
<body>
<%
  out.println("Hello World!!");
%>
</body>
</html>
◆ 関連リンク

Servlet

◆ Servlet とは

クライアント側(アプリケーション側)で動作するのが Applet、サーバー側で動作するのが Servlet です。Java 言語を用いて作成されます。単に Java 言語で作成した CGI プログラムは Servlet とは呼びません。HttpServlet クラスのサブクラスとして定義され、Web サーバーと HttpServlet の機能を用いて情報の伝授を行うのが Servlet です。

Servlet はサーバー上の Java VM 上で動作し、一度ロードされると常駐するので、毎回プロセスを起動する CGI よりも効率が優れていると言われています。(最近は CGI でも毎回プロセスを起動しない方式もあるようですが・・・)

◆ Servlet を動かすには

Java Servlet をサポートする Web サーバーが必要です。JSP をサポートする Web サーバーは、大半が Java Servlet をサポートしているのではないでしょうか。

◆ Servlet のサンプル(HelloWorld.java)

下記のファイル HelloWorld.java を Java のコンパイラ(javac)を用いてコンパイルすると HelloWorld.class が作成されます。これを、サーバーの指定の場所に置いておきます。あとは、http://~/~/HelloWorld の URL を呼び出すことで実行されます。Servlet の場合、.jsp や .asp や .cgi のような決まった拡張子は無いようです。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {
    public void doGet (HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>\n");
        out.println("<head><title>Servlet Sample</title></head>");
        out.println("<body>");
        out.println("Hello World!!");
        out.println("</body>");
        out.println("</html>");
        out.close();
    }
}

Web関連技術マップ

├□ クライアント側技術
│├□ HTML(HyperText Markup Language)
│├□ DHTML(Dynamic HTML)
││├□ Microsoft系
│││├□ ActiveScript
││││└□ WSH(Windows Scripting Host)
││││ ├□ JScript
││││ ├□ VBScript
││││ ├□ PerlScript
││││ └□    :
│││├□ Style Sheet
││││├□ Filter
││││└□ Transition
│││├□ IE Object Model
│││└□ Dynamic Fonts
││├□ Netscape系
│││├□ Client Side JavaScript
│││├□ Netscape Layer Model
│││├□ Style Sheet
││││├□ CSS(Cascading Style Sheets)
││││└□ JSSS(JavaScript Style Sheets)
│││└□ Dynamic Fonts
││└□ 共通
││ └□ DOM(Document Object Model)
│├□ XHTML(eXtensible HTML)
│├□ XML(eXtensible Markup Language)
│├□ CSS(Cascading Style Sheets)
│├□ Java Applet
│├□ ActiveX
│├□ Data Binding
│├□ VML(Vector Markup Language)
│└□ プラグイン
│ ├□ Flash
│ ├□ RealMedia
│ ├□   :

└□ サーバー側技術
 ├□ ページの中にスクリプトを埋めこむ形式
 │├□ SSI(Server Side Include)
 │├□ SSJS(Server Side JavaScript)
 │├□ PHP
 │├□ JSP(Java Server Pages)
 │└□ ASP(Active Server Pages)
 │ └□ WSH
 │  ├□ JScript
 │  ├□ VBScript
 │  └□  :
 └□ プログラムからページを書き出す方式
  ├□ CGI(Common Gateway Interface)
  │├□ Perl
  │├□ C言語
  │├□ C++
  │└□  :
  └□ Java Servlet
 言語仕様による分類
├□ JavaScript系
│├□ ECMAScript(ECMA-262)
│├□ Netscape系
││├□ Core JavaScript
││├□ Client Side JavaScript
││└□ Server Side JavaScript
│└□ Microsoft系
│ ├□ Client Side JScript(→ DHTML)
│ └□ Server Side JScript(→ ASP)
├□ VisualBasic系
│└□ VBScript
│ ├□ Client Side VBScript(→ DHTML)
│ └□ Server Side VBScript(→ ASP)
├□ Perl系
│└□ PerlScript
├□ Java系
│├□ Java Application
│├□ Java Applet
│├□ Java Servlet
│└□ JSP
├□ XML系
│├□ XHTML
│├□ 
└□ その他
 ├□ Tcl
 ├□ Ruby
 ├□  :

Copyright (C) 2002 杜甫々
初版:2002年3月3日、最終更新:2002年3月6日
http://www.tohoho-web.com/wwwxx036.htm