利益は14シュウHTTPを持って何ですか?どのような欠点がありますか?

説明「パースペクティブのHTTPプロトコルは、」私は、参照のみを目的として、ノートを勉強何オタクがレッスンの列を開く時、記録の羅Jianfeng(Qihooは360人の技術専門家)です。

私は、HTTPの5つの基本的な機能について話を提示し、この講演会は、その利点と欠点を言うことです。実際には、これらの機能は、HTTPとみなすべきであるが、この話は賛否両論に集中し、その良い面と悪い面を評価します。

       また、私はあなたが真剣にそれについて考えていないかわからない、と今日のあなたの答えを見てみることができますし、私の意見は、議論するという考えと一致している、2つのクラスの仕事で左側に話します。

       しかし、私は、今日の議論は、HTTP / 1.1に制限されていることを思い出させるしたいと思い、正式な講義の前に、長所と短所が唯一のHTTP / 1.1のためでもあると述べました。実際には、それに続く列はHTTPSとHTTP / 2についての話は、HTTP / 1.1の利点と完璧なプレーの欠点のためです。

シンプル、柔軟、簡単に拡大します

       まず、HTTPの中で最も重要かつ最も顕著な利点が「あるシンプルで、柔軟、簡単に展開します。」

       人々が考えるだろうHTTPとの最初の接触、HTTPプロトコルは非常に「ある簡単な基本的なメッセージ形式でもなくて、「ヘッダ+ボディ」、ヘッダ情報が、それはまた、一般的に英語の単語を使用している、単純なテキスト形式であり、」 、RFC文書を参照してください推測に頼る推測することができ、「かなり近いし。」

       でき過小評価しない「シンプル」、この利点は、それがより多くの人が研究し、HTTPアプリケーションの開発できるように、学習および使用のしきい値を低減するだけでなく、と私は最初の話を言って、「シンプル」は進化を意味しますいわゆる「少ないよりは」、の拡大の可能性「シンプルで複雑なシステムは、」「複雑なシステムが簡単になる」よりもはるかに簡単です

       だから、「シンプル」この基本的な設計コンセプト、HTTPプロトコル「の追加の下で、柔軟で拡張しやすい、」利点。

       「柔軟で、簡単に拡張するために、」実際にそれらの一つであるが、「柔軟な」それがなる「簡単に拡張すること」と「簡単に拡張するために」HTTPメイクをより柔軟に曲がり、大きなを持っているので、お互いを促進し、相互に補完しますパフォーマンス能力。

HTTPリクエストメソッドにプロトコル、URI、ステータスコード、理由句、ヘッダフィールドとすべてのコア構成要素は、「ハードコード化された」ではないが、ブラウザとサーバの最大与えられ、任意のカスタマイズ、拡張又は説明に開発を可能にします機能不足しているものか、それが何を望んで最大のフィールドに、独自のエラーコードを追加 - 信頼と自由は、また、インターネット「自由と平等」の精神とよく合います。

       「トラッキング拒否は」DNT(トラッキング拒否を)フィールドヘッダの使用の良い例です。なお、第1のユーザの嗜好を追跡するための監視のウェブサイトを防ぐため、プロテクトユーザーのプライバシーに、Mozillaが提案されました。しかし残念ながら打ち上げ日からDNTはほぼ7〜8年の歴史を持っていますが、多くのサイトはまだDNTを「無視」を選択します。DNTは、基本的には失敗したが、それはまた、HTTPプロトコルは、「柔軟性と自由」であると一方的に力を虐げないでしょう示しているが。

「柔軟は、簡単に展開するには、」機能はまた、「信頼性の高い輸送」のHTTP定義に反映され、それはUNIXドメインソケット、TCPを使用することができるだけでなく、プロトコルの基礎となる具体的な制限はありません、あなたはまた、SSL / TLSを使用する、あるいはUDPに基づくことができます上部セマンティクスが常に安定している間QUIC、下層は、自由に変えることができます。

