HTTP
commited date: 2024-12-21
-
REST
Representational State Transfer #API Architecture HTTPを基礎とするアーキテクチャ上の制約、定義 Architectural Styles and the Design of Network-based Software ArchitecturesにRESTfulとみなされるための定義が書かれている 第一にサービス提供者と利用者のやり取りがモデル化されていること、が定義となる
-
Open API
#Documentation #API Architecture HTTP APIの動作を記述するためのオープンで標準的な仕様。リクエストからレスポンスまでAPIのライフサイクルを説明できる JSONまたはYAMLでコード管理が可能 Swaggerのようなツール群ではOpen API仕様をベースにドキュメンテーションやテストを用意に実装できる What is OpenAPI? - OpenAPI Initiative
-
リチャードソン成熟度モデル
#API Architecture Leonard RechardsonによるREST APIの観点からAPI実装の成熟度をレベルに分類したもの 各レベルのタイトルは以下 レベル0 HTTP/RPC レベル1 リソース レベル2 動詞(メソッド) レベル3 ハイパーメディアコントロール QCon 2008での発表は以下 Justice Will Take Us Millions Of Intricate Moves
-
gRPC-Gateway
#Network #API Architecture #REST gRPCにおいて、gRPC serviceをRESTful APIとして提供するためのライブラリ。HTTP+JSONのインターフェースでリバースプロキシサーバーを生成する HTTP仕様はProtocol Buffers上において google.api.http のような HttpRule によって記述する 同リポジトリにはprotoc-gen-openapiv2プラグインも含まれておりOpen API仕様を出力できる gRPC-Gateway | gRPC-Gateway Documentation Website
-
gRPC
#Network #API Architecture #HTTP 標準IDLとしてProtocol Buffersを採用するRPCシステム実装。通信プロトコルにはHTTP/2が用いられておりストリーム通信をサポートしている ステートレスなRESTに対し実装次第で状態を持つことで高いパフォーマンスを実現できる CNCF incubating project gRPC
-
マスタリングAPIアーキテクチャ
-
TLS
Transport Layer Security #Network #Security #HTTP HTTPSへの対応に用いられる暗号化プロトコル ネットワーク通信時にTLSハンドシェイクによって鍵交換を行いセキュアな通信を行う
-
Basic認証
#Security HTTPプロトコルにおける認証方式 ユーザー名とパスワードをコロンで連結した文字列をBase64エンコードした結果を、Authorizationヘッダーに付与することでリクエストを行う
-
Bearerトークン
#Security トークンを保持するBearer(持参人)が誰であれ、そのトークンをリソースへのアクセスに使うことができる 平文の文字列でシークレットや署名は扱わず、セキュリティはTLSのようなトランスポート層での仕組みに任せている HTTP通信のAuthorizationヘッダーに付与するのを推奨されている RFC 6750 - The OAuth 2.0 Authorization Framework: Bearer Token Usage
-
QUIC
#Network #HTTP インターネット上の通信で多く用いられてきたTCPの課題を解消する、Googleが開発したプロトコル UDPをベースし、コネクション確立によるRTTの増大を防ぎつつ、TCPと同様の高い信頼性の実現、TLSを必須とするセキュリティの考慮がされる。 HTTP/3で用いられるプロトコルで高速なHTTPS通信を実現する コネクションID QUICではIPアドレス、ポート番号を抽象化する形で宛先、送信元に対応するコネクションIDが用いられる。 コネクションIDによりモバイル機器のようなWiFi・モバイルデータ通信等が頻繁に切り替わりIPアドレスの変更がある場合でも、コネクションを途切らせずに通信を続けられる。 QUICヘッダー QUICヘッダーはTCPと異なり明確にロングヘッダー、ショートヘッダーの2つに分類される。ロングヘッダーはコネクション確立時、ショートヘッダーはその後のデータ送信に用いられる ロングヘッダーはコネクション確立に必要な情報をまとめて送る(1-RTTハンドシェイク)ことでRTTの改善がされる ストリーム QUICでは順序制御や再送制御を管理する単位としてストリーム(ID)という概念を用いる。ストリーム同士は独立しておりHoLブロッキングのような問題の回避をする