HTTP API ∋REST API / Realtime API = websocket

HTTP(Hypertext Transfer Protocol)

HTTPでは、要求メッセージをHTTPリクエスト、応答メッセージをHTTPレスポンスと呼びます。

リクエスト(要求)

別な言い方をすると注文。クライアントからサーバに送る。
よくあるのはデータが欲しいとか、データを保存してとかをリクエストする
以下リクエストの中身。

  • URL
  • メソッド
    • GET:サーバへデータの要求
    • POST:サーバへデータを送る
    • 他にもPUT、DELETEとかあるよ

レスポンス(反応)

別な言い方をすると結果。リクエスト受けたサーバがクライアントに返す。
リクエストされたデータの中身とか、登録した結果など。
以下レスポンスの中身。

  • ステータスコード(成否とかを数字で表現している)
    • 200:成功
    • 400:リクエストが不正
    • 500:サーバのエラー
  • コンテンツ(html)

REST API

要するに、ここにアクセスするとこれを返します

bitflyerのpublic APIはまさにこれだわ

REpresentational State Transfer

  • RESTの4つの設計原則
    1. セッションなどの状態管理を行わない。(やり取りされる情報はそれ自体で完結して解釈することができる)
    2. 情報を操作する命令の体系が予め定義・共有されている。(HTTPのGETやPOSTメソッドなど)
    3. すべての情報は汎用的な構文で一意に識別される。(URLやURIなど)
    4. パラメータを指定して特定のURLにアクセスするとXML(またはJSON)で応答される
    5. 情報の内部に、別の情報や(その情報の別の)状態へのリンクを含めることができる。
  • リソースに対してURLが対応づけられる。=同じURLからは同じ結果が得られる(状態やセッションに依存しない)

ストックドッグ

 


Realtime API = websocket

wss://ws.lightstream.bitflyer.com/json-rpc

プロトコルがHTTPでないWSSだ

WS:は WebSocket 接続用の新しい URL スキーマです。セキュリティで保護された WebSocket 接続用の wss: もあります。これは、https: がセキュリティで保護された HTTP 接続に使用されるのと同じです。

WebSocket は双方向通信プロトコルであり、これが HTTPの大きな違いの 1 つです。 接続が確立されると、WebSocket サーバーとクライアントは、Socket のように相互にデータを送受信することができます。 WebSocket サーバーとクライアントは、WebSocket 接続を確立するためにハンドシェイクを完了する必要があります。