広く使われている、成熟した環境

       HTTPプロトコルのもう一つの大きな利点は、「され、広く使用されたハードウェアおよびソフトウェア環境は非常に成熟しています」。

       インターネットの普及、特にモバイルインターネット、HTTP触手で世界の隅々にまで拡張されました:複雑なJSON、XMLデータへの単純なWebページから、ブラウザからデスクトップ上に携帯電話の様々なAPPに、からニュース、お店にバブルフォーラム、銀行、「鶏」を読んで、あなたはほとんどHTTPを使用せずに場所を見つけることができません。

       だけでなく、アプリケーションの分野では、HTTPプロトコルの開発の分野でも広くサポートされています。それは、「ととても自然、プログラミング言語またはオペレーティングシステムに限定されるものではなく、クロスランゲージ、クロスプラットフォーム」の優位性。シンプルな特性の自体は非常に簡単に実装することであるため、また、そのほとんどすべてのプログラミング言語は、私はそれの別の例は、あなたは私よりももっと身近かもしれないと感じるライブラリHTTP呼び出しと周辺開発およびテストツールを、持っています。HTTPは、広く「ネット」購入サーバは、データセンターを構築し、ウェブサイトを運営する努力を惜しまなかった様々なインターネット企業と伝統産業の企業を支援するために多くのハードウェアインフラストラクチャがある使用の後ろに、CDN高速繊維は連続できるように、HTTPをインターネットエクスペリエンスを最適化よりスムーズに実行します。

       「広く」この利点は、決定します:起業家や求職者かどうか、それはライト・アプリケーションにサーバーまたはクライアントを行われているかどうか、HTTPプロトコルでは、基本的なスキルを習得する必要があります。

ステートレス

       HTTPは、利点と欠点の両方があるために見られる二つの利点は、それが「ステートレス」の最後の講義に来て、私たちは「両刃の剣」、見てみましょう、それがあります。

「ステートレス」、それは何が良いのですか?

     あなたは、レコードのステータス情報に追加のリソースを必要としないので、サーバは単純を達成するだけでなく、サーバーの負担を軽減だけでなく、あなたがサービスを提供するために、より多くのCPUとメモリを置くことができ、「メモリ容量」を持っていないため。

       また、「ステートレス」はまた、「状態」の間に差がない、サーバーが同じであることを示し、それは容易に、状態が矛盾処理エラーをもたらさないので、任意のサーバにリクエストを転送するように負荷分散を可能にする、クラスタ化することができます「ヒープ・マシン」と「厄介な」高同時実行容易な可用性を使用しています。

       次に、「ステートレス」それと間違っている何?

       サーバがない「メモリ容量」を持っていないので、それは連続マルチステップ「トランザクション」操作の必要性をサポートすることはできません。例えば、電力供給のショッピングは、我々は最初にログインした後、ショッピングカートを追加し、受注は、課金、支払い、この一連の動作は、ジョブのユーザーの身元を知っている必要がありますが、「ステートレス」サーバーが相互に関係しているこれらの要求を認識していない必要があります、各だけでなく面倒、再び識別可能な情報を聞いていただけでなく、不必要なデータ伝送量を増加させます。

       HTTPプロトコルだけでなく、最高の「ステートレス」と「ステートフル」ですが、実際には「魚やクマの足」の両方のようにAの良い物を持って、両方があるので、これは「クッキー」クッキー技術(講義19)です。

はっきりと

       「両刃の剣」の一つのHTTPプロトコルの長所と短所もあり、されて明確に送信

       パケット内のプロトコル(正確ヘッダ部分)が、読み取ることができる単純なテキストと、バイナリデータを使用しないことを「クリア」を意味します。

       コントラストTCP、UDP任意の外部ツールの助けを借りずに、このようなバイナリプロトコル、その明確な利点は、ブラウザ、Wiresharkのか、tcpdumpのパケットキャプチャした後、あなたは直接見ることができますまたは当社の開発とデバッグ作業のため、肉眼で簡単に変更します大きな利便性をもたらします。

       平文の明らかな欠点が同じであるもちろん、すべてのHTTPパケットは、悪意のある人々が侵略し、何のプライバシーを持っていない長い伝送リンクのあらゆる面で「白昼」にさらされますトラフィックに関するデバイスリンク、単に「バイパス」の内部は、あなたがコミュニケーション上のスパイを達成することができます。

       あなたは今までそれニュースなどの「無料Wi-Fiトラップ」のことを聞いたことがありますか?

       ハッカーインターネットユーザーをだましてのWiFiホットスポットスタート「釣り」を設定するには、公共の場所で、平文で送信されたHTTPの欠点を使用することです。こうした銀行のカード番号、パスワードや他のサイトなどの機密情報がある場合、このWiFiホットスポットに接続すると、すべてのトラフィックが保存されて内部をインターセプトされ、それは危険である、ハッカーがあなたは、彼らがやりたいあなたはふりをすることができ、データを取得します。

