0

iPhone アプリケーションと連携する Web アプリケーションを設計しています。非常に大きな URL を Web サーバーに送信します (約 15000) 。NearlyFreeSpeech.net を使用していましたが、2000 文字までの URL しかサポートしていません非常に大きな URL をサポートする Web ホスティングを知っている人がいるかどうか疑問に思っていました。ありがとう、アイザック

編集:私のプログラムは Safari で画像を開く必要があります。私はこれを2つの方法で行うことができます:

  • URL でエンコードされた base64 を送信し、クエリ パラメータをエコーするだけです。
  • 最初にアプリケーションのサーバーに POST すると、サーバーは写真をデータベースに保存した後に一意の ID を返信し、それを URL に追加して Safari で開き、データベースから写真を取得して削除します。データベースから。

ほら、私は怠け者で、Mobile Safari が最大 80,000 文字の URI をサポートできることを知っているので、これで問題ないと思います。これに本当に問題がある場合は、教えてください。

編集:私はそれを適切な POST 方法で行うことになりました。ありがとう。

4

3 に答える 3

19

15,000 文字の長い URL を送信する場合、おそらく次のようになります。

代替テキスト http://img16.imageshack.us/img16/3847/youredoingitwronga.jpg

代わりに HTTP POST のようなものを使用してください。

直面している制限は、ホストの問題ではなく、Web サーバーには URL の長さの制限があるという事実です。このページによると、デフォルトでは、Apache は約 4k 文字に制限され、IIS は 16k 文字に制限されています。

于 2009-04-05T02:09:01.467 に答える
3

Although it's not directly answering your question, and there is no official maximum length of a URL, browsers and servers have practical limits - see http://www.boutell.com/newfaq/misc/urllength.html for some details. In short, since IE (at least some versions in use) doesn't support URLs over 2,083 characters, it's probably wise to stay below that length.

于 2009-04-05T02:06:54.340 に答える
2

Safariで開くだけで、サーバーが関与する必要がない場合は、data:URIを使用しないでください。

ネットワーク経由で長い URI を送信することは、基本的に正しいことではありません。お気づきのとおり、一部の Web ホストは長い URI をサポートしていません。一部のプロキシ サーバーは、長い URL でチョークすることもあります。つまり、これらのプロキシの背後にいるユーザーに対してアプリが機能しない可能性があります。アプリを別のブラウザーに移植する必要がある場合、他のブラウザーはそれほど長い URI をサポートしていない可能性があります。

サーバーにデータを取得する必要がある場合は、POST を使用します。はい、余分な往復ですが、はるかに信頼性が高くなります。

また、GET リクエストを使用してサーバーにデータをアップロードしている場合、あらゆる種類のクロスサイト リクエスト フォージェリ攻撃に対して脆弱です。基本的に、攻撃者はユーザーにリンクをクリックさせるだけで、ユーザーをだましてヤギなどを自分のアカウントにアップロードさせることができます ( TinyURLや別の URL 短縮サービスによって隠されているか、Web ページにリンクとして埋め込まれている可能性があります)。クリックしている URL をよく見てはいけません)。

サーバー上で実際には何も変更しないクエリパラメーター以外では、サーバーにデータを送信するために GET を使用しないでください。

于 2009-04-05T03:06:17.273 に答える