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