●クラウド側サーバのphpを起動する方法をお教えください。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
syuu
記事: 4
登録日時: 12年前

●クラウド側サーバのphpを起動する方法をお教えください。

#1

投稿記事 by syuu » 12年前

初めまして! 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発行手順など)に関する情報提供をお願いいたします。


それでは、よろしくお願いいたします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: ●クラウド側サーバのphpを起動する方法をお教えください。

#2

投稿記事 by h2so5 » 12年前

H8から送信したHTTPリクエストの中身を貼ってください。

syuu
記事: 4
登録日時: 12年前

Re: ●クラウド側サーバのphpを起動する方法をお教えください。

#3

投稿記事 by syuu » 12年前

早速のご連絡ありがとうございます。

【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 .....(略).....>
↑●ルートにはセキュリティをかけているので、セキュリティ情報を求めていると思われます。

●●いろいろと検索しているのですが、今現在、有効な情報はありません。


それでは、よろしくお願いいたします。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: ●クラウド側サーバのphpを起動する方法をお教えください。

#4

投稿記事 by みけCAT » 12年前

BASIC認証でしたら、リクエストのヘッダに

コード:

Authorization: Basic hoge
という行を追加してください。
hogeの部分には"ユーザー名:パスワード"を引用符なしでbase64エンコードしたものに置き換えてください。
例えば、ユーザー名が"root"、パスワードが"pass1234"なら、"root:pass1234"をbase64エンコードします。

ダイジェスト認証は少し複雑なので、必要なら書きます。

BASIC認証で失敗するようでしたら、受信したデータを略さずに書き込んでください。

今回の場合、認証なしの適切なリクエストは

コード:

GET /H83069F/3069F_started.php HTTP/1.1
Host: xx.sakura.ne.jp
Connection: Close

ではないですか?(最後は空行を送信し、改行コードはCRLFとする)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: ●クラウド側サーバのphpを起動する方法をお教えください。

#5

投稿記事 by みけCAT » 12年前

HTTPの認証に関するページを貼っておきます。
[Studying HTTP] HTTP Authentication
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: ●クラウド側サーバのphpを起動する方法をお教えください。

#6

投稿記事 by みけCAT » 12年前

HTTPの仕様書です。
ハイパーテキスト転送プロトコル -- HTTP/1.1
Host リクエストヘッダフィールドは、リクエストされたリソースのインターネットホストとポート番号を、ユーザや参照されるリソースによって与えられるオリジナル URI (一般には section 3.2.2 にて表されるような HTTP URL) から得るために、指定する。 Host フィールド値は、オリジンサーバやオリジナル URL によって与えられているゲートウェイによって名付けられる authority を表さなければならない。 これによって、オリジンサーバやゲートウェイは、単一の IP アドレス上で複数のホスト名を持つサーバのルートURL "/" のような、内部的に曖昧な{internally-ambiguous} URL を区別する事ができる。
この記述からわかるように、Hostリクエストヘッダフィールドにはドメインのみを含めるべきであり、
取得したいファイルのパスは含めるべきではないと考えられます。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

syuu
記事: 4
登録日時: 12年前

Re: ●クラウド側サーバのphpを起動する方法をお教えください。

#7

投稿記事 by syuu » 12年前

●●皆さま 有効な情報ありがとうございます。

今、「HTTPの仕様書」を読んでいるところです。
。。HTTPの理解もせずに実験に入ってしまい、申し訳ありません。

 今日は家でゆっくりできる(台風のおかげ?)ので、
いろいろトライしてみます。
。。とりあえず、今日の成果は報告させていただきます。


まずは、お礼申し上げます。

syuu
記事: 4
登録日時: 12年前

Re: ●クラウド側サーバのphpを起動する方法をお教えください。

#8

投稿記事 by syuu » 12年前

●●投稿いただきました皆さま  誠にありがとうございました。  本件は「解決」しました。

↓HTTPヘッダで起動できました。
<GET /H83069F/3069F_started.php HTTP/1.1
Host: xx.sakura.ne.jp Connection: Close
>

課題1:今後、セキュリティ対策を追加したいと思います。
課題2:マイコン側の受信遅延や日本語データによる文字化けが発生していています。
(受信データでの制御は、別方式でも対応できるので、とりあえず次の実験に進めます)


●明日から「制御実験機器(電子回路)の製作」に臨めます。。ありがとうございました。。感謝!

閉鎖

“C言語何でも質問掲示板” へ戻る