この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
プログラミング
›
.Net/C#
›
ASP.NET パラメータパス、長さ制限、使用注意事項。 ...
眺める:
20025
|
答える:
0
[ASP.NET]
ASP.NET パラメータパス、長さ制限、使用注意事項。
[リンクをコピー]
クズども
掲載地 2018/03/08 10:18:07
|
|
|
|
1. 問題の原因
プロジェクトリリース後のバグ統計の添付ファイル「Post-Release Problems」には以下の通りがあります:
経験の蓄積として、これらの問題、原因、解決策はチェックリストに含め、次の通りです。
最初の質問:URLパラメータの上限は正確な参照でしょうか? 上限はどれくらいですか?
第二の質問:なぜPOST時にデータ量に制限があるのですか? 上限は128Kですか?
2. 問題解析
1. 最初の質問:
1) URLにパラメータの上限はありません。 問題は実はIEにはURLの長さ制限があることです。
2) HTTPプロトコル仕様はURLの長さを制限しません。 この制限は特定のブラウザやサーバーによって課される制限です。 IEのURL長制限は2083バイト(2K+35)です。 NetscapeやFireFoxなど他のブラウザでは理論的な長さ制限がなく、その制限はオペレーティングシステムのサポートに依存します。 [参考文献1]
3) 「可変長パラメータはURLを通じて渡される」とは、フォームを送信時にGETメソッドが使われるという意味で、POSTメソッドではありません。 この潜在的なエラーの原因は、フォームデータを送信するためのGETメソッドの使用です。 なぜなら、GETメソッドはURL内のデータをサーバーに渡して処理のために渡すからです。
4) この制限はパラメータ値のデータ長さだけでなく、URL全体の長さであることに注意してください。
5) IEのURL長の制限であるため、GETメソッドとPOSTメソッドの両方にこの制限があります。
(FORMのGETおよびPOST方法の詳細については関連文書[参考文献2])を参照してください)
おすすめ:
1) アプリケーションが存在する環境、例えばウェブアプリケーションのブラウザやサーバー環境を理解し、その特定のパラメータ制限を理解すること。
2) 複雑なデータを提出するにはできるだけPOSTメソッドを活用すること。 注:FORMがメソッド属性を書き込まない場合、デフォルトではGETメソッドを使用します。
結論(チェックリストに書き込み):
GETメソッドでデータを提出する際は、IE環境でのURL長2083バイトの制限を考慮する必要があります。
2. 第二:
1) 理論上、POSTにはサイズ制限がありません。 HTTPプロトコル仕様にもサイズ制限はありません。
2)「POSTデータのサイズ制限は128K」というのは正確ではなく、POSTデータには制限がなく、サーバーのプロセッサの処理能力が制限的な役割を果たします。
3) ASPプログラムでは、Requestオブジェクトが各フォームフィールドを処理する際のデータ長制限が100Kに制限されています。 しかしRequest.BinaryReadではそのような制限はありません。 10万以上のフォームドメインデータを処理する必要があるソリューションについては、以下の[参考文献3]を参照してください。
4) 拡張として、IIS 6.0ではセキュリティ上の理由から制限を強化しました[参考文献4]。 また、以下の点にも注意を払う必要があります:
IIS 6.0では、最大200KBのASP POSTデータがデフォルトで、フォームフィールドあたり100KBの制限があります。
IIS 6.0アップロードファイルのデフォルトサイズは4MBです。
IIS 6.0では、最大リクエストヘッダーは16KBに設定されています。
これらの制限はIIS 6.0以前には存在しませんでした。
おすすめ:
1) ランニング環境のデフォルト設定を知っておくことで、問題が起きたときに設計し迅速に解決できます。
2) サーバーバージョンも考慮すべきです。 IISの各バージョンはこれらのパラメータに対して異なるデフォルト設定を持っているため、必要に応じて情報を見つけて比較表を作成してください。 このようにして、開発やテストのための参照が生まれます。
3) これらのIIS 6.0の制限は実際にはデフォルト設定であり、実際のアプリケーション環境で変更可能です。
WINNT/system32/inetsrv/MetaBase.xmlにおけるデフォルトの定義は以下の通りです:
AspBufferingLimit="4194304" はアップロードされたファイルの最大サイズに対応しています
AspMaxRequestEntityAllowed="204800" はPOSTの最大データ量に対応します
...
結論(チェックリストに書き込み):
ASPを使用する場合、POSTフォームの一般的な読み取り処理にはフィールドあたり100KBの制限があることを考慮する必要があります。 Request.Binaryを使うかどうかを検討してください。
先の:
asp.net mvcはフォーム投稿をHTML送信許可に設定します
次に:
System.Linq.Dynamic
関連記事
•
ASP.NET Core (31) がgRPCメタデータ取得について
•
.NET/C#はHttpClientの一般的なリクエストトリックメソッドを使用しています
•
SSE (2) ブラウザタブ切り替え後のフェッチイベントソース再接続問題
•
ASP.NET コア例外ヘッダーは読み取り専用で、応答はすでに開始されています
•
Angular 17シリーズ(XIX)グローバル設定HTTPリクエスト読み込みアニメーション
•
Angular 17シリーズ(18)ForkJoinは複数のHTTP並列リクエストを待ちます
•
PHPはすべてのヘッダー情報を取得します
•
.NET/C# Httpクライアントソースコードの簡単な解析
•
ウェブ開発用のajaxフックはすべてのXMLHttpRequestリクエストを傍受します
•
ASP.NET コア(18) シンプルなOutputCache出力キャッシュをカスタマイズする
閲覧したセクション
ブロックチェーン
技術チャット
オラクル
サーバー構成
ジャワ
その他の番組編成
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com