• 締切済み

HTTPレスポンスをUDPにより受け取った場合

HTTPというプロトコルは、UDPの上でも動かせると聞きました。 そこで、以下のような状況(通常はまずあり得ないのですが)が発生した場合について質問があります。 (1)ユーザがHTTPリクエストを「TCP」で送った。 (2)そのHTTPリクエストに対するレスポンスを「UDP」によって受信した。 このように(1)と(2)でトランスポートプロトコルが異なる場合でも、ユーザはHTTPリクエストに対するレスポンスを無事に受け取ることができるのでしょうか? もしくは、ユーザ側で受信時に何らかの操作が必要になるのでしょうか? 通常あり得ない設定の話で恐縮ですが、気になっているのでご意見お聞かせいただければ幸いです。 よろしくお願い致します。

みんなの回答

  • EF_510
  • ベストアンサー率50% (306/604)
回答No.2

HTTPはどちらでも動きはするようですが通常はTCPで実装しますね。 プロトコルという言葉から判るとおりに、「TCPで送ってUDPで帰ってくるかもしれない」という想定をして実装しないと通信できないです。 なので、そのままでは受け取れないと考える方が自然です。 もし、実装するとしたら「これからトランスポートモードを切り替える」といったやりとりが(TCPで)行われた後に切り替わる…ですかね。

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>HTTPというプロトコルは、UDPの上でも動かせると聞きました。 そんな例は見たこと無いですけどね… ということで気になったので検索したら下記のページが。 http://ameblo.jp/sogoh/entry-10481539941.html UPnPだと、ふつうのサーバ<>クライアントとは違うような。 >(1)ユーザがHTTPリクエストを「TCP」で送った。 >(2)そのHTTPリクエストに対するレスポンスを「UDP」によって受信した。 普通のブラウザはHTTPリクエストを送信した接続でHTTPレスポンスを待ちますから、 そのままタイムアウトしてしまうだけかと。 UPnPでのUDPを使ったHTTPなら、対応機器同士でUDPパケットの監視とかしているでしょうから問題ないと思いますが、 一般的なブラウザじゃ無理ではないでしょうか。

関連するQ&A

  • 80番ポート(TCP,UDP)の意味

    パケットフィルタリングの設定のために、許可するプロトコル/ポートを調査しています。 Wikipedia「TCPやUDPにおけるポート番号の一覧」によると、「80/TCP,UDP」のようにTCPとUDP両方記載されているものがあります。 私は80番ポート(HTTP)はTCPのみ使用していると思っていましたが、この表記によるとUDPも使用していると解釈できます。 80番ポートに限らず、22(SSH)、25(SMTP)なども同じ表記となっていますが、これはどういう意味なのでしょうか? 個人的には以下の3パターンのいずれかに分類されるのではと考えています。 ■80(HTTP)を例にとったパターン 1.HTTP通信はTCP、UDPどちらのプロトコルでも使用可能 (ソフトウェアはどちらのプロトコルが来ても対応できる) 2.HTTP通信はTCP、UDPの両方を使用している (ソフトウェアが必要に応じてプロトコルを使い分けている) 3.HTTP通信をTCP、UDPのどちらで実装するかはソフトウェアによって異なる ポートによって上記パターンのいずれになるかは異なりと考えられますので、TCPとUDP両方記載されているものは、両方セットでフィルタに設定しようと考えていますが、その判断について基準などがあればご教示をお願いいたします。

  • HTTP POST によるレスポンスCGIについて

    HTTP POST によるレスポンスCGIについて いつも大変お世話になっております。 タイトルのシステムの組み方についてご質問がございます。 「内容」 決済システム会社からのリクエストに対するレスポンスを返すCGIを作成します。 「仕様」 通信方法:HTTP POST キャラクタセット:Shift-JIS text/csv(←ここの意味もわかりません) 仕様書には 「Httpリクエストに対するレスポンスとしてHTTPボディ部に記述してください」 例) 処理OKの場合:OK,    処理NGの場合:NG,既に完売済み CSV形式(カンマ区切り) とあります。 私のスキルとしては、「html」「PHP」が書ける程度です。 javaやPerlは全然分かりません。 仕様は単純かと思いますが、リクエストに対して自動でレスポンス(OKかNG)を返す仕組みが分かりません。 ご教授願いますでしょうか。

    • 締切済み
    • CGI
  • HTTPレスポンスの終端はどうわかる?

    MacOSX、C言語でsocket(),writeなどを使ってサーバにリクエストを送り レスポンスを標準出力しようとしています。 とりあえずレスポンスをbuf[BUFSIZ]にreadさせようとしているのですが、 レスポンスの内容のサイズがBUFSIZ以上だった場合、繰り返しreadさせる 必要があります。 なので(かなり簡潔に書きますが) while(1) if(buf[i]==EOF){break;} n=read(socket,buf,sizeof(buf)-1); みたいなことを考えました。がこれだとループが止まってくれません。 延々と読み込んでは表示してくれます。。。 たぶんHTTPレスポンスの終端がEOFだと思ったのが違うのだと思います。 HTTPレスポンスの終端というのはどう判断したらよいのでしょうか。 よろしくお願いいたします。

  • UDPの信頼性について

    UDPでは、信頼性のない通信プロトコルとされていますが、あるノード内の2つのプログラム間でUDPを使用した通信(ローカル通信)をした場合も、信頼性がない通信となるのでしょうか? ここでいう信頼性とは下記を意味しています。 ・ 送信した順序で、受信側が受信する。 ・ 送信したメッセージを、1つも失うことなく受信側で受信できる。

  • UDPポート110(POP3)の使われ方??

    ファイアウォールの設定をやっているのですがパケットフィルタリングの設定でPOP3を許可したところポートスキャンを行うとTCPだけではなくUDPも開いていることがわかりました。 私の認識ではPOP3はTCPだけを使っていると思っていたのですがUDPも何かに使用しているのでしょうか?ご存知の方がいたら使用目的等をご教授願えないでしょうか? ちなみに他のポートは使用されているプロトコルのみしかポートは開きません。例えばHTTPやHTTPS、SMTPなどを許可するとそれぞれTCPだけしか開いてませんでした。 設定を行っているのはFortigateです。 よろしくお願いします。

  • TCPとUDPについて

    通常の問い合わせをUDP では なくTCPを使った場合、どのような影響が出るんでしょうか??

  • HTTPリクエスト

    ブラウザで画面操作を行うことによって、サーバへのREQUEST/RESPONSEが発生しますが、 その画面操作とは別に同じWindowで一定間隔かつ自動でサーバにREQUEST(※)を投げることは できますか? 上の※のRESPONSEのどこかの値を参照し、条件に一致した場合に別のREQUESTをサーバに 投げるようなことはできますか?JavaScriptを使えばできますでしょうか? よろしくお願いします。

  • HTTPパケットを見るソフトで名前が思い出せません

    前に使ったことがあるのですが、名前が思い出せません 類似のソフトなど知っていたら教えてください。 やりたいこと ・開発用にHTTPプロトコルの中身を見たい ・いつも見たいわけではないので常駐型はできれば避けたい(前に使った事があるのはProxyのように間に入りポート番号を変えてForwardしてくれていました) ・1リクエストと1レスポンス毎に、HTTPの内容が表示されて一旦停止。書換え後送信(受信) こんなソフトをご存知だったら教えてください。 環境はWindowsXPです

  • ブラウザでHTTPレスポンスがうけとれない

    単にIDを返すだけのWebサーバに、telnetから80番ポートにアクセスし、HTTPリクエストを送るとレスポンスを受け取れるのに ブラウザからアクセスするとレスポンスを受けとれずタイムアウトになってしまいます。 WireSharkでパケットを調べてみると、ブラウザからアクセスした場合も、 問題なくWebサーバからIDが返されていることは確認できました。 しかし、ブラウザではサーバからのレスポンス待ち状態が続き、しばらくするとタイムアウトになってしまいます。 また、他のPCのブラウザから該当のWebサーバにアクセスすると、 問題なくレスポンスをうけとりIDがブラウザに表示されることも確認しました。 何が原因でこういうことが起こるのでしょうか。 教えて頂けると大変助かります。 OS:Windwos 7 32bit ブラウザ:Explore8,Chrome サーバからのレスポンス(telnetでアクセスした際に取得したもの) HTTP/1.1 200 OK Content-Type: text/plain Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Date: Mon, 20 Jan 2014 11:12:37 GMT Connection: close SYJ0P48

  • C#でUDP通信

    C#でネットワークプログラミングを行いたいと思っています。 使用するプロトコルはUDPです。 TCP通信の参考書やwebページは見掛けるのですが UDPに関する資料はなかなか見つけることができません。 コーディングする上で、 TCP通信のプログラムをどのように変えたらよいのか 教えてください。 ちなみに、Windowsで開発する場合は WINSOCKを使ったほうがよろしいのでしょうか。