Http通信とSocket通信の違い

一般的に、デバイスで必要とされるデータはサーバーで管理します。 ネットワークを通じてサーバからデータを取得するための通信方式には、大きく分けて Http 通信と Socket 通信の 2 種類がありますが、今日はこの 2 つの通信方式の違いについて見ていきたいと思います。


Http 通信


クライアントのリクエストがある場合のみ、サーバーが応答(Response)して当該情報を送信し、すぐに接続を終了する方式

Http 通信は Client の要請があるときだけ Server が応答して処理をした後に連結を絶つ方法です。 このような接続方法はClientが要請を送る場合にのみServerが応答するワン・ウェイ・コニュニケーションで、Server が Client で要請を送ることはできません。 理解を助けるために皆さんがこのブログの内容を見るためにブログに入ってくる状況を例に挙げてみます。 皆さんがこのブログのためのリンクをクリックした瞬間に Client(ウェブ)は Server(ウェブサーバ)にこの文に対する内容を送ってほしいと要請をしたのです。 この文に対する内容を受けた後は、連結が終了されます。 そのために要請を送るとき、内容を待つ時間と共に連結する時間が入るようになります。 このような Http 通信は、リアルタイム接続がなく、必要な場合のみServerにアクセスするコンテンツ中心のデータを使用するとき用意です。 もしブログに対する内容を要請するため、リアルタイムでつなぐを維持する Socket 通信を使用することになると、ブログの内容を受けた後も、引き続き通信のための連結が成立しており、負荷がかかります。 一般的にモバイルアプリケーションは必要な場合のみ Server で情報を要請する場合が多いが、このような Web Server で Http 通信を主に使用して費用や保守などほとんどの方面でいいです。

http 通信

Http 通信の特徴
  • クライアントがリクエストを送信した場合にのみ、サーバーが応答するワン・ウェイ・コニュニケーションである。
  • サーバーからの応答を受けた後は、接続がすぐに終了する。
  • リアルタイムの接続ではなく、必要な場合にのみサーバーに要請を送る状況に有用である。
  • 要請を送ってサーバーの応答を待つアプリケーション(Android or Ios)の開発に主に使われる。

Socket 通信

サーバーとクライアントが特定ポートを通じてリアルタイムでツーウエー・コミュニケーションする方式

Socket 通信は Http 通信とは違って、ServerとClientが特定Portを通じて連結を成立しており、リアルタイムでツーウエー・コミュニケーションする方式です。 Client のみ必要な場合に要請を送る Http 通信とは違って、Socket 通信は Server も Client で要請を送ることができ、ずっとつながりを維持する連結志向型通信であるため、リアルタイムの通信が必要な場合によく使用されます。 例えば、リアルタイム Streaming の中継やリアルタイムでチャットと一緒に即座に情報をやり取りする場合に使用します。 例えば、リアルタイム動画 Streaming サービスを Http 通信で具現したと仮定します。 このような場合に使用者がサーバに動画を要請するためには動画が終了される瞬間まで継続して Http 通信を送らなければならない、このような構造は引き続き連結を要請するために負荷がかかります。 従って、このような場合には Socket を通じて具現することが適しています。

socket 通信

Socket 通信の特徴

-Server と Client がずっとつながりを維持するツーウエー・コミュニケーションである。
-Server と Client がリアルタイムでデータをやり取りする状況が必要な場合に使用される。 -リアルタイム動画 Streaming やオンラインゲームなどのような場合によく使用される。