最近の発見(Samba・動的・静的・CGI)
気づいたことを簡単にまとめます。
私のPC(Windows)からBashが使えた理由
私のPCはWindowsでBash環境はないのに、Bashが使えた。
- これはTera Termを使って共有サーバにリモート接続し、このサーバのOSがLinuxだったため。
- 実際にBashが動作しているのは、私のPCではなく、Tera Termの画面上でリモート先のLinuxサーバを動かしている。
また、Samba(サンバ)を使用してるため、Windowsサーバにファイルがあるかのように、Linuxサーバ上のファイルを編集できたらしい。
Samba(サンバ)とは?
WindowsとLinux(Unix系OS)の間でファイルやプリンタを共有するためのソフトウェア。
WindowsとLinuxは異なるファイル共有の仕組みを持っているが、Sambaを使うと、Linux側でWindowsと同じプロトコルを利用できるようになる。
- Windows → SMB(Server Message Block)プロトコルを使用
- Linux → NFS(Network File System)などを使用
Sambaを使うと、LinuxのファイルシステムをWindowsのSMB共有として提供するので、Windows PCの「ネットワークドライブ」や「エクスプローラー」から、Linuxサーバ上のファイルを開くことができる。
⬇️
つまり…
ファイルを開いたり編集したりする際、ローカルPCにあるかのように扱うことができる。
とある機能で「ログインできません」のメッセージを出せない理由
作成中のとある機能の画面を「非公開」にし、ログインできるか動作したところ、ログインが弾かれるだけで、「非公開状態です」などのメッセージが出なかった。
メッセージをつけるか提案したところ、この画面は「CGIなどが必要となりできない」と言われた。
- この画面は「静的なページ」であり、動的に処理する変更プログラムを持っていない可能性あり。
- 静的なページとは、HTMLファイルなどあらかじめ用意されており、アクセスした時そのまま表示するもの。
- 「ログイン情報をチェックして、PW間違いか非公開かを表示する」には、「動的な処理」が必要。
- 動的な処理をするには、サーバ側でCGI(Common Gateway Interface) などのプログラムが動く環境が必要。
- 今回の業務での画面は、CGIなどのプログラムが動作しないため、メッセージを表示できず、PWが間違ってるかのように弾かれてしまう。
CGIとは
CGI(Common Gateway Interface)は、クライアント側のWebブラウザの要求に応じてWebサーバが
外部プログラムを呼び出して、その実行結果がHTTPを介してクライアントのWebブラウザに送信される仕組みのことです。
Webサイトで例えば掲示板、アクセスカウンター、アンケートフォームなどWebページの内容を動的に
変化させたい時にCGIを使用します。CGIのプログラムはPerl(パール)と呼ばれるプログラミング言語などによって記述されています。
このサイトより引用。
つまり、CGIは「webサーバがブラウザの要求に応じて、プログラムを実行する仕組み。」
単に静的なHTMLを表示させるだけなら、CGIは必要ない。
ユーザから情報を受け取って処理をする(動的なコンテンツを作成する)場合、CGIが必要。
今回の場合、ユーザの入力(ログイン)情報を受け取ったり、それをチェックする仕組みがない。
パスワード間違い・非公開状態化を判断するには、何らかの動的処理(プログラム)が必要なため、別途作業が必要となる。
ログイン情報を入れる⇒サーバがログイン情報正しいかチェック⇒結果に合わせて適切なメッセージを出す
この処理をするには、サーバ側でプログラムを動かし、ログイン情報を処理する仕組み(CGI)が必要となる。
参考文献
Discussion