HTTPのGET要求パラメータ長制限問題と私の中国式教育に対するツッコミについて

7793 ワード

httpのgetリクエストのパラメータ長は制限されているので、クライアントからサービス側にデータを送信する場合、データ量が大きすぎる場合はgetメソッドではなくpostメソッドを使用します.
        私は、多くの人が私と同じように、この問題に対する認識は前の文字が描いたレベルにとどまっているだけで、あいまいで、知っているようで、知っているようで、知っているようだが、はっきりしていないと信じています.私达は中国の教育を批判することが好きで、いつも各种の弊害を列挙して、ここで、私はとても言いたいです、私达の教育、とても失败した1つの地方は、数百万人の大学生を育成して、数百万人の大学生は科学の精神を备える人は少ないです.先日、あるニュースを見て、ある先生が学生たちを連れて実験をしました.実験の内容は、温水がカエルを煮ることができるかどうかを検証することです.今まで、私达が见た各种の心の鶏のスープはすべて私达に教えて、ぬるま湯でカエルを煮て、カエルは飞び去ることができなくて、このストーリは私达に教えて、现状に安住しないでください、言うのは本当に良い哲理で、しかしカエルは本当にそんなに马鹿ですか?この先生はこのような疑いを持って学生たちと一緒に実験をしたが、実験の結果、水が熱くなるとカエルがTM飛び出した.何年も、この物語を信じて疑わず、この物語に10年もだまされて、真実を知った私は涙を流した.
怒りと恥ずかしさのあまり、私も反省して、この10年来、自分はどうして疑ったことがなくて、疑ったことがあるかもしれませんが、どうして実験をして確認しませんか?中国式教育の下の学生として、私たちは受動的に知識を受け入れるだけで、疑う度胸と権力はありません.中学校の时、国语の答案に必ず1篇の文章を読んで、それからいろいろな问题を出して、これらの问题の中で、必然的に1本の问题があって、あなたに文章の中心思想を分析させて、あるいはある1段に対して分析を行って作者の当时の考えを述べることができます.私の天よ、今の話で言えば、お父さん、あなたの答えは先生が提供した標準的な答えと一致しなければならないからです.私が最も心配しているのは、いわゆる標準的な答えがあまりにもでたらめで、私はよく考えています.作者は本当にそう思っていますか.作者はこの文章を書く時本当に先生が分析したように、いろいろな巧みな筋を設計して、いろいろな巧みな手法を運用して考えを表現しましたか?私が自分で作文を書いた経験から見ると、あなたが感じているときは、そんなに考えているのではないでしょうか.基本的には、何を考えているのか、文章は一気に書き上げられています.そんなに多くの後の諸葛亮式の分析と考えはありません.授業の休憩中に、どの神経が線を間違えたのか、突然何かを書きたいと思って、そこで10分待ちました.それは本当に文思が湧いて、それは本当に馬に頼って待つことができて、ほらを吹かないで、10分の文章は教室の上で模範文として朗読されます.しかし、どんなに疑っても、どんなに嫌でも、先生が教えてくれたやり方に従って文章を分析しなければなりません.そうしてこそ、作者自身も認めない答えに近づくことができるからです.
       詰め込み式の教育は、必然的に学生に実証精神が欠け、科学的な態度が欠けている.あなたは本屋に行ってぶらぶらして、重点的にコンピュータの技術の区域に行って、同じ分野、あなたは1冊の中国人の書いたことを探して、更に1冊の外国人の書いたことを探して、あなたは見たことがあって知っていて、差はいったいどこにあります.差はまったく技術ではありません.技術に差があるといえば、ありますが、もっと大きな差は外国人の本の多くが真剣に責任を負うことを厳禁する態度を持っています.彼らが本を書くのは学問をしているようです.あなたは中国の作者が書いた本を読んで、明らかに彼があなたをからかっていると感じることができます.だからこそ、いろいろな30日間で何を学んで、30日間で何に精通していますか.あなたは人をだまして、多くのプログラム猿、結局その一生はすべて中途半端で、ましてや30日は言うまでもありません.ここで、私は全力を尽くして皆さんに提案して、これから本を買って、必ず図霊教育シリーズの、一銭、一銭品、永遠の真理を買います.
       実は、私はもともと1篇の技术の贴り付けを书くので、しかし、第2段から、文思の泉は涌いて、中国式の教育に対するツッコミに曲がって、今、やはり本題に戻って、HTTPのGETの要求のパラメータの长さの制限の问题を言います.
       まず、HTTPプロトコルでは、GET要求のパラメータの長さに制限はありません.実際には、HTTPプロトコルはRUIの長さに制限はありません.プロトコルは規定されています.URIが長すぎてサーバが処理できない場合は、414ステータスコードを返すべきです.以下はHTTPプロトコルの原文です.
       The HTTP protocol does not place any a priori limit on the length of a URI. Servers MUST be able to handle the URI of any resource they serve, and SHOULD be able to handle URIs of unbounded length if they provide GET-based forms that could generate such URIs. A server SHOULD return 414 (Request-URI Too Long) status if a URI is longer than the server can handle (see section 10.4.15).
