Ruby-web-applications
Ruby Webアプリケーション-CGIプログラミング
Rubyは汎用言語です。 _web言語_とはまったく呼ばれません。 それでも、一般的なWebアプリケーションとWebツールは、Rubyの最も一般的な用途の1つです。
Rubyで独自のSMTPサーバー、FTPデーモン、またはWebサーバーを作成できるだけでなく、CGIプログラミングなどのより一般的なタスクや、PHPの代替としてRubyを使用することもできます。
CGIプログラミングの詳細については、リンク:/perl/perl_cgi [CGIプログラミング]チュートリアルで数分お過ごしください。
CGIスクリプトの作成
最も基本的なRuby CGIスクリプトは次のようになります-
このスクリプト_test.cgi_を呼び出して、適切な権限を持つUnixベースのWebホスティングプロバイダーにアップロードすると、CGIスクリプトとして使用できます。
たとえば、Linux WebホスティングプロバイダーでホストされているWebサイトhttps://www.example.com/があり、test.cgi_をメインディレクトリにアップロードして実行権限を付与し、https://wwwにアクセスした場合。 example.com/[https://www.example.com/test.cgi]は、 ' This is a test_ というHTMLページを返す必要があります。
ここで、Webブラウザから_test.cgi_が要求されると、WebサーバーはWebサイトで_test.cgi_を探し、Rubyインタープリターを使用して実行します。 Rubyスクリプトは、基本的なHTTPヘッダーを返し、次に基本的なHTMLドキュメントを返します。
cgi.rbを使用する
Rubyには、 cgi という特別なライブラリが付属しており、前述のCGIスクリプトとの対話よりも高度な対話が可能です。
CGIを使用する基本的なCGIスクリプトを作成しましょう-
ここでは、CGIオブジェクトを作成し、それを使用してヘッダー行を印刷しました。
フォーム処理
クラスCGIを使用すると、2つの方法でHTMLクエリパラメータにアクセスできます。/cgi-bin/test.cgi?FirstName = Zara&LastName = AliというURLが与えられているとします。
次のように直接CGI#[]を使用して、パラメータ_FirstName_および_LastName_にアクセスできます-
これらのフォーム変数にアクセスする別の方法があります。 このコードは、すべてのキーと値のハッシュを提供します-
以下は、すべてのキーを取得するコードです-
フォームに同じ名前の複数のフィールドが含まれる場合、対応する値が配列としてスクリプトに返されます。 []アクセサーは、これらのすべてを取得するために、paramsメソッドの結果であるthese.indexの最初の1つだけを返します。
この例では、フォームに「name」という3つのフィールドがあり、「Zara」、「Huma」、「Nuha」という3つの名前を入力したとします-
注意-RubyはGETおよびPOSTメソッドを自動的に処理します。 これら2つの異なる方法に個別の処理はありません。
正しいデータを送信できる、関連付けられているが基本的なフォームには、次のようなHTMLコードがあります-
フォームとHTMLの作成
CGIには、HTMLの作成に使用される膨大な数のメソッドが含まれています。 タグごとに1つのメソッドがあります。 これらのメソッドを有効にするには、CGI.newを呼び出してCGIオブジェクトを作成する必要があります。
タグのネストを簡単にするために、これらのメソッドはコンテンツをコードブロックとして取得します。 コードブロックは、タグのコンテンツとして使用される_String_を返す必要があります。 たとえば-
注-CGIクラスの_form_メソッドは、フォーム送信で使用されるHTTPメソッド(GET、POSTなど)を設定するメソッドパラメーターを受け入れることができます。 この例で使用されるデフォルトはPOSTです。
これは、次の結果を生成します-
文字列の引用
URLとHTMLコードを扱うときは、特定の文字を引用符で囲むように注意する必要があります。 たとえば、スラッシュ文字(/)はURLで特別な意味を持つため、パス名の一部でない場合は*エスケープする必要があります。
たとえば、URLのクエリ部分の/は文字列%2Fに変換され、使用するには/に変換して戻す必要があります。 スペースとアンパサンドも特殊文字です。 これを処理するために、CGIはルーチン CGI.escape および CGI.unescape を提供します。
これは、次の結果を生成します-
これは、次の結果を生成します-
CGIクラスの便利なメソッド
ここにCGIクラスに関連するメソッドのリストがあります-
- リンク:/ruby/ruby_cgi_methods [Ruby CGI]-標準CGIライブラリに関連するメソッド。
クッキーとセッション
これら2つの概念については、異なるセクションで説明しました。 セクションに従ってください-
- リンク:/ruby/ruby_cgi_cookies [Ruby CGI Cookies]-CGI Cookieの処理方法。
- リンク:/ruby/ruby_cgi_sessions [Ruby CGI Sessions]-CGIセッションを管理する方法。
ウェブホスティングサーバー
あなたは、Unixベースのサーバー上であなたのウェブサイトをホストするためにインターネット上の次のトピックをチェックすることができます-