[CS] HTTP
2631 ワード
✅ HTTP
HTTPは、HyperText転送プロトコルの略である.
言い換えれば、
1)HyperText:HTMLで作成したページ
2)転送:転送
3)協議:約束(通信規約)を意味する.
HTTPの2つの特性
リクエスト/レスポンス
送信には送信主体と受信主体が必要である.例えば、Instagramで友人のInstagramストーリーをクリックすると、その瞬間、パソコンがサーバーに「その友人のストーリーを見てください」とお願いします.この要求を処理した後、私のパソコンに返事をして、やっと友达の話を見ることができます.
⏩ Stateless
文字通りState(ステータス)+less(なし)です.これは、各HTTP通信(リクエスト/レスポンス)が独立しているため、過去の通信(リクエスト/レスポンス)の内容が全く知られていないことを意味する.
したがって、各通信には、必要なすべての情報が含まれ、要求が送信される必要があります.
リクエスト、レスポンス構造
リクエストメッセージ構造
1.Start Line:要求の最初の行に相当し、この部分も3つの部分から構成されています.
1)HTTPメソッド:この要求は所望の動作の部分を定義する.主にGET、POST、DELETEを使用
2)要求先:送信要求先URL
3)HTTPバージョン:その名の通りのHTTPバージョン.主に1.1版を使用
2.Headers:要求に関する追加情報(メタデータ)を含む部分.
3.Body:要求された実際の内容
レスポンスメッセージ構造
1.Status Line:応答の状態を減らす.応答はコンテンツを開始し、クライアント要求の処理ステータスを通知します.回答のStatus Lineも3つの部分で構成されています.
1)HTTPバージョン:要求されたHTTPバージョンと同じ
2)Status Code:応答メッセージのステータスコード
3)Status Text:応答メッセージの状態を簡単に説明するテキスト
2.タイトル:要求されたタイトルと同じです.回答の付加情報(メタデータ)を含む部分.ただし、応答でのみ使用される情報もあります.(ex.ブラウザ情報を要求するユーザ-Agentではなく、サーバヘッダを使用します.)
3.身体:お願いした身体と同じ.最も一般的なBodyデータ型はJSONです.
例(postメソッドの例)
(축약된 요청 메세지)
POST /shop/bag HTTP/1.1
Headers: {
"HOST": "https://www.apple.com/kr"
"Authroization": "kldiduajsadm@9df0asmzm" (유저가 본인임을 증명할 수 있는 인증/인가 토큰)
}
Body: {
product: {
"productId": 30
"name": "12.9형 iPad Pro Wi-Fi + Cellular 128GB"
"color": "스페이스 그레이"
"price": "₩1,499,000"
"quantity": 1
}
}
(축약된 응답 메시지)
HTTP/1.1 201 SUCCESS
Body: {
"message": "SUCCESSFULLY CARTS UPDATED"
}
✅ HTTP Request Methods
⏩ GET
⏩ POST
⏩ DELETE
✅ Response Status Codes
⏩ 200: OK
⏩ 201: Created
⏩ 400: Bad Request
⏩ 401: Unauthorized
⏩ 403: Forbidden
ex)有料会員のみがアクセスできるデータを要求する場合、
⏩ 404: Not Found
⏩ 500: Internal Server Error
Reference
この問題について([CS] HTTP), 我々は、より多くの情報をここで見つけました https://velog.io/@jjburi/CS-HTTP0922テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol