HTTPプロトコルが最初はコネクションレスになるように設計されたのはなぜですか?
-
06-07-2019 - |
質問
私に関する限り、AjaxはHTTPプロトコルで接続指向のように動作するための回避策を提供します。しかし、なぜHTTPプロトコルは最初は接続指向に設計されていなかったのですか?
解決
接続が意味をなさないものに使用することを目的としたため。
HyperText Transfer Protocolとして設計されたため、「ドキュメントXを送信してください」という形式のメッセージを送信できるようにするだけで、「リクエストしたとおりにドキュメントXがあります」という形式のメッセージを送信するだけでした。
このようなプロトコルは永続的な接続を何に使用すべきですか?
他のヒント
そしてシンプル。
HTTPは単純であり、単純なものに簡単に使用できることを意味するため、振り返ってみると、それほど悪いことではないでしょう。 そして、その上にレイヤーを構築することにより、状態を必要とするより困難で複雑なものに使用できます。
HTTPが広く採用され、魅力的になったのはまさにこの単純さです。 単純ではない場合、n-oneが必要としない限り、それは単なる別の複雑なプロトコルでした。 あなたが私を信じていない場合、通信用にsay RPCを、表示/レンダリング用にX11を使用してajaxアプリを書かない理由を教えてもらえますか? :D
HTTPは元々、オンラインストア、銀行、ワードプロセッサなどではなく、読み取り/書き込み情報ストアのようなWikiを実装するために設計されました。 Tim Berniers-Leeとのインタビューを読んだことを思い出します。彼は、Wikiが(言い換えれば)それがWebを機能させることを意図したものとして広く受け入れられていることに本当に満足していました。 実際には、これはより広いWebでは発生せず、ほとんどのサイトはこの機能を有効にすることを目的としたHTTP PUTメソッドを無効にします。
-
AJAXは、接続指向のように動作するための回避策ではありません。ユーザーとのやり取りに基づいて、サーバーから完全なマークアップを再度取得するのではなく、クライアント側でコンテンツの一部のみを更新するようにします。ブラウザーとWebサーバーの間に往復接続を確立しません。
-
すべてのサーバーがすべてのクライアントとライブ接続している場合、インターネットのサイズは数百万人のユーザーに制限されます。
HTTPは元々あり、まだ無接続です。 AJAXは、最新のブラウザーのJavaScript機能を使用して、ページをリロードせずにXML(または多くの場合JSON)をサーバーに送信します。
前述のように、主な理由はスケーラビリティです。 Webサイトの各閲覧者に対してアクティブな接続を維持することは、非常に多くのリソースを消費します。また、HTTPの最初の作成者は、接続を維持するシステムの必要性を想定していなかったという事実もありました。HTTPのアイデアは、単にリクエストにテキスト応答を送信して終了することでした。
スケーラビリティの理由から。接続を維持するとリソースが消費されます。
理由は非常に簡単だと思う-httpが作成されたとき:
1)ほとんど/すべてのページが静的でした 2)インターネット上に商業的なプレゼンスがほとんどないため、リンクが別のサイトを指し示していない可能性が高いと想定されました。
つまり、静的ページ+非ローカルコンテンツ=接続フリープロトコル。