Note: Servers ought to be cautious about depending on URI lengths above 255 bytes, because some older client or proxyimplementations might not properly support these lengths.
    1999年に発表されたRFC 2616 3.2.1章から出ています.2014年、IETFはhttpプロトコルを更新し、RFC 2616を6つの個別のプロトコルに分割して説明した.より確実な証拠を出すために、私はこの6つのプロトコルもひっくり返した.RFC 7230の3.1.1章にも同様の記述がある.原文は以下の通りである.
    HTTP does not place a predefined limit on the length of a request-line, as described in Section 2.5.  A server that receives a method longer than any that it implements SHOULD respond with a 501(Not Implemented) status code.  A server that receives a request-target longer than any URI it wishes to parse MUST respond with a 414 (URI Too Long) status code (see Section 6.5.12 of [RFC7231]).

       新旧両バージョンのHTTPプロトコルはすべて同じ解釈を与えて、ここで2つのプロトコルの説明の住所を添付します
RFC2616          RFC7230
ではなぜ、多くの人が私と同じように、HTTPのgetリクエストのパラメータ長が制限されているという印象を残しているのでしょうか.サーバーやブラウザがURLの長さを制限していたのです.
Tomcatを例にとると、server.xmlには多くのパラメータを構成することができ、maxHttpHeaderSizeというパラメータがあり、このパラメータは要求ヘッダと応答ヘッダのサイズを制限しているが、実際には、URLのサイズも間接的に制限している.私の手にあるtomcatバージョンは7.0.55で、server.xmlはconfディレクトリの下にあり、server.xmlにはこのパラメータの構成はありません.このバージョンがリリースされるのではなく、ユーザーが自分で構成する必要があると思います.このパラメータが機能するかどうか、どのくらいのURLを制限するかについては、実際にテスト検証を行っていません.以上は私が資料を調べただけです.
メーカーのブラウザによってURLの長さが制限されています.私は多くの投稿を見て、IEのURLの長さの制限は2083文字だと言われています.多くのプログラム猿に比べて進歩していますが、まだ正確ではありません.getリクエストに対して、使用できるURLの長さは2048です.つまり、IEのgetリクエストは2048文字まで送信できます.しかし、本当の状況は本当にそうですか?
プログラム猿として、必ず群書を博覧する大志を持っていなければならない.そうしてこそ、技術の波に砂浜に叩かれず、城を攻めるライオンとして、厳禁の治学態度を持っていなければならない.私個人に対する警告であり、技術がどんなに粗くても、城を攻めるライオンの節操が必要だ.最近しばらくの时间、多くの无责任な転帖を见て、多くの注意深い権威の招待状にも屈服して、ここまで志を立てて、今后、できるだけオリジナルの招待状を书いて、もし転載するならば、事前に必ずその招待状の内容の有効性を検证します.
最後に、IEブラウザのgetリクエストのURLの長さがどれだけ制限されているかを検証します.まず、サービス側(node.js):
/**
 * Created by kwsy on 2015/8/15.
 */
var http = require('http')
var server = http.createServer(function(req,res){
    console.log(req.url);
    console.log(req.url.length);
}).listen(1337);

server.on('connection',function(socket){
    console.log('       ');
})

それから、URLをください.
http://localhost:1337/sheng?test=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

エディタの制限を受けて、上のurlは問題が表示されます.sheng?testと繋がっているはずなのに、合わせて2083文字で、IEブラウザのアドレスバーにコピーして車に戻る  次の図は実際の運転の結果です
关于HTTP的GET请求参数长度限制问题和我对中国式教育的吐槽_第1张图片
サーバが受け取ったurlの長さは2026、つまり、一部が切り取られ、前の「http://localhost:1337」長さは21ですが、
加えて2047、私が使っているIE 11は、実験を経て、
IE 11によるget要求のurl長の制限は、ネット上の投稿でいう2048文字ではなく、2047文字である.
この文字のためにこのような投稿を書く価値がありますか?値!この招待状で自分に警告して、いかなる时、いかなる事をして、すべて学校を治めることを厳禁する态度があります
いずれも投機の巧みな心理状態を拒否し、一労永逸多快好省の便利な思想を拒否しなければならない.IT技術の雰囲気を浄化して、私から始めます.