約 188,905 件
https://w.atwiki.jp/draemonash/pages/37.html
ここを編集 インストール (参考 http //windowss7.web.fc2.com/special/cygwin/ ) こちら より setup-x86_64.exe をインストール setup-x86_64.exe を実行しインストールする。(パッケージは必要なものだけでよい。) setup-x86_64.exe を C \cygwin に移動(パッケージの再インストールのため) .bashrc に以下を加える (XXXはユーザ名) alias cdh= cd C /Users/XXX/Desktop システム環境変数 に以下を加える。 set CYGWIN=ntsec tty set HOME=/home/kakuchan set MAKE_MODE=UNIX set SHELL=/bin/bash 完了!(環境変数 HOME の値は、 自分のホームディレクトリを指定するので、適当な値に変更してください) アンインストール cygwin フォルダ削除 regedit より以下を削除 HKEY_LOCAL_MACHINE/SOFTWARE/Cygnus Solutions HKEY_CURRENT_USER/Software/Cygnus Solutions Tips バッチシェル 実行 sh XXX.sh 注意! シェルは必ずUNIXの改行コードとすること! リダイレクト $XXX result.txt ※Windows のリダイレクト方法と同じ Grep 実行例) grep -nr ^volatile.*XXX.* C /Users/XXXXXX/Desktop/a --include= *.c 日本語使用方法 Cygwin 画面上右クリック ⇒ Options Text ⇒ Font ⇒ Select ⇒ MS ゴシック Text ⇒ Locale ⇒ ja_JP Text ⇒ Character set ⇒ UTF-8 ここを編集
https://w.atwiki.jp/pokese/pages/13.html
Oracle10g インストール準備 1.グループの作成 以下のグループを作成する。 oinstall ORACLEインストール用グループ dba ORACLE管理用グループ oper ORACLEオペレータ用グループ ※operはオプションのため作成は任意 グループの登録状態を確認し未登録のグループを作成する。 $ su - # cat /etc/group | more 必要なグループを作成する。 # groupadd oinstall # groupadd dba # groupadd ope 2.ユーザの作成 以下のユーザをを作成する。 ユーザ名 グループ 内容 oracle oinstalldba ソフトウェア・データベース管理者 dbadm dba データベース管理者 ユーザの登録状態を確認し未登録のユーザを作成する。 $ su - # cat /etc/passwd | more 必要なユーザを作成する。 # useradd -G oinstall,dba oracle # useradd -g dba dbadm 3.マウント・ポイントの作成 以下のマウント・ポイント(インストール先)を作成する。 /u01 ソフトウェアのマウント・ポイント /u02 データベースのマウント・ポイント マウント・ポイントを作成する。 $ su - # mkdir /u01 /u02 作成したディレクトリに対して権限を設定する。 # chown -R oracle oinstall /u01 /u02 # chmod 755 /u1 /u2 4.環境変数の設定 以下の環境変数を設定する。 環境変数 内容 設定例 ORACLE_OWNER Oracleのインストール・稼働ユーザ oracle ORACLE_BASE 管理ファイルがインストールされている上位ディレクトリ /u01/app/oracle ORACLE_HOME Oracleのコンポーネントがインストールされているディレクトリ $ORACLE_BASE/product/バージョン番号 ORACLE_SID インストールに使用するシステム識別子 orcl ORA_NLS33 英語以外の言語の格納先 $ORACLE_HOME/ocommon/nls/admin/data ORACLE_TERM 端末タイプ vt100 ORACLE_DOC ドキュメントのインストール先 $ORACLE_HOME/doc PATH 実行ファイルの格納先 $ORACLE_HOME/bin LD_LIBRARY_PATH 共有ライブラリ格納先 $ORACLE_HOME/lib ULIMIT ハード・ソフトウェアの利用制限 (不明) NLS_LANG メッセージの表示言語 Japanese_Japan.JA16EUC CLASSPATH Javaクラスファイル格納先 $ORACLE_HOME/JRE DYSPLAY インストーラーに表示される名称 0 ※全てを設定する必要はありません。 環境変数はOracleユーザの .bash_profile へ設定します。 $ cd $ vi .bash_profile 設定例 # Oracle Enviroment export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/10.1.0 export ORACLE_SID=orcl export NLS_LANG=Japanese_Japan.JA16EUC export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export ORACLE_DOC=$ORACLE_HOME/doc export PATH=$PATH $ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib $LD_LIBRARY_PATH export CLASSPATH=$ORACLE_HOME/JRE $ORACLE_HOME/jlib $ORACLE_HOME/rdbms/jlib $ORACLE_HOME/network/jlib ※PATHと$LD_LIBRARY_PATHは既存の設定に追加しています。 設定内容を反映します。 $ cd $ source $HOME/.bash_profile 反映が完了したら export コマンドで設定されているか確認します。 5.カーネルの調整 インストール時のエラー回避のためにカーネル・パラメータを調整します。 カーネル・パラメータは rc.local ファイルを修正します。 $ su - # vi /etc/rc.d/rc.local 以下の行を追加します。 # oracle setting echo 250 32000 100 128 /proc/sys/kernel/sem echo 268435456 /proc/sys/kernel/shmmax echo 65536 /proc/sys/fs/file-max ulimit -n 65536 echo 1024 65000 /proc/sys/net/ipv4/ip_local_port_range ulimit -u 16384 設定が終わったらLinuxを再起動すると設定が反映されます。 参考資料 VineLinuxにOracleをインストールする(その1) Redhat9へのOracle9.2インストール Oracle10gマスタリングハンドブック
https://w.atwiki.jp/r1025/pages/28.html
「システムのプロパティ」 で [リモート] タブが表示されない 復元方法 %SystemRoot%\System32\remotepg.dll を右クリックして、[プログラムから開く] をクリック。 [プログラムから開く] をクリックし、[一覧からプログラムを選択する]、[OK] の順にクリック。 [参照] をクリックし、%SystemRoot%\System32\regsvr32.exe の場所まで移動して、このファイルを選択。 [開く]、[OK] の順にクリックし、[OK] をもう一度クリック。 %SystemRoot% → C \windows とか E \windows など トータル: - /今日: - /昨日: -
https://w.atwiki.jp/a3mi22/pages/29.html
シェルコマンド cd ディレクトリを移動する。 例 #cd ホームディレクトリに移動。 #cd /usr/local /user/localディレクトリに移動。 #cd ../ ひとつ上のディレクトリに移動。 #cd a* aから始まるディレクトリに移動。 echo 文字列や変数の内容を表示する。 例 #echo $PATH PATHを表示 #echo $ 直前に行ったコマンドが成功したかを確認 成功 0 失敗 1 export 環境変数を設定する。 例 #PATH=/usr/local/bin #export PATH 新しく環境変数つくるときとか。 #PATH=/usr/local/bin $PATH 元々PATHがあって、変数を追加したいときとか。 nohup ログアウトしてもプログラムを実行し続ける。 処理中に出力されたメッセージは"nohup.out"に保存される 例 #nohup ./broker.sh broker.shをログアウトしても実行し続けるようにする。 ps プロセスの状態を表示する 例 #ps -efl | grep broker brokerプロセスの状態を表示する オプション -e すべてのプロセスを選択 -f プロセスの親子関係をツリー状に表示する -l より詳細な情報を表示する #ps a 全ユーザのプロセスの状態を一覧表示する オプション a 全ユーザのプロセスの状態を表示する 合計: -
https://w.atwiki.jp/m_shige1979/pages/338.html
データベースユーザー作成 前提条件 Postgresユーザー用の環境変数を読み込んでいること データベースに接続していること。 書式 オプション 使用例
https://w.atwiki.jp/tri-obog/pages/104.html
アンドロイドアプリ開発環境のいろは アンドロイドアプリを開発する上で必要となる環境やエミュレータ等のインストールに関するメモ。 ここのサイトに書かれている内容をベースに、手順を2011年10月30日時点のものに最新化している。 メニュー 0. はじめに 1. Java SDKのインストール 2. Eclipseのインストール 3. Android SDKのインストール 4. EclipseにAndroid SDKを登録 0. はじめに アンドロイドアプリの開発にはJDK(Java Development Kit)が必要となる。 だが人によっては既にJDKがインストールされている可能性がある。 コマンドプロンプトを立ち上げ、「javac」と入力してEnter。 何やら長ったらしいコメントが返って来たら、JDKは既にインストール済なので2.に飛ぶ。 「 javac は、内部コマンドまたは外部コマンド~」というメッセージが表示されたら、まだインストールされていないので1.から手順を実施する。 1. Java SDKのインストール JDKのインストールについては調べれば詳しく紹介しているサイトが幾らでも見つかるので、手順の概略のみ。 まずSUNのページにアクセス。 「JDKダウンロード」からダウンロードページに飛ぶ。 「Accept License Agreement」をチェックし、利用規約に同意。 インストーラをダウンロードし、ウィザードに従ってインストールを進める。 ここで、JDKをインストールしたフォルダは覚えておくと良い。 インストールが完了したら環境変数に手を加える。 「システムのプロパティ」を開く。 XPであれば「スタート→マイ コンピュータを右クリック→プロパティ」、 7であれば「スタート→コンピューターを右クリック→プロパティ」で「システム」が開くので、左側のメニューにある「システムの詳細設定」をクリック。 (いずれにせよ、Wiondowsキー+pause/breakのショートカットキーで立ち上がるのだが) 「詳細設定」タブを選択し、一番下の「環境変数」をクリックすると別ウィンドウが立ち上がる。 下の「システム環境変数」のリストの中から「path」を選択し、「編集」ボタンをクリック(「path」をダブルクリックでもOK)。 「変数値」の末尾に「;」を追加し、その後ろに先程JDKをインストールしたフォルダ内の「bin」フォルダのパスを追記する。 (例えば、「C \Program Files\Java\jdk1.6.0_24」にインストールをしていれば、「C \Program Files\Java\jdk1.6.0_24\bin」のように) 再度コマンドプロンプトを立ち上げ、「javac」と打ち込んで長ったらしいメッセージが返って来たらインストールは完了。 2. Eclipseのインストール Javaの統合開発環境であるEclipseをインストールする。 http //mergedoc.sourceforge.jp/から、「Eclipse 3.7 Indigo Pleiades All in One」を選択。 「Java」のダウンロードを選択し(JREの有無はどちらでも良いが、自分は無しにした)、zipをダウンロード。 適当なフォルダ(例えば、「C \Program Files」など)に解凍するだけで良い。 デスクトップなどにショートカットを作っておくと便利。 これで、Javaプログラムを開発する環境は整う。 3. Android SDKのインストール http //developer.android.com/sdk/index.htmlにアクセス。 OSに合ったものをダウンロード。windowsの場合、Recommendedとなっているのでexe版が良いのでは。 ダウンロードできたらあとはインストーラに従えば良い。zip形式の場合は適当なフォルダに展開。 インストールが完了したら、環境変数に値を追加する。 1.を参考に環境変数の設定画面を開き、末尾に「;」を加え、その後ろにAndroid SDKをインストールしたフォルダ配下の「tools」を指定する。 (例えば、「C \Program Files\Android\android-sdk」にインストールしたら、「C \Program Files\Android\android-sdk\tools」を指定) これでAndroid SDKのインストールも完了。 4. EclipseにAndroid SDKを登録 EclipseでAndroid SDKを使えるようにする。 Eclipseを起動し、「ヘルプ→新規ソフトウェアのインストール」 「作業対象」の欄に「http //dl-ssl.google.com/android/eclipse/」を入力し、「追加」→「次へ」 次に「ウィンドウ→設定」新しくウィンドウが立ち上がるので、左のメニューから「Android」を選択。 「SDKロケーション」にAndroid SDKをインストールしたフォルダを指定し(3.の例だと「C \Program Files\Android\android-sdk」)、「適用」→「OK」 これでAndroid SDKの登録は完了。 次にAndroid SDKをEclipseにダウンロード。 ツールバーにボタンがあるのでそれをクリック。 (こんなボタン) 新しくウィンドウが立ち上がるので、「install * package.」というボタンが選べるのであれば取り敢えず押してみる。 特に無ければウィンドウを閉じてしまって問題ない。 次に、エミュレータの登録を行う。 ツールバーにボタンがあるのでそれをクリック。 (こんなボタン) 新しくウィンドウが立ち上がるので、「新規」をクリック。 名前は好きに入力して構わない。SDのサイズも適当で良いので、128MBを選択。スキンもこだわりが無ければデフォルトで。 「Create AVD」をクリックしてエミュレータの登録が完了。 最後にアンドロイドのエミュレータが起動するか確認。 先程作成したエミュレータを選択し、「開始」で起動。 起動に30秒~1分程度時間がかかる。 # 勘違いだったら申し訳ない。この手順だと、Eclipseから直にAndroid SDKをインストールすることになって、二重にAndroid SDKをインストールしてしまったようなのだが。依存関係を考える面倒さを考慮すると、Eclipseからのインストールの方が楽? by iTaro 一番上にある通り、この手順は他のページで紹介されているものをベースに書いております。自分の場合は手順4.の「install * package.」のところで特に選べるようなものが無かったのでこのような書きっぷりにしていますが、もしここでインストールをやってくれるのであれば、iTaroさんが書いているように依存関係を自動で設定してくれるEclipseからのインストールの方が良いと思います。取り敢えず、もう少し事例が増えるまで様子見でしょうかね。 -- TECRA (2011-11-13 17 33 04) 前にインストールしたPCではエミュレータが立ち上がるのに1時間単位でかかってしまった。ということで、別PCに再度環境を構築。やはり手順3.は不要の模様。手順4.のとこでeclipseからSDKをインストールできた。 -- iTaro (2011-12-03 19 44 34) 名前 コメント
https://w.atwiki.jp/m_shige1979/pages/900.html
リクエスト取得 GETパラメータの取得 POSTパラメータの取得 GET、POSTパラメータの取得 サーバ環境変数の取得
https://w.atwiki.jp/m_shige1979/pages/331.html
テーブル削除 インスタンスユーザー用の環境変数を読み込んでいること データベースに接続していること。 書式 db2 DROP TABLE テーブル名 使用例 db2 DROP TABLE testtable
https://w.atwiki.jp/0x0b/pages/83.html
CGI(Common Gateway Interface) ウェブサーバ上でユーザプログラムを動作させるための仕組み。現存する多くのウェブサーバプログラムはCGIの機能を利用することができる。 ウェブサーバプログラムの機能の主体は、あらかじめ用意された情報を利用者(クライアント)の要求に応じて送り返すことである。そのためサーバプログラム単体では情報をその場で動的に生成してクライアントに送信するような仕組みを作ることはできなかった。 そこでサーバプログラムから他のプログラムを呼び出し、その処理結果をクライアントに送信する方法が考案された。それを実現するためのサーバプログラムと外部プログラムとの連携法の取り決めがCGIである。 CGIは環境変数や標準入出力の扱える実行環境からであればプログラミング言語の別を問わず幅広く利用できるが、実行速度やテキスト処理の容易さなどの兼ね合いによりPerlが使われることが多かった。近年では、Perlに加えてPython、Rubyなども広く使われている。 代表的なアプリケーションには、電子掲示板、アクセスカウンタ、WikiやBlogシステムなどがある。 近年では、Webサーバのプロセスとしてインタプリタを常駐させておくことにより、CGIからプログラムを呼び出すオーバヘッドを減らし、パフォーマンスを向上させたJava Servletやmod_perl、mod_php、FastCGI、WSGIなどのインタフェース・実装も出現している。 仕様 CGIの仕様はNCSAにより最初に定義・実装(NCSA HTTPdにおいて)され、現在の最新版はCGI1.1である。2004年にRFC 3875となった。 RFC3875 The Common Gateway Interface (CGI) Version 1.1 CGIは、典型的には以下のような動作を期待される。CGIを経由して実行されるプログラムのことを、CGIプログラムと呼ぶ。 CGIプログラムはウェブサーバがクライアントからのリクエストに応じて起動する。 典型的には、ウェブサーバの公開領域に置かれたプログラムに対応するURIへのリクエストがあると、サーバはそのプログラムをCGIの取り決めに従って呼び出す。 CGIプログラムへの情報の入力は、コマンドライン引数、環境変数、標準入力によって行われる。 ウェブサーバがプログラムを呼び出す時点でいくつかの環境変数を定義することが定められている。 特に、クライアントがサーバに要求したURIのうち、検索文字列(Query String)部が環境変数 QUERY_STRING に設定されるので、これはHTMLフォームからGETメソッドで入力を受けるのに便利である。 QUERY_STRINGに文字 = が含まれない場合は、サーバはQUERY_STRINGの内容をコマンドライン引数としてCGIプログラムに渡す。これはHTMLのISINDEX要素を用いて送信された情報を扱うのに便利である。 クライアントからのHTTPリクエストのBODY部はCGIプログラム標準入力に流し込まれる。また、その入力の長さが環境変数CONTENT_LENGTHに設定されている。これはHTMLフォームからPOSTメソッドで入力を受けるのに便利である。 CGIプログラムに対応する仮想パスの後に、更に余分のパスが続いた場合、その情報は環境変数 PATH_INFO に格納され PATH_INFO をウェブサーバの仮想パスと解釈した際に対応すべき物理パスが環境変数 PATH_TRANSLATED に格納される。この方式もまたCGIプログラムにユーザー側からパラメータを渡す目的でよく用いられる。 プログラムが標準出力に出力したデータは、ウェブサーバを経由してクライアントに送られる。このデータは正当なHTTPヘッダで始まらなければならない。 ただし、いくつかの特別なヘッダフィールドは「サーバディレクティブ」として解釈され、ウェブサーバの挙動(ステータスコードなど)に影響を与える。これ以外の全てのヘッダフィールドはそのままクライアントに送信される。 現在のWWWではHTMLが中心的な役割を果たしているので、CGIプログラムはHTMLを出力するケースが圧倒的に多い。 画像データなどを出力することもある(これはアクセスカウンタなどを作る際に使われる)。 The CGI Specification(archive.org) RFC 3875 The Common Gateway Interface (CGI) Version 1.1 RFC 1630 Universal Resource Identifiers in WWW RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1 サーバサイドスクリプト Webプログラミングでは、サーバ側で動作するプログラムとクライアント側で動作するプログラムの両方を開発しなければならない 例としてサーバサイトにつかう言語と環境としてCGI + PerlやPHP、Ruby、Java Servlet + JSP + Enterprise JavaBeans + Spring Framework + Apache Struts(Java EE)、.NET(ASP.NET(C#,VB.NET))などが挙げられる。 サーバサイドでのプログラミングには次のような特徴がある。 アクセスが殺到しやすいウェブサイトではデータベースに高い負荷がかかりがちであるため、その解決のためにDBMSの知識がソフトウェア開発において求められることが多い。さらに金融系や基幹系業務やB2Bなどミッションクリティカルな領域での開発ではフロントエンドだけでなくバックエンドの開発も行うためUNIXやサーバ、ネットワーク、セキュリティ、計算機科学、ソフトウェア工学の知識が求められる事が多い。 またサーバサイドのプログラムでは多くの場合、複数ユーザの操作に応じた処理が同一プロセスのメモリ空間上で行われるので、ユーザごとに適切にメモリ上の情報が分離されるよう意識してプログラミングしなければならない。例えばJava ServletやJSPでクラス変数を不適切に使用して、そのサーブレットにアクセスする複数のユーザがその変数を共有してとんでもない事態に発生するミスも過去に実際起きている。この変数がもし銀行口座の預金残高などに使われていた場合、その事態は顧客やエンドユーザーからの信用を徹底的に失うほど非常に深刻なものとなる。 クライアントサイドスクリプト クライアント側のプログラミングは困難となりがちである。これを省力化するためのライブラリが様々に用意されており、例としてJavaServer Facesの部品として利用可能なライブラリAjaxFaces、JSPカスタムタグライブラリとして導入できるAjaxTags、JSP, JSF両方で利用可能なAjaxAnywhere等がある。なお、これらはいずれもAJAXを実現するライブラリで、これらを用いることでJavaScript等によるクライアントサイドのコードの開発に比重を置くことなく、リッチなウェブアプリケーションを開発できることが期待できる。 クライアントサイドでのプログラミングは、Ajax(JavaScript + XML)のようにウェブブラウザ上で動くプログラミング言語を用いて行われるケースもあるが、近年ではリッチクライアントが登場し、ウェブブラウザのかわりにブラウザ依存を避けられるJava Web StartやClickOnceやAdobe Flashを使うケースも増えている。 JavaScriptを用いる場合、ウェブブラウザには様々な実装系があるため[3]、クライアント側のでプログラミングを行うためには、複数の実装系に精通している必要があった。しかし、JavaScriptに使用されているAjaxがGoogle Mapsに実装されることで脚光を浴びるにつれて、Ajaxに使用する(prototype.jsなどの)ライブラリが、ブラウザ依存しにくいように設計されるようになってきた。Ajaxのライブラリ、フレームワークを使いこなしていれば複数の実装系依存に拘る必要は無くなってきている。 従来では、Web開発におけるクライアントサイドといえば、WebデザイナがHTMLと小規模なJavaScriptやAdobe Flashで作られたサイトを開発する程度のものであったため、オブジェクト指向プログラミングの習得についてほとんど意識する必要がなかった。しかし端末ハードウェアの性能が向上し、HTMLクライアントの限界と不満が叫ばれるようになってゆき、Ajaxとリッチクライアントが注目されるにつれて、クライアントサイドでもオブジェクト指向プログラミングを習得する必要性が高まってきた。リッチクライアントに使用する技術の一つであるSwingなどによるGUI開発ではオブジェクト指向プログラミングは、ファットクライアント、スタンドアロンアプリケーション時代から必須のものである。またAjaxのフレームワークの多くはオブジェクト指向プログラミングで設計されている[4]。 ウェブブラウザはウィンドウシステムやウィジェット・ツールキットとは異なり、アプリケーションがGUIを実現できるようにする事を元来の目的とするプログラムではなく、Web上のHTML文書などを閲覧することを主な目的とするプログラムなので、そのプログラム上で良いGUIを実現するには様々な工夫が求められる。その工夫の例としてAjaxやリッチクライアントがある。 リッチクライアント HTMLクライアントの欠点を補うために、HTMLクライアントとクライアントサーバシステムで使われてきたファットクライアントとの中間に位置するリッチクライアントも注目されている。リッチクライアントとして挙げられるものは、Java Web Start、.NETのClickOnce、AdobeのAIRなどがある。これらの登場により、クライアントサイドの開発は一変しつつある。 Perl PHP Ruby
https://w.atwiki.jp/yoshida2/pages/115.html
telnetでブラウズ(HTTP) このページでは、インターネットでホームページなどをブラウジングするときに利用するHTTPプロトコルについて説明しています。 概要 HTTPプロトコルとは、Hypertext Transfer Protocolの略で、インターネットでホームページなどをブラウジングするときに利用しているプロトコルです。 HTTPプロトコルは、TCP/IP上のプロトコルで、通常80番ポートを使ってアクセスします。 詳細な定義は、以下のRFCで定義されています。 RFC-1945 HTTP/1.0 RFC-2068 HTTP/1.1 基本的に、メッセージを要求(リクエスト)し、その応答結果(レスポンス)を表示するだけです。 HTTPのアクセスログ ApacheなどのWebサーバのログを見ると、リクエストとレスポンスが、以下の形式で出力されます。 アクセスログの書式 アクセス元 - - [アクセス時間] メソッド名 URL名 プロトコルバージョン レスポンスコード 例: 10.0.1.20 - - [01/Jul/1999 23 22 46 +0900] GET /usr/joe/index.html HTTP/1.0 200 2060 メソッドの種類には、GETやPOSTなどがあります。 GETメソッドは、HTMLデータや画像データなどを取得する場合に使用します。 GETメソッドで要求すると、ヘッダ情報とHTMLデータが返却されます。 GETメソッドでCGIを呼び出すこともできます。 パラメータを渡す場合は、URLの後に ?name1=データ1 name2=データ2 という形式で指定します。 HEADメソッドは、ファイルサイズや更新日時を調べる場合に利用します。 HEADメソッドを利用すると、ヘッダ情報だけが返却されます。 POSTメソッドは、CGIなどにデータを渡す場合に使用します。 パラメータなどのデータは、環境変数などによって、CGIに渡ります。 以下に、HTTPのバージョンとメソッドの種類を示します。 メソッドの種類 HTTP/1.0 GET, HEAD, PUT, POST, DELETE, LINK, UNLINK HTTP/1.1 OPTIONS, TRACE, PATCH 以下に、レスポンスコードの一覧を示します。 100番台は通信エラー、200番台は正常終了、300番台はリダイレクト、400番台はクライアントエラー、500番台はサーバエラーを表しています。 リダイレクトとは、クライアントの指定したURLに移動した場合などに返却されます。 レスポンスコード コード 内容 コード 内容 100 Continue 101 Switching Protocols 200 OK 201 Created 202 Accepted 203 Non-Authoritative Information 204 No Content 205 Reset Content 206 Partial Content 300 Multiple Choices 301 Moved Permanently 302 Moved Temporarily 303 See Other 304 Not Modified 305 Use Proxy 400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Time-out 409 Conflict 410 Gone 411 Length Required 412 Precondition Failed 413 Request Entity Too Large 414 Request-URI Too Large 415 Unsupported Media Type 500 Internal Server Error 501 Not Implemented 502 Bad Gateway 503 Service Unavailable 504 Gateway Time-out 505 HTTP Version not supported レスポンスコードは、ログファイルなどに出力されますので、知っていると役に立つと思います。 telnetでブラウジング では、実際にtelnetでブラウジングしてみましょう。 telnetコマンドで、WWWサーバ名と、80番ポートを指定します。 Linux# telnet ash.jp 80 そこで、環境変数をすべて表示するCGI(env.cgi)を起動してみます。 まず、GETコマンドで、取得したいURLと、HTTPのバージョンを指定します。 GET /~joe/prog/cgi/env01.cgi HTTP/1.0 ここで、リターンのみを入力しても表示されますが、以下のオプションも入力してみます。 指定したオプションは、環境変数としてCGIに渡ります。 User-Agent Telnet [ja] (Linux) Host www.ash.jp リターンのみを入力すると、レスポンスと、HTMLが表示されます。 当然、HTMLのソースが表示されるだけですから、頭の中でHTMLを解析し画面イメージを想像する必要があります。 以下に実行結果を示します。 Linux# telnet ash.jp 80 Trying 210.154.87.18... Connected to ash.jp. Escape character is ^] . GET /~joe/prog/cgi/env01.cgi HTTP/1.0 User-Agent Telnet [ja] (Linux) Host ash.jp HTTP/1.1 200 OK DeleGate-Ver 5.8.8 (delay=7) Date Fri, 02 Jul 1999 09 56 24 GMT Server Apache/1.3.3 (Unix) Content-Type text/html Via 1.0 210.154.87.18 80 (DeleGate/5.8.8) Content-Length 954 html body h1 CGIでの環境変数一覧 /h1 hr h3 環境変数の表示 /h3 DOCUMENT_ROOT = /usr/local/share/apache/htm br GATEWAY_INTERFACE = CGI/1.1 br HTTP_FORWARDED = by http //210.154.87.18 80/ (DeleGate/5.8.8) for sv01.lo.ash.or .jp br HTTP_HOST = ash.jp br HTTP_USER_AGENT = Telnet [ja] (Linux) br HTTP_VIA = 1.0 210.154.87.18 80 (DeleGate/5.8.8) br PATH = /usr/local/sbin /usr/local/bin /sbin /usr/sbin /bin /usr/bin br QUERY_STRING = br REMOTE_ADDR = 10.0.1.254 br REMOTE_PORT = 12621 br REQUEST_METHOD = GET br REQUEST_URI = /~joe/prog/cgi/env01.cgi br SCRIPT_FILENAME = /home/joe/public_html/prog/cgi/env01.cgi br SCRIPT_NAME = /~joe/prog/cgi/env01.cgi br SERVER_ADMIN = info@ash.jp br SERVER_NAME = ash.jp br SERVER_PORT = 80 br SERVER_PROTOCOL = HTTP/1.0 br SERVER_SIGNATURE = ADDRESS Apache/1.3.3 Server at ash.jp Port 80 /ADDRESS br SERVER_SOFTWARE = Apache/1.3.3 (Unix) br hr br このCGIのソース: a href=env01.txt env01.cgi /a br /body /html Connection closed by foreign host. 最初の、HTTP/1.1 200 OKは、HTTPプロトコルで、正常に転送したことを表します。 その後にヘッダ情報が転送され、最後にHTMLのソースが転送されます。 環境変数として、以下の値が追加設定されているのが確認できます。 HTTP_HOST = ash.jp HTTP_USER_AGENT = Telnet [ja] (Linux) このように、HTTPプロトコルは、要求(リクエスト)に対して、応答(レスポンス)が返却されるだけのシンプルなプロトコルです。 余談ですが、HTTPプロトコルという呼び方は、Hyper Text Transfer Protocol プロトコルになって、プロトコルが2重になってしまい、おかしいです。 でも、この方がわかりやすいので、私はよく使います。