• ベストアンサー

通信について

かなり基本的な質問です。 HTTPリクエストメッセージボディってどうやって書くのですか? クエリパラメーター(例http://example.com?texta=aaa)とは違うのでしょうか? HTTPリクエストメッセージボディを使えばget通信でも書いてある中身が見られる心配がないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>クエリパラメーター(例http://example.com?texta=aaa)とは違うのでしょうか? これをやるのであれば、 ---------------------- telnet examle.com 80 GET /?texta=aaa HTTP/1.0(改行) Host examle.com(この行は相手がVhostしていない場合なくてもOK)(改行) (改行)この空改行でHTTPリクエストの終わりとなる。 (この位置にレスポンスが出力されます) ---------------------- >HTTPリクエストメッセージボディを使えばget通信でも書いてある中身が見られる心配がないのでしょうか? そもそも、どこに書こうが丸見えです!。 なぜならそれ自体が暗号化されていないからです。 ”HTTPリクエスト”ですからね! 当然返ってくるレスポンスも当然丸見えです。

dhtfyjh
質問者

お礼

ありがとうございます。

関連するQ&A

  • ヘッダーのGETにつきまして

    参考書に以下内容がのっていました。 HTTPのヘッダー情報をトレースした時の中身について 以下のようになる。と記載されていました。 =====================ヘッダー中身 GET /memo/memo.html HTTP/1.1 HOST:example.com ===================== これって正しいのでしょうか? POSTなら納得できるのですが、 GETを使用しているときは、以下のようになるのが正しいのではないかと思っています。 =====================ヘッダー中身 GET /memo/memo.html?key1=value1&key2=value2 HTTP/1.1 HOST:example.com ===================== ご教授お願いします。

    • ベストアンサー
    • PHP
  • SSL通信でURLは暗号化される?

    HTTPSのSSL通信を行うと送受信されるデータが暗号化されますが、URLに含まれる文字列は暗号化されるのでしょうか? 例えば、 https://www.example.com/login?userid=guest&userpassword=password このように、URLのパラメーターにパスワードを含んでいた場合等です。 パスワードをGET渡しする時点でまずいのですが、 パスワードがばれる可能性はありますでしょうか?

  • 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
  • Getリクエストによりダウンロードファイルを変える

    お世話になります。aizawa_naoと申します。 --------------------------------------- 環境、php5.2.0-8 apache2.2.4 debian --------------------------------------- 上記の環境で、簡単なphpスクリプトを作成しようと思っています。 ほとんど、phpの知識はないのですが、phpでgetリクエストを受け取り、 それをブラウザに出力することは出来ます。 これをサイトなどで、よく見るGetのパラメータにより、ダウンロードする ファイルを変化させたいのですが、どのような記述になるのでしょうか? 例)http://example.com/test.php?file=test.zip このようなリクエストがくると、test.zipをダウンロードし、   http://example.com/test.php?file=test2.zip とするとtest2.zipがダウンロードされるような仕組みをご教示いただければと思います。 初歩的な質問で申し訳ありませんが、宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • [PHP]URLパラメータの受け取り方

    こんにちは。 PHPで下記のことを実装しようとしていますが、なかなかうまく行きません。 http://example.com/aaa というURLにアクセスがあった場合、「aaa」だけを抜き出して処理する、 ということを実装したいのですが、上記アドレスにアクセスするとNotFoundになってしまいます。 上記の場合、「aaaというファイルを探しにいく」という処理がされているためNotFoundになることは分かるのですが、どのようにすればindex.phpでaaaをパラメータとして受け取れるのでしょうか? ※システムの都合上、http://example.com/?id=aaaという風には出来ません。 大変恐縮ですがご教授いただけるとありがたいです。

    • ベストアンサー
    • PHP
  • JavaでPOSTでデータ送信時のボディについて

    javaでHTTP通信をする際にメソッドをPOSTにしてボディにパラメータを設定する仕方がいまいちわかりません。 調べてみても、POSTはGETのようにURLに付加するのではなくボディ部に設定すればよいというのはわかったのですが。実際どういうソースで設定できるのか例が見つからなく困っています。 なんとなくの判断ですが、 message = "httpテスト"; URL url = new URL("http://~~~/xxx.html"); HttpURLConnection http = (HttpURLConnection)url.openConnection(); http.setRequestMethod("POST"); http.setDoOutput(true); http.setRequestProperty("Content-Type", "~~~"); http.setRequestProperty("Content-Length", Integer.toString(message.length())); ↓↓↓(1) BufferedWriter outer = new BufferedWriter(new OutputStreamWriter(http.getOutputStream())); outer.write(message); outer.flush(); outer.close(); ↑↑↑(1) http.connect(); 上記(1)の箇所でボディへの設定ができているのかなという判断をしているのですが、あっていますでしょうか?? よろしくお願いします。

    • ベストアンサー
    • Java
  • 電文とは

    現在、プロジェクトでJavaで電文を取り扱うという話を聞いているのですが、イマイチピンと こないので質問させてください。 電文とは「通信プログラムで送受信されるデータ」という記述を某所でみたのですが 電文とはHTTP通信のことでしょうか。Webアプリでリクエストパラメータを送信するとXMLが responseとして返ってくる場合、これは電文のやりとりを行ったことになるのでしょうか。 HTTP通信でない電文はありますでしょうか。

    • ベストアンサー
    • Java
  • 「認証情報をヘッダに挿入したGETリクエストを送信

    表題のとおり「GETリクエストのヘッダにX-WSSE認証を追加して送出する」方法がわからず困っています。 なぜそれをやりたいかと申しますと ライブドアブログに投稿するのに、XML::Atomを使った方法はわかったのですが、 XML::Atomを使わないでやるにはどうしたらいいのかとおもい試しています。 http://www.witha.jp/Atom/Chapter-3_The_Atom_Publishing_Protocol_or_AtomAPI.html#Atom3-4-3 によりますと、 ---- エンドポイントのhttp://cms.blog.livedoor.com/atomに認証情報をヘッダに挿入したGETリクエストを送信します.  生のHTTP通信は以下のようになります. リクエスト: GET http://cms.blog.livedoor.com/atom HTTP/1.1 X-WSSE: UsernameToken Username="***", PasswordDigest="eNSBiuFfcLpau1RfWc3lOWufje0=", Nonce="ZGFrZHZueGJ6aGh1", Created="2004-10-31T14:08:34Z" --- と、あっさり書いてあるのですが、 ◆「認証情報をヘッダに挿入したGETリクエストを送信」◆はどうやれば良いのやら・・・ 強引にこうかいてみたのですが・・ -------- use LWP::UserAgent; $request = HTTP::Request->new(GET => 'http://cms.blog.livedoor.com/atom', ['X-WSSE'=>'User nameToken Username="*****", PasswordDigest="KxZ4DElJVqsIBXiF9ZIWCp59ghM", Nonce="YWFh", Created="2004-01-20T01:09:39Z"']); $ua = LWP::UserAgent->new; $response = $ua->request($request); print $response->content; ---------- 以下のように成ってしまいました。 ---------------- <?xml version="1.0" encoding="utf-8"?> <error>Invalid login</error> ---------------- どうかよろしくおねがいします。

    • ベストアンサー
    • Perl
  • 自サーバ経由の他のサーバへのリクエストを拒否したい

    自宅でサーバを運用しています。 OS:Ubuntu 11.10 Apache:2.2.20-1ubuntu1.3 昨日、access.logを見ていると、妙なリクエストがありました。 xx.xx.xx.xx - - [25/Dec/2012:10:17:30 0900] "POST http://xxxxxxxx.com/?strGet=xxxx HTTP/1.1" 200 1234 "-" "-" 普通、httpdへのGET、POST、HEADなどのリクエストは、 GET / GET /index.html GET /image/foo.jpg のように、DocumentRootからの自サーバの要素に対してのみ受け付けられると思っていたのですが、上記のように、POSTで全く別のサーバにリクエストを送信しており、コード200で正常に処理されています。 アクセス先の http://xxxxxxxx.com/ (パラメータなし)にJavascriptを切ってブラウザからアクセスしてみたら(危険な行為でしたが)、ウイルスバスターにブロックされました。 アクセス元のIPアドレス xx.xx.xx.xx は whois コマンドで調べたところ、オランダのホスティングサービスのようでした。 これは自分のサーバが何らかの踏み台にされたのでしょうか。 もしそうだとしたら、Apacheへのリクエストを、自サーバのリソースに限定する方法はないでしょうか。 GET http://foo.com/ POST http://bar.com/ などを阻止したいのです。 よろしくお願いします。

  • httpメソッドが使えない

    下記の内容のruby を実行したのですが、エラーが出てしまいます。 ---- require 'net/http' req = Net::HTTP::Get.new('/') Net::http.start('twitter.com') do |http| res = http.request(req) print res.body end ---- エラーメッセージ undefined method `http' for Net:Module (NoMethodError) ruby はver 1.8.7, 環境はMacOSX10.6.8です。 原因をご存知の方がいらっしゃいましたら、教えていただけないでしょうか? よろしくお願い致します。

    • ベストアンサー
    • Ruby