安全でありません

       「クリア」の欠点に関連するが、別の欠点があるとまったく同じではない「安全ではありません。」

       セキュリティの多くの側面がありますが、平文は、「同一性」と「整合性チェック」HTTPが欠けているの両方に、ただ一つの欠点「機密」の用語です。

     「アイデンティティ」は「単純にあなたがしていることを証明する方法。」比較的容易なハンドルに実際の生活の中で、あなたは、IDカード、運転免許証やパスポートを考え出すことができる、と当局は上の写真を刻印している、あなたの身元を証明することができます。

       しかし、サイバースペースの仮想世界でそれが面倒であることが確認されました。HTTPは、両側の本当の身元を確認するために、通信の効果的な手段を提供していません。しかし、先にこのメカニズムの明確な欠点で送信述べたように、基本的なプロトコルの認証メカニズムがあるが、ほとんどは非常に簡単に破損する、「取り替え」すると言うことができます。HTTPプロトコルのみ場合は、「釣り」の個人情報のすべての種類を取るし、次いで、それはおそらくあなたがまったく同じページが表示されますが、それは偽のウェブサイトである、と。

       HTTPプロトコルは、データ送信処理では、「整合性チェック」をサポートしていないと簡単に信憑性を検証するために改ざんすることはできません。

多分彼は別の千50元を回し、あなたはボブが実際には数百ドルを投入するかどうかを知ることができない「あなたは、百元を転送暁明」:たとえば、あなたがHTTPと銀行を受け取るには、メッセージを送信しましたしかし、百元がハッカーによって改ざんされているになった、それはHTTPプロトコルのようだったものを最終的に真実はあなたに答えを与えるために方法はありません。

       銀行はMD5を使用することができますが、デジタルでメッセージへのSHA1アルゴリズムをダイジェストでなく、「クリア」は、この致命的な欠陥ので、ハッカーは、一緒に変更することができます要約とともに、最終的にメッセージが改ざんされているかどうか判断できません。

HTTP危険なの欠点に対処するためには、そうHTTPS、どの我々は、後にありました。

演奏

       最後に、我々はそれが6つの言葉で要約することができ、HTTPのパフォーマンスについて話:「悪くない、良いではない十分な。」

       HTTPプロトコルはTCP / IPをベースにしており、「要求 - 応答」を使用しているこれら二つの点で重要なパフォーマンスので、通信のモード。

       満たすのに十分な、それ以外の場合は、四十年以上のインターネットアリーナの局面ではないだろう、それは、非常に徹底的に研究オペレーティングシステムのカーネルの慎重な最適化により統合されている、TCPのパフォーマンスが悪いわけではないことを言わなければなりませんほとんどのシーンの。

       残念ながら、今日の川や湖、川や湖に慣れていない、と今インターネットはモバイルかつ並行性の高いことを特徴としている、我々はそう時々、パフォーマンスのTCPレベルでのHTTPプロトコルは十分に良いだろう、安定した接続品質を保証することはできません。

       「要求 - 応答」モデルのパフォーマンスの問題がある、HTTPによって悪化したときに有名な「ブロッキングラインの先頭」(ヘッドオブラインブロッキング)注文要求で送信された要求のシーケンスが何らかの理由でブロックされています、 、後続のすべての要求は、クライアントの遅延がデータを受信引き起こす可能性があり、キューに入れられ、ブロックされています。

       この問題を解決するために、それはそのような計画を切るように、「キャッシュ」の章があり、公式の標準特別研究プロジェクト「のWebパフォーマンスの最適化」、HTTP(RFC7234)、さらに非公式「トリック」から生まれました、合併が埋め込まれたデータは、ドメイン名は、JavaScriptの「黒の技術を」断片化のように。

       HTTP / 2およびHTTP / 3、私は用語の後ろに展開されます。しかし、今、私たちは究極のソリューションを持っています。

概要

HTTPの最大の利点は、簡単で柔軟かつ拡張が容易です。

HTTPは、アプリケーションが、インターネットのインフラは非常に広範で、成熟したハードウェアおよびソフトウェア環境を持っています。

HTTPはステートレス、あなたは簡単に、スケーラビリティをクラスタ化することができますが、時々、クッキー技術を備えた「ステートフル」を実装する必要がありますされます。

HTTPは、クリアテキストで送信され、データは、研究および分析を容易にするために、完全に表示され、それが盗聴に対して脆弱です。

HTTPが確保されず、メッセージが改ざんされたかどうかを判断することができない通信における両当事者のIDを確認することができません。

HTTPのパフォーマンスは悪くないですが、完全に今日のインターネットに適応していない、改善の余地がまだあります。

HTTPなど避けられない欠点が、しかし、あなたも恐れることはありません、次の「高度な、すべての欠点は、これに基づいて解決策を見つけることができ、それは「柔軟でスケーラブル」の最も重要な利点の一つを有することを忘れないでください記事「と」安全章では、「について話します。

職場でのレッスン

お気に入りのどちらのHTTPの利点?大半は不利であるもののようではないですか?なぜ?

あなたはさらに拡張したり、それが今日言及したこれらの利点や欠点の議論を補完することができますか?

あなたはこれらの欠点のためにいくつかのソリューションにそれを前方に配置しようとすることができますか?

おすすめ

転載: www.cnblogs.com/wxcx/p/12608804.html