HTTPにはHTTP Cookieがあります。Cookieを使用すると、サーバーはユーザーの状態、接続数、最後の接続などを追跡できます。
HTTPには永続的な接続(Keep-Alive)があり、同じTCP接続から複数の要求を送信できます。
HTTPにはHTTP Cookieがあります。Cookieを使用すると、サーバーはユーザーの状態、接続数、最後の接続などを追跡できます。
HTTPには永続的な接続(Keep-Alive)があり、同じTCP接続から複数の要求を送信できます。
回答:
同じHTTP接続を介して複数の要求を送信できる場合でも、サーバーは、同じソケットを介して到着することに特別な意味を与えません。これは単にパフォーマンス上の問題であり、そうしないと各要求の接続の再確立に費やされる時間/帯域幅を最小限に抑えることを目的としています。
HTTPに関する限り、それらはすべて個別の要求であり、要求を満たすために十分な情報を独自に含める必要があります。それが「無国籍」の本質です。サーバーが認識している共有情報(ほとんどの場合、Cookie内のセッションID)が存在しない場合、要求は互いに関連付けられません。
ウィキペディアから:
HTTPはステートレスプロトコルです。ステートレスプロトコルでは、サーバーが複数のリクエストの間、各ユーザーに関する情報またはステータスを保持する必要はありません。
ただし、一部のWebアプリケーションでは、たとえば、ユーザーのWebページのコンテンツをカスタマイズするためにWebサーバーが必要な場合など、ページ間のユーザーの進行状況を追跡する必要がある場合があります。これらの場合の解決策は次のとおりです。
- HTTP Cookieの使用。
- サーバー側セッション、
- 非表示の変数(現在のページにフォームが含まれている場合)、および
- URIエンコードされたパラメーターを使用したURL書き換え(例:/index.php?session_id=some_unique_session_code)。
プロトコルをステートレスにするのは、サーバーが複数の要求にわたって状態を追跡する必要がないことです。必要な場合にそうすることはできません。これにより、クライアントとサーバー間の契約が簡素化され、多くの場合(たとえば、CDNを介して静的データを提供するなど)、転送する必要のあるデータの量が最小限に抑えられます。サーバーがクライアントの訪問の状態を維持する必要がある場合、要求の発行と応答の構造はより複雑になります。このモデルのシンプルさは、その最大の特徴の1つです。
ステートレスプロトコルでは、複数のリクエストの間、サーバーが各通信パートナーに関するセッション情報やステータスを保持する必要がないためです。
HTTPはステートレスプロトコルです。つまり、トランザクションが終了すると、ブラウザとサーバー間の接続が失われます。
HTTPはstateless protocol
、各リクエストがその前に実行されたリクエストを認識せずに独立して実行されるため、つまりトランザクションが終了するとブラウザとサーバー間の接続も失われるため、aと呼ばれます。
プロトコルstateless
を構成するのは、元の設計ではHTTPが比較的単純であることfile transfer protocol
です。
同じクライアントからでも、1つの接続と別の接続の間に維持された関係はありませんでした。これにより、クライアントとサーバー間の契約が簡素化され、多くの場合、転送する必要のあるデータの量が最小限に抑えられます。
プロトコルHTTPがStateフルプロトコルとして指定されている場合、ブラウザーウィンドウは単一の接続を使用してWebサーバーに通信し、Webアプリケーションに複数の要求を送信します。これにより、ブラウザーウィンドウがブラウザーウィンドウとWebサーバー間の接続を長時間維持し、維持する機会が与えられます。クライアントの接続のほとんどがアイドル状態であっても、Webサーバーの最大接続数に達する状況が発生する可能性があります。
HTTPはコネクションレスであり、これはHTTPがステートレスプロトコルであることの直接の結果です。サーバーとクライアントは、現在のリクエストの間のみお互いを認識します。その後、二人はお互いのことを忘れます。このプロトコルの性質により、クライアントもブラウザも、Webページ全体の異なる要求間で情報を保持できません。
誰かがSTATELESSコンセプトに非常に残念な名前を選んだと思います。それが全体的な誤解の原因です。それは、あらゆる種類のリソースを格納することではなく、クライアントとサーバー間の関係についてです。
クライアント:私はすべてのリソースを管理し、処理する必要があるすべての重要なアイテムの「リスト」をお送りします。あなたの仕事をする。
サーバー:了解しました。適切な応答を提供するために重要なことをフィルタリングする責任を私に与えます。
つまり、サーバーはクライアントの「スレーブ」であり、要求のたびに「マスター」を忘れる必要があります。実際、STATELESSはサーバーの状態のみを参照します。
https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_1_3