Http protocol
httpは、リクエストメソッドを定義し、リソースに対して実行する操作を表します.
GET-特定のリソースの表示を要求します.GETリクエストデータのみ受信
HEAD-GETメソッドの要求と同じ応答が要求されるが、応答本文は含まれない.
POST-特定のリソースにエンティティをコミットします.これは、サーバの状態の変化や副作用を引き起こすことが多い.
PUT:ターゲットリソースの現在の表示を要求負荷に変更
DELETE-特定のリソースを削除
接続-ターゲットリソースIDへのサーバへのチャネルを確立しますI'm
OPTIONS-目的のリソースを設定するための通信
TRACE-宛先リソースのパスに沿ったメッセージloop-backテスト
PATCH-リソースの変更にのみ使用される部分
HTTP/2は、以前にアプリケーションで実行された大量のHTTP/1.1一時的な方法をキャンセルし、転送層でこれらの問題を解決することができ、アプリケーションをより速く、より簡単に、より強力にすることができます.
HTTP/2の主な目標は、完全な要求によって遅延を低減し、応答の多重化をサポートし、HTTPヘッダフィールドを効率的に圧縮することによってプロトコルオーバーヘッドを最小限に抑え、要求優先度を追加し、サポートサーバをプッシュすることである.
HTTP/2はHTTPのアプリケーションの意味体系をいかなる方法でも修正しない.HTTPメソッド、ステータスコード、URI、ヘッダーフィールドなどのすべての重要な概念は変更されません.逆に、HTTP/2は、クライアントとサーバの間でデータフォーマット(フレーム)を指定する方法とデータ転送方法を変更します.クライアントとサーバはプロセス全体を管理し、アプリケーションのすべての複雑さを新しいアップグレード層に隠します.これにより、既存のすべてのアプリケーションを変更せずに渡すことができます.
HTTP/1.Xとの区別テキストではなく、バイナリです. は、ソートおよびマスクではなく、完全に多重化される. 1つの接続は、並列処理に使用することができる. ヘッダー圧縮を使用して、オーバーヘッドを削減します. では、サーバがプッシュするブラウザキャッシュに応答を追加できます.
REST-Representation State Transfeの略で、リソースをURIとしてマークし、ステータスを交換します.
RESTのコンポーネント
1)資源:URI
2)行為:HTTP METHOD
3)表現
すなわち,RESTはURIによりリソースを表示し,HTTP METHODを用いてリソースの挙動を決定し,結果を受信する.
RESTベースのルールに従って設計されたAPI
#設計規則
1.URIは情報のリソースを表す必要があります.
リソースの名前は動詞ではなく名詞です.
URIはリソースの表示に重点を置くべきであるため,行為の表示を含めるべきではない.(URIはHTTP METHODと行為の動詞表現を含むことができない.)リソースに対する挙動はHTTP METHODとして表現される.(GET, POST, PUT DELETE)
URIには資源行為の表現は含まれておらず,HTTP METHODで代用する.
スラッシュ(/)は、階層関係を表すために使用されます.
URI末尾にスラッシュは使用できません(/)
ハイフネーション(-)は、URIの可読性を向上させるために使用されます.長いURIが避けられない場合、ハイフネーションを使用して可読性が向上します.
アンダースコア()またはアンダースコアはURIには使用されません.下線が見えにくいか、下線のため文字が隠されています.したがって、下棒ではなくハイフンを使用します.
URIはパス上で小文字に適している.URIパスは大文字は使用しないでください.大文字と小文字によって異なるリソースと見なすことができるからです.RFC 3986(URI構文フォーマット)は、URIモードとホストを除いて大文字と小文字を区別することを規定しているからである.
ファイル拡張子はURIに含まれません.REST APIは、メッセージ本体のコンテンツのフォーマットを表すために、ファイル拡張子をURIに含めない.Accept Headerを使用します.
リソース間の関係をどのように表すか 目的:理解と使用が容易なREST APIの作成
-restful失敗
-CRUD機能を全てPOST METHOD処理のAPIとする
-URIにリソースとID以外の情報が含まれている場合.
- Request method
GET-特定のリソースの表示を要求します.GETリクエストデータのみ受信
HEAD-GETメソッドの要求と同じ応答が要求されるが、応答本文は含まれない.
POST-特定のリソースにエンティティをコミットします.これは、サーバの状態の変化や副作用を引き起こすことが多い.
PUT:ターゲットリソースの現在の表示を要求負荷に変更
DELETE-特定のリソースを削除
接続-ターゲットリソースIDへのサーバへのチャネルを確立しますI'm
OPTIONS-目的のリソースを設定するための通信
TRACE-宛先リソースのパスに沿ったメッセージloop-backテスト
PATCH-リソースの変更にのみ使用される部分
-応答タイプ
<HTTP/2>
HTTP/2は、以前にアプリケーションで実行された大量のHTTP/1.1一時的な方法をキャンセルし、転送層でこれらの問題を解決することができ、アプリケーションをより速く、より簡単に、より強力にすることができます.
HTTP/2の主な目標は、完全な要求によって遅延を低減し、応答の多重化をサポートし、HTTPヘッダフィールドを効率的に圧縮することによってプロトコルオーバーヘッドを最小限に抑え、要求優先度を追加し、サポートサーバをプッシュすることである.
HTTP/2はHTTPのアプリケーションの意味体系をいかなる方法でも修正しない.HTTPメソッド、ステータスコード、URI、ヘッダーフィールドなどのすべての重要な概念は変更されません.逆に、HTTP/2は、クライアントとサーバの間でデータフォーマット(フレーム)を指定する方法とデータ転送方法を変更します.クライアントとサーバはプロセス全体を管理し、アプリケーションのすべての複雑さを新しいアップグレード層に隠します.これにより、既存のすべてのアプリケーションを変更せずに渡すことができます.
HTTP/1.Xとの区別
<REST(RESTFUL) API>
REST-Representation State Transfeの略で、リソースをURIとしてマークし、ステータスを交換します.
RESTのコンポーネント
1)資源:URI
2)行為:HTTP METHOD
3)表現
すなわち,RESTはURIによりリソースを表示し,HTTP METHODを用いてリソースの挙動を決定し,結果を受信する.
RESTベースのルールに従って設計されたAPI
#設計規則
1.URIは情報のリソースを表す必要があります.
リソースの名前は動詞ではなく名詞です.
URIはリソースの表示に重点を置くべきであるため,行為の表示を含めるべきではない.(URIはHTTP METHODと行為の動詞表現を含むことができない.)
GET /users/321
URIには資源行為の表現は含まれておらず,HTTP METHODで代用する.
GET /users/321 321 ID를 가진 유저 정보를 가져오기
DELETE /users/321 321 ID를 가진 유저 정보를 삭제하기
POST /users 유저를 생성하기
スラッシュ(/)は、階層関係を表すために使用されます.
http://restapi.test.com/users/rooms
http://restapi.test.com/users/board
URI末尾にスラッシュは使用できません(/)
http://restapi.test.com/users/rooms/ [X]
http://restapi.test.com/users/rooms [O]
ハイフネーション(-)は、URIの可読性を向上させるために使用されます.長いURIが避けられない場合、ハイフネーションを使用して可読性が向上します.
アンダースコア()またはアンダースコアはURIには使用されません.下線が見えにくいか、下線のため文字が隠されています.したがって、下棒ではなくハイフンを使用します.
URIはパス上で小文字に適している.URIパスは大文字は使用しないでください.大文字と小文字によって異なるリソースと見なすことができるからです.RFC 3986(URI構文フォーマット)は、URIモードとホストを除いて大文字と小文字を区別することを規定しているからである.
ファイル拡張子はURIに含まれません.REST APIは、メッセージ本体のコンテンツのフォーマットを表すために、ファイル拡張子をURIに含めない.Accept Headerを使用します.
リソース間の関係をどのように表すか
GET : /users/{userid}/devices
-restful失敗
-CRUD機能を全てPOST METHOD処理のAPIとする
-URIにリソースとID以外の情報が含まれている場合.
PUT /users/update-nickname [X]
PUT /users/:id/nickname [O]
[https://velog.io/@stampid/REST-API와-RESTful-API](https://velog.io/@stampid/REST-API%EC%99%80-RESTful-API)
Reference
この問題について(Http protocol), 我々は、より多くの情報をここで見つけました https://velog.io/@seunghwa17/Http-protocolテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol