質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

2755閲覧

httpリクエストのクエリパラメータにプロトコルのバージョンが付加される問題(rails)

退会済みユーザー

退会済みユーザー

総合スコア0

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2016/04/08 05:32

編集2016/04/08 05:33

お世話になっております。

本日サーバ側で数件Webアプリケーション動作がうまくいかない事案が発生しており,原因を調査したところ,
一部端末からのリクエストにHTTP/1.1という文字列が付加されていました。
これは,うろ覚えですが,利用者が明示的にあるいはブラウザ側が付加しているバラメータだったと思うのですが,自分でブラウザを利用する際にどういう条件でこの文字列が付加されるかご存知の方いらっしゃいますでしょうか?
また,この文字列を検出した場合はサーバ側でsanitizeする方法で直そうと思っていますが,もっといい方法はあるでしょうか?
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2016/04/08 05:41

実際のリクエストデータなどを、差し支えない範囲で示していただけないでしょうか。
退会済みユーザー

退会済みユーザー

2016/04/08 06:05

ありがとうございます。 リクエストのやり方としては,jsonを文字列にして,URLで送っています。 http://hoge.com?json={key1:value1,key2:value2}HTTP/1.1 というリクエストが送られています。 正常に動作している利用者の場合は,HTTP/1.1が付加されずにリクエストが送られています。
guest

回答2

0

この辺も参考になるかもしれません。
HTTPバージョン(wiki)
RFC2616

まず、HTTPプロトコル上、1.0以降のバージョンのリクエストであれば、リクエストにHTTPバージョンを付加しなければいけません。
次にリクエストのHTTPバージョンは何を付けるべきか、ですが、これはクライアント側の対応している一番上のバージョンになります。

従って、「ブラウザを利用する際にどういう条件でこの文字列が付加されるか」というと、そのブラウザが対応している一番上のバージョンを常に付与するはずです。

maisumakunさんの回答通り、パスとHTTPバージョンの間に空白が無いだけであれば、送信者側のバグっぽいですね。

投稿2016/04/10 03:46

Tira

総合スコア91

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/11 03:43

情報ありがとうございます。 HTTP/1.0でリクエストに限りバグが起きているようで,こちらに対応するために書いたコードにバグが混在している可能性が高そうなようです。 ご回答いただきありがとうございました。
guest

0

ベストアンサー

そもそも、HTTPのGETメソッドは、GET パス HTTP/Versionという構造になっています(参考)。

おそらくは送信側のバグかと思います。

投稿2016/04/08 06:10

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/08 06:31

ありがとうございます。 空白がなんらかの原因でtrimされてパラメータに含まれてしまうということなんでしょうか。 原因をもう少し調査してみますが,貼っていただいたリンクを読んでプロトコルの仕様を確認してみます。
退会済みユーザー

退会済みユーザー

2016/04/11 03:45 編集

その後色々調査を進めたところ,HTTP/1.0でリクエストに限りバグが起きているようで,HTTP/1.1に対応させるために書いたコードにバグが混在している可能性が高そうであることがわかりました。 ご回答いただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問