初めまして! C言語による組込み制御(H8マイコン使用)を学習中の者です。
(概要)
クラウド(さくらレンタルサーバ)側に組込み制御用のフォルダ(セキュリティなし)を用意し、
H8からの受信待ちphpも開発済みで、H8からのキック待ち状態です。
H8から当該phpをキックし、電文(50バイト程度のテキスト)を受信する仕様です。
(状況)
PCや携帯などから当該phpへのurl(http://xx.yy.ne.jp/H8/zz.php)発行テストはOKとなり、
いざ「H8からurl発行」をテスト中なのですが、クラウドサーバ側から受信エラーが帰ってきていて、
当該phpを起動できない状況です。
●(理解できていないと思われること)
単純にurlを送信すれば良いと思っていましたが、
クラウド側と送受信のやりとりが必要なのかと現在調査中なのですが、
今現在見つからないので、はじめて投稿させていただきました。
●●当該phpの起動方法(当該url発行手順など)に関する情報提供をお願いいたします。
それでは、よろしくお願いいたします。
●クラウド側サーバのphpを起動する方法をお教えください。
Re: ●クラウド側サーバのphpを起動する方法をお教えください。
H8から送信したHTTPリクエストの中身を貼ってください。
Re: ●クラウド側サーバのphpを起動する方法をお教えください。
早速のご連絡ありがとうございます。
【1回目の実験:url全部】
送信=><GET / HTTP/1.1 Host: xx.sakura.ne.jp/H83069F/3069F_started.php Connection: Close >
受信=><HTTP/1.1 400 Bad Request Date: Mon, 16 Sep 2013 01:23:43 GMT ......(略).........>
↓●やり取りが必要なのかと思い、分割して発行してみることに・・
【2回目の実験:url分割】
送信1=><GET / HTTP/1.1 Host: xx.sakura.ne.jp Connection: Close >
受信1=><HTTP/1.1 401 Authorization Required .....(略).....>
送信2=><GET / HTTP/1.1 Host: /H83069F/3069F_started.php Connection: Close >
受信3=><HTTP/1.1 401 Authorization Required .....(略).....>
↑●ルートにはセキュリティをかけているので、セキュリティ情報を求めていると思われます。
●●いろいろと検索しているのですが、今現在、有効な情報はありません。
それでは、よろしくお願いいたします。
【1回目の実験:url全部】
送信=><GET / HTTP/1.1 Host: xx.sakura.ne.jp/H83069F/3069F_started.php Connection: Close >
受信=><HTTP/1.1 400 Bad Request Date: Mon, 16 Sep 2013 01:23:43 GMT ......(略).........>
↓●やり取りが必要なのかと思い、分割して発行してみることに・・
【2回目の実験:url分割】
送信1=><GET / HTTP/1.1 Host: xx.sakura.ne.jp Connection: Close >
受信1=><HTTP/1.1 401 Authorization Required .....(略).....>
送信2=><GET / HTTP/1.1 Host: /H83069F/3069F_started.php Connection: Close >
受信3=><HTTP/1.1 401 Authorization Required .....(略).....>
↑●ルートにはセキュリティをかけているので、セキュリティ情報を求めていると思われます。
●●いろいろと検索しているのですが、今現在、有効な情報はありません。
それでは、よろしくお願いいたします。
Re: ●クラウド側サーバのphpを起動する方法をお教えください。
BASIC認証でしたら、リクエストのヘッダに
という行を追加してください。
hogeの部分には"ユーザー名:パスワード"を引用符なしでbase64エンコードしたものに置き換えてください。
例えば、ユーザー名が"root"、パスワードが"pass1234"なら、"root:pass1234"をbase64エンコードします。
ダイジェスト認証は少し複雑なので、必要なら書きます。
BASIC認証で失敗するようでしたら、受信したデータを略さずに書き込んでください。
今回の場合、認証なしの適切なリクエストは
ではないですか?(最後は空行を送信し、改行コードはCRLFとする)
hogeの部分には"ユーザー名:パスワード"を引用符なしでbase64エンコードしたものに置き換えてください。
例えば、ユーザー名が"root"、パスワードが"pass1234"なら、"root:pass1234"をbase64エンコードします。
ダイジェスト認証は少し複雑なので、必要なら書きます。
BASIC認証で失敗するようでしたら、受信したデータを略さずに書き込んでください。
今回の場合、認証なしの適切なリクエストは
ではないですか?(最後は空行を送信し、改行コードはCRLFとする)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: ●クラウド側サーバのphpを起動する方法をお教えください。
HTTPの認証に関するページを貼っておきます。
[Studying HTTP] HTTP Authentication
[Studying HTTP] HTTP Authentication
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: ●クラウド側サーバのphpを起動する方法をお教えください。
HTTPの仕様書です。
ハイパーテキスト転送プロトコル -- HTTP/1.1
取得したいファイルのパスは含めるべきではないと考えられます。
ハイパーテキスト転送プロトコル -- HTTP/1.1
この記述からわかるように、Hostリクエストヘッダフィールドにはドメインのみを含めるべきであり、Host リクエストヘッダフィールドは、リクエストされたリソースのインターネットホストとポート番号を、ユーザや参照されるリソースによって与えられるオリジナル URI (一般には section 3.2.2 にて表されるような HTTP URL) から得るために、指定する。 Host フィールド値は、オリジンサーバやオリジナル URL によって与えられているゲートウェイによって名付けられる authority を表さなければならない。 これによって、オリジンサーバやゲートウェイは、単一の IP アドレス上で複数のホスト名を持つサーバのルートURL "/" のような、内部的に曖昧な{internally-ambiguous} URL を区別する事ができる。
取得したいファイルのパスは含めるべきではないと考えられます。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: ●クラウド側サーバのphpを起動する方法をお教えください。
●●皆さま 有効な情報ありがとうございます。
今、「HTTPの仕様書」を読んでいるところです。
。。HTTPの理解もせずに実験に入ってしまい、申し訳ありません。
今日は家でゆっくりできる(台風のおかげ?)ので、
いろいろトライしてみます。
。。とりあえず、今日の成果は報告させていただきます。
まずは、お礼申し上げます。
今、「HTTPの仕様書」を読んでいるところです。
。。HTTPの理解もせずに実験に入ってしまい、申し訳ありません。
今日は家でゆっくりできる(台風のおかげ?)ので、
いろいろトライしてみます。
。。とりあえず、今日の成果は報告させていただきます。
まずは、お礼申し上げます。
Re: ●クラウド側サーバのphpを起動する方法をお教えください。
●●投稿いただきました皆さま 誠にありがとうございました。 本件は「解決」しました。
↓HTTPヘッダで起動できました。
<GET /H83069F/3069F_started.php HTTP/1.1
Host: xx.sakura.ne.jp Connection: Close
>
課題1:今後、セキュリティ対策を追加したいと思います。
課題2:マイコン側の受信遅延や日本語データによる文字化けが発生していています。
(受信データでの制御は、別方式でも対応できるので、とりあえず次の実験に進めます)
●明日から「制御実験機器(電子回路)の製作」に臨めます。。ありがとうございました。。感謝!
↓HTTPヘッダで起動できました。
<GET /H83069F/3069F_started.php HTTP/1.1
Host: xx.sakura.ne.jp Connection: Close
>
課題1:今後、セキュリティ対策を追加したいと思います。
課題2:マイコン側の受信遅延や日本語データによる文字化けが発生していています。
(受信データでの制御は、別方式でも対応できるので、とりあえず次の実験に進めます)
●明日から「制御実験機器(電子回路)の製作」に臨めます。。ありがとうございました。。感謝!