• 締切済み

http クライアント。GET メソッドの使用方法

GET / HTTP1.0 (ここは.IE5.0と同一内容) と送信して / の内容をDL中に、サーバーからの送信が途絶えた時の 1.「途絶えた」事を判断する基準 2.条件付GETメソットを送信するとして、Range ヘッターフィールドの送信サイズ(受信済みデータの後ろをどの程度切り捨てるか) 3.その他ヘッターの指定条件。(IF-Match等を使うと思いますが使い方がわからない) がわかりません。お教え願えませんか。

みんなの回答

  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.1

WinSockを使用したプログラムでしょうか? Internet Transfer Controlのご利用は考えられないのでしょうか?

aramananto
質問者

補足

>のご利用は考えられないのでしょうか ソースを見て「私では使い方が理解できない」という結論に達し、使用をあきらめました。 単純なhttp/ftpサーバーではなく、独自のメソッド(PUTをが独自といえるかは疑問ですけど)を混ぜて送受信するP2Pサーバー/クライアントのパーツとして作成しています。本来ですと外部との接続を一切考えないのです。しかし回線障害を想定した動作試験としてサーバーからのダウンロードする部分を使って、アンテナソフトのようなリンクチェッカーを作成中です。 万単位のサーバー(特定のサーバーを使って動作試験すると相手様にご迷惑がかかりますから、1回dlしたサイトはその日の動作試験には使わないようにしています)から任意のファイルをDLできるようにすることが現在の動作試験です。 どうもNTT, プロバイダーが帯域制限をかける時に特定のパケットを消すようです。すると再接続ルーチンを持たないとタイムアウトするしか方法がない。現在30秒で タイムアウトするようにしていますが、ぴったりそろって同じ大きさで中断したファイルが手元に残ります。 実際にこのソフトを使うときには、ルーターによる帯域制限をかけることになるかと思います。 独自プロトコル・独自の変な暗号通信にしてしまえば、外部につないでも外部にデータが漏れることはますありません。送信量がすくないですから解読するだけの手間をかけるよりは探偵を使ったほうが安上がりです。 しかし、共通化しているプロトコルを使うと意図しなくても盗聴が可能です。PUTを使う関係で想定した手続きを踏まないサーバーにはランダムデータを送信するようなサーバーに作成しました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • HTTP GETで認証をする

    すいません。 今Inettransferでhttpコントロールを使いサーバーからファイルをGETする仕組みを作っているのですが、その際サーバーには匿名アクセスを拒否し認証をしたいと思っています。 フォルダにIDとpassを付けてもGETが出来ません。PUTは出来たのですが、どなたか分かる人いませんか? ちなみにEveroneを付けるとGETが出来たので、PATHなどには問題ないです。 With Http1 .Timeout = 60000 .Url = urlSourceFile .get fileBuffer, , "ID", "PASS" If .Status = 200 Then         ~処理する。 エラーコードは、401です。

  • GETメソッドの中身を分割するには

    少し分かりにくい表題ですが 今、1商品につき10項目ほどあるデータの登録を行うプログラムを作っています 登録自体はうまくできました。 このデーターを変更するときに たとえば Aと言う商品で在庫数と値段を変更しようとした場合 自分なりに考えて 変更したい内容をGETで 項目=変更後の内容 と言う形で GET送信するようにしました hoge.asp?hinmei=A&kakaku=500&zaiko=20 この内容を受信したときに 品名Aの価格を500、在庫を20 に変更するのですが (データベースに記録するので、GETの項目名はデータベースの 項目名と同じにしています。) 変更の内容によって送られてくる項目はバラバラなので 受信したときに、どの項目が送られてきたか分かるようにしたいのです 該当する項目全てを Request.QueryString("hoge") と書いて 空白でない場合は記録する と言う処理でも良いのですが hoge.asp?hinmei=A&kakaku=500&zaiko=20 の場合だと hinmeiとkakakuとzaiko という項目が送られてきた と言うことが分かり それぞれが Aと500と20 と言う感じで 取得したいのです CGIで確か スプリットか何かで ネーム/バリュー と言うような感じで 分けるような物があった気がするのですが ASPでもその様なことができると思うのですが 何をどう手を付けて良いやら分からなく 困っています どなたかご教授頂けると幸いです よろしくお願いします

  • post と get

    postとgetの両方でデータ送信が行われる可能性がある場合(あるときはpost、あるときはget)に簡単に効率よくデータを変数に入れてやる方法ってありますか? 最初は$_REQUEST を使っていたのですが、これではクッキー情報も入ってしまったため、これはやめました。そこで今は下のような方法を考えています。 if(postならば){ while(list ($key, $val) = each($_POST)) { $INPUT[$key] = $val; } } else {//getなら while(list ($key, $val) = each($_GET)) { $INPUT[$key] = $val; } } ただ、検索の仕方が下手なのか、受信した送信形式がPOSTかGETなのかということを知る方法がわかりません。 どなたかアドバイスを下さい。

    • ベストアンサー
    • PHP
  • GETクエリの文字化けについて

    GETクエリの文字化けについて http://msdn.microsoft.com/ja-jp/library/attbb8f5(v=VS.80).aspx に記されているサンプルコードを実行してHTTPサーバからファイルを受信したところ,日本語が?に文字化けしてしてしまっていました. なおコマンドプロンプトからtelnetを実行して同様にGETメソッドによりファイルを受信したところ,こちらは文字化けが起こりませんでした. 上記のプログラムで日本語が文字化けする理由として何が考えられるのでしょうか?

  • PHPのfsockopenを使用してファイルのアップロード方法

    PHPのfsockopenを使用してファイルのアップロード方法 宜しくお願い致します。 PHPでHTTPポートなどに接続させて、POSTやGETでデータを送信できるようにする関数のfsockopenを使用して、HTMLのformを使用せずにPHPプログラムのみでサーバ上にあるファイルを別のサーバへアップロードする方法はありませんか? 文字列を送信する事はできるので、ファイルのアップもできそうなのですが、やり方がわかりません。

    • ベストアンサー
    • PHP
  • httpのPOSTかGETで送信されたデータを受信するプログラムの開発方法

    こんにちは。 クライアントのPCからHTTP1.0のPOSTかGETで送信されてきた メッセージを受信するプログラムを作ることになりました。 サーバ側(受信側)の環境は OS:WindowsXP Professional Webサーバ:IIS 言語:Visual C# 2005 です。 ここからが質問なのですが、サーバ側での受信プログラムを 作成するには、どのような手法(クラス)を使えばよいのでしょうか? 参考となるサイトや書籍、サンプルコードが載っている サイトがあれば教えてください。 基本的な質問で申し訳ありませんが、よろしくお願いいたします。

  • 携帯用のメールフォームのMethod

    ある、HP作成送付とを使って携帯用のメールフォーム(3機種対応)を作りましたが、既存のCGIがうまく稼動しません。 マニュアルをみると、携帯用ではMethodをPOSTではなく、GETに指定しろ。 と、有りますが、CGIのソースのどの部分を変更したらいいのか分かりません。 一応、予測してPOSTと記載されているソースを全てGET に直したのですが、旨く、稼動しません。 (「このCGIは直接稼動していません・・・」が表示される。if ($buffer eq '') ってどんな条件なんでしょうか?) 携帯用のメールフォームのCGIを配布しているサイト、もしくは下記のソースで修正すべき点をご存知の方、 教えてください!!お願いいたします。 ソース-------------------- . . . #データ入力 if ($ENV{'REQUEST_METHOD'} ne "GET") { &error('エラー','標準入力 METHOD=GET を設定してください.<br>&lt;form method=get action=........&gt;'); } read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); if ($buffer eq '') { &error('エラー','このCGIは直接起動されません.'); } $ref = $ENV{'HTTP_REFERER'}; $buffer2 = $ENV{'QUERY_STRING'}; if ($buffer2 ne '') { &error('エラー','標準入力 METHOD=GET に設定してください.<br>&lt;form method=get action=........&gt;'); }

    • ベストアンサー
    • CGI
  • Smartyを使用した、テンプレート内でのキャリア振り分け

    宜しくお願い致します。 現在モバイルサイトを構築しており、PHP+Smartyを利用しているのですが、テンプレート内で"if文"を利用した(ユーザーエージェントによる)キャリア振り分けをしたいと考えています。 ロジックとしては、PHPファイル内でユーザーエージェントを取得し、変数に適当な値を入れる。 その変数をassignし、テンプレート内ではき出す際に条件分岐。 と考えているのですが、うまくいきません。 ご教授いただけましたら幸いです。 なお、ソースは下記のようになります。 【carrier.php】※ディレクトリーの指定など一部省略 $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ $ca == "i"; }else if(preg_match("/^KDDI\-/i", $agent) || preg_match("/UP\.Browser/i", $agent)){ $ca == "ez"; }else if(preg_match("/^(J\-PHONE|Vodafone|MOT\-[CV]|SoftBank)/i", $agent)){ $ca == "sb"; }else { $ca == "pc"; } $tpl->assign('ca','$ca'); $tpl->display('carrier.html'); 【carrier.html】 {if $ca == "ez"}ezです{/if}

    • ベストアンサー
    • PHP
  • mod_rewrite的なことをphpで実現させたいが空白ページが表示されてしまう

    www.example.com/ほげほげ にアクセスされたら、 example.com/ほげほげ へ urlをかきかえ、 さらに、 $_SERVER["REQUEST_URI"] がスラッシュで終わる(2個以上のスラッシュも考慮)ときは、これらのスラッシュをとりのぞいたurlへかきかえ、 そして、このurlへ301ステータスコードでリダイレクトさせる(ただし、get methodの場合に限る) というコードをphpで書いたのですが、 なぜか、urlは書き換わらず、空白のページが表示されてしまいます。 どこがいけないのでしょうか? お助けくださいませ。         if ($_SERVER["REQUEST_METHOD"] == "GET"){             #HTTP_HOST (exclude www.)             preg_match_all("/^(www\.)(.*)$/", $_SERVER["HTTP_HOST"],$matches_HTTP_HOST);             if ($matches_HTTP_HOST[1] != ''){                 $bWillBeRedirected = true;                 $strAfterRedirect_HTTP_HOST = $matches_HTTP_HOST[2];             }             else{                 $strAfterRedirect_HTTP_HOST = $_SERVER["HTTP_HOST"]             }             #REQUEST_URI (,which includes query string)             preg_match_all("/^(\/)(.*)(\/+)$/", $_SERVER["REQUEST_URI"],$matches_REQUEST_URI);             if ($matches_REQUEST_URI[3] != ''){                 $bWillBeRedirected = true;                 $strAfterRedirect_Request_URI = $matches_REQUEST_URI[1] . $matches_REQUEST_URI[2];             }             else{                 $strAfterRedirect_Request_URI = $_SERVER["REQUEST_URI"];             }             #redirect with 301 status code if needed             if($bWillBeRedirected){                 #Protocol                 if ($_SERVER["HTTPS"] == "on"){                     $strProtocol = "https";                 }                 else{                     $strProtocol = "http";                 }                 $url = $strProtocol . "://" . $strAfterRedirect_HTTP_HOST . $strAfterRedirect_Request_URI;                                                   header("HTTP/1.1 301 Moved Permanently");                 hearder(”Location: “.$url);                 header(”Connection: close”);             }         }

    • ベストアンサー
    • PHP
  • シート内セルに条件付着色でエラーメッセージ

    Excelのチェックボタンをクリックしたときにシート1のセル"C4:G50"内に条件付書式により着色(ColorIndex =7)されたセルがあった場合、エラーメッセージ(" ヶ所 日付が入力されていません")を表示したいのですが? 下記のコードでセルに直接着色("C7")されたものは添付のようにメッセージが出たのですが条件付書式による着色がカウントしメッセージが出るようにしたいのですが、コード表示が解る方どうかよろしくお願いします。 尚、C列とG列のみ50行まで条件下で着色するよう同じ条件付書式が入っています。 Sub チェック() Dim CheckRange As Range Dim rng As Range Dim cnt As Long Set CheckRange = Range("C4:G50") For Each rng In CheckRange If rng.Interior.ColorIndex = 7 Then cnt = cnt + 1 End If Next If cnt > 0 Then MsgBox cnt & "ヶ所、日付が入力されていません。", vbCritical Exit Sub End If Worksheets("sheet1").Range("D1") = "1" End Sub