質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

7280閲覧

四則演算の結果を返すプログラム

Hyonta

総合スコア36

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/02/16 09:54

編集2017/02/16 10:24

四則演算の結果を返すプログラムを作成する課題を与えられています。
※結果をcurlコマンドで確認したいためjavascriptなどは使用できません。

以下のようにアクセスするか、
① curl 'http://example.co.jp/calc?1+1'
以下のようにプログラム(言語問わない)を指定でも良いそうです。
② curl 'http://example.co.jp/calc/calc.java?1+1'

上記①か②のどちらのほうが簡単にできますか?
簡単なサンプルソースも貼っていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2017/02/16 09:58

「良いそうです」とのことですが、これはクライアントから提示された仕様なのでしょうか?貴殿がこの質問をした目的はなんですか?
Hyonta

2017/02/16 10:24

ありがとうございます。ちょっと質問文を修正しました。
guest

回答2

0

node.js をつかって javascript で書いてみました。
(計算処理部分は eval() でごまかしています。実際は自分で文字列を分解して値計算をするべきです)

server.js

javascript

1var express = require('express'); 2var app = express(); 3 4// HTTPリクエストを受け取る部分 5app.get('/', function (req, res) { 6 query = req.query["s"]; 7 ans = eval(query); 8 console.log("" + query + " = " + ans); 9 res.send(`${query} = ${ans}\n`); 10}); 11 12// サーバーを起動する部分 13var server = app.listen(3000, function () { 14 var host = server.address().address; 15 var port = server.address().port; 16 console.log('Example app listening at http://%s:%s', host, port); 17});

実行

$ node server.js 別の shell 画面から $ curl http://localhost:3000?s=1%2b2 1+2 = 3 $ curl http://localhost:3000?s=2*3*4 2*3*4 = 24

参考情報

投稿2017/02/16 17:28

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

どっちでも簡単にできます。
言語が何でも良いとのことなのでシェルで。
セキュリティの事は何も考えてません。

#!/bin/sh echo "Content-Type: text/plain" echo "" echo "INPUT: ${QUERY_STRING}" echo "ANSWER: `echo \"${QUERY_STRING}\" | bc`"

投稿2017/02/16 10:42

編集2017/02/16 10:53
moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Hyonta

2017/02/16 11:44

ありがとうございます。 それは、 curl 'http://example.co.jp/calc/calc.sh?1+1' のような実行でいけますか? ?以降から計算式を取得するロジックになっているのでしょうか。
moonphase

2017/02/16 12:48

いけます。実際に動作させました。 演算部分はbcというコマンドに任せてます。 「四則演算の結果を返すプログラム」への回答なので計算部分は楽してます。
moonphase

2017/02/16 12:49

?以降に入っている文字をCGIで取り出すには、環境変数 QUERY_STRING を参照すればいいです。
Hyonta

2017/02/16 13:08 編集

今実際に試した見たところ以下のようにソースコードが表示されたのですが、原因わかりますか? [ec2-user@ip-111-11-1-11 ~]$ sudo curl 'http://11.111.111.11/calc/calc.sh?1+1' #!/bin/sh echo "Content-Type: text/plain" echo "" echo "INPUT: ${QUERY_STRING}" echo "ANSWER: `echo \"${QUERY_STRING}\" | bc`"
moonphase

2017/02/16 13:22

もし既に .cgi などで登録されていたら calc.sh を calc.cgi 等にリネームすればいけます。
Hyonta

2017/02/16 13:36

httpd.confでApacheのCGIモジュールは有効でしたので、末尾に Options +ExecCGI AddHandler cgi-script .sh を追加しましたが、ダメでした。 以下のエラーです。 301 Moved Permanently confの追加箇所がダメなんでしょうか。
moonphase

2017/02/16 14:08 編集

末尾に追加してもダメですよ。 以下のように、Directoryディテクティブの中に書いてください。 <Directory "..."> Options +ExecCGI AddHandler cgi-script .sh .cgi </Directory> あと、chmod 755 calc.sh で実行権限をつけてください。
Hyonta

2017/02/16 14:43

moonphaseさん!ありがとうございます! 無事、できました。 何度も回答していただき非常に助かりました。 本当にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問