HTTP (HyperText Transfer Protocol)
💻HTTPはWebサービス開発者が知るべきコアプロトコルである.HTTP通信がどのように構成され、使用されるべきか、その特徴と概念をまとめてみましょう.
HTTPとは?
HTTP(HyperText Transfer Protocol)は、コンピュータ間でHTMLファイルを交換するコミュニケーション方法または約束である.
HTTPの略記を1つずつ見ていきましょう.
HyperText
:通常のテキストとは異なり、文章や単語などはループ接続されたネットワークで構成されたドキュメントです.
Transfer
:
Protocal
:
1.HTTPの主な特性
HTTPはコンピュータ同士の約束だそうです.約束はいつもどの条項に従っているのか、HTTPがどの条項から構成されているのかを理解しましょう.
Request/Response
コミュニケーションの核心はリクエストと応答です.
HTTP通信の核心は要求と応答といえる.
文字を例にとると,送信者(送信主体)と受信者(受信主体)は明確にしてこそ,よりよくコミュニケーションできる.もし私がbという受信者に連絡して、処理することをcという受信者に連絡したら、良いコミュニケーションがありますか?違うはずです.
コンピュータ間のコミュニケーションには、明確な要求と応答が必要です.
ノートパソコンを開く->YouTubeに接続->私が普段好きなYouTubeビデオのリンクをクリックします.
この時、私のノートパソコンはグーグルのサーバーに要求しました.「子犬のビデオをください」グーグルのサーバーは、このリクエストを処理した後、リクエストを出した私のノートパソコンに再び返信を送信します.「かわいい犬の動画を見せる」
このように、HTTPは私たちがよく知っているコミュニケーション方式をパソコンのコミュニケーション方式に応用しているので、難しく感じる必要はないようです.
Stateless
状態はless(なし)で、直訳すると無状態です.
これはHTTPの特徴の中で絶対に忘れてはいけない重要な特徴です.
独立した性質を持つHTTPは,過去の通信,すなわち過去の要求や応答の内容を全く覚えていない.
すなわち,以前の状態を記憶していないため,通信ごとに必要なすべての情報を含めて要求を送信する.
開発の過程で、トークンやブラウザにログインするクッキー、セッション、ローカルストレージなどの技術を聞いたことがあるかもしれませんが、これらの技術は、複数回の通信の過程で、連続的なデータ処理(ネットショッピングモールにログインした後、カート機能など)が必要であれば、必要に応じて発生します.
2. HTTP Request Methods
HTTPには3つの一般的な方法があります.フロントの角度からそれぞれの方法の意味と意図を整理しました.
GET
サーバから特定データ(GET)を受信する際に使用する方法.
データのみを受信するための最も簡単で最も一般的なHTTPメソッド.
ex)ショッピングバスケット内の製品の表示
データの作成、変更に使用する一般的な方法.
データの作成および変更時にデータが頻繁に使用されるため、ほとんどの場合、要求にはbodyが含まれて送信されます.
お気に入りの商品を買い物かごに入れる
削除要求をサーバに送信する際に使用する方法.
ショッピングバスケットから製品を削除
実際のプロジェクトで最もよく見られる応答状態コードを整理した.Status Codeの数字にはそれぞれの意味が含まれており、この数字だけで応答が正しいかどうかがわかります.
200: OK
最も一般的なStatus Code
これは、バックエンドサーバ上でリクエストを処理した後に発生する応答コードです.
201: Created
Status Code(何かが作成されたとき)
POSTメソッドの要求に応じて、バックエンドサーバ上でデータを生成または変更する際に送信されるコード.
400: Bad Request
要求が無効な場合に送信されるStatus Code
主に、要求Bodyに送信されたコンテンツエラー時に使用されるコードです.
401: Unauthorized
Status Code は、ユーザが要求のためにログインまたは登録する必要があることを示す
403: Forbidden
ステータスコード(アクセス不可の情報にアクセスしている場合)
プレイヤーに要求する権限がないという意味です.
404: Not Found
要求されたURIは存在しない
500: Internal Server Error
サーバエラー時のStatus Code
これはAPI開発を行うバックエンド開発者が好まないコードです.
(フロントが私の間違ったコードではないことを証明)🤷♂️
HTTPとは?
HTTP(HyperText Transfer Protocol)は、コンピュータ間でHTMLファイルを交換するコミュニケーション方法または約束である.
HTTPの略記を1つずつ見ていきましょう.
HyperText
:通常のテキストとは異なり、文章や単語などはループ接続されたネットワークで構成されたドキュメントです.
Transfer
:
전송
の意味を有し、送信された主題と受信された主体の特徴を有する.Protocal
:
협약
통신규약
とは、物理的に分離されたコンピュータ間でHTMLファイルをどのように交換するかの約束です.HTTPはコンピュータ同士の約束だそうです.約束はいつもどの条項に従っているのか、HTTPがどの条項から構成されているのかを理解しましょう.
Request/Response
コミュニケーションの核心はリクエストと応答です.
HTTP通信の核心は要求と応答といえる.
文字を例にとると,送信者(送信主体)と受信者(受信主体)は明確にしてこそ,よりよくコミュニケーションできる.もし私がbという受信者に連絡して、処理することをcという受信者に連絡したら、良いコミュニケーションがありますか?違うはずです.
コンピュータ間のコミュニケーションには、明確な要求と応答が必要です.
ノートパソコンを開く->YouTubeに接続->私が普段好きなYouTubeビデオのリンクをクリックします.
この時、私のノートパソコンはグーグルのサーバーに要求しました.「子犬のビデオをください」グーグルのサーバーは、このリクエストを処理した後、リクエストを出した私のノートパソコンに再び返信を送信します.「かわいい犬の動画を見せる」
このように、HTTPは私たちがよく知っているコミュニケーション方式をパソコンのコミュニケーション方式に応用しているので、難しく感じる必要はないようです.
Stateless
状態はless(なし)で、直訳すると無状態です.
これはHTTPの特徴の中で絶対に忘れてはいけない重要な特徴です.
独立した性質を持つHTTPは,過去の通信,すなわち過去の要求や応答の内容を全く覚えていない.
すなわち,以前の状態を記憶していないため,通信ごとに必要なすべての情報を含めて要求を送信する.
開発の過程で、トークンやブラウザにログインするクッキー、セッション、ローカルストレージなどの技術を聞いたことがあるかもしれませんが、これらの技術は、複数回の通信の過程で、連続的なデータ処理(ネットショッピングモールにログインした後、カート機能など)が必要であれば、必要に応じて発生します.
2. HTTP Request Methods
HTTPには3つの一般的な方法があります.フロントの角度からそれぞれの方法の意味と意図を整理しました.
GET
サーバから特定データ(GET)を受信する際に使用する方法.
データのみを受信するための最も簡単で最も一般的なHTTPメソッド.
ex)ショッピングバスケット内の製品の表示
(축약된 요청 메세지)
GET /shop/bag HTTP/1.1
Headers: {
"HOST": "https://www.apple.com/kr"
"Authroization": "kldiduajsadm@9df0asmzm"
//유저가 본인임을 증명할 수 있는 인증/인가 토큰
}
(축약된 응답 메시지)
HTTP/1.1 200 SUCCESS
Body: {
"message": "SUCCESS"
"carts": [
{
"productId": 10
"name": "Pro Display XDR - Nano-texture 글래스"
"price": "₩7,998,000"
"quantity": 2
},
{
"productId": 20
"name": "Mac Pro"
"price": "₩79,465,000"
"quantity": 1
}
]
}
POSTデータの作成、変更に使用する一般的な方法.
データの作成および変更時にデータが頻繁に使用されるため、ほとんどの場合、要求にはbodyが含まれて送信されます.
お気に入りの商品を買い物かごに入れる
(축약된 요청 메세지)
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,299,000"
"quantity": 1
}
}
(축약된 응답 메시지)
HTTP/1.1 201 SUCCESS
Body: {
"message": "SUCCESSFULLY CARTS UPDATED"
}
DELETE削除要求をサーバに送信する際に使用する方法.
ショッピングバスケットから製品を削除
(축약된 요청 메세지)
DELETE /shop/bag HTTP/1.1
Headers: {
"HOST": "https://www.apple.com/kr"
"Authroization": "kldiduajsadm@9df0asmzm"
//유저가 본인임을 증명할 수 있는 인증/인가 토큰
}
Body: {
productId: 30
}
(축약된 응답 메시지)
HTTP/1.1 201 SUCCESS
Body: {
"message": "productId 30 DELETED"
}
3. HTTP Status Code実際のプロジェクトで最もよく見られる応答状態コードを整理した.Status Codeの数字にはそれぞれの意味が含まれており、この数字だけで応答が正しいかどうかがわかります.
200: OK
最も一般的なStatus Code
これは、バックエンドサーバ上でリクエストを処理した後に発生する応答コードです.
201: Created
Status Code(何かが作成されたとき)
POSTメソッドの要求に応じて、バックエンドサーバ上でデータを生成または変更する際に送信されるコード.
400: Bad Request
要求が無効な場合に送信されるStatus Code
主に、要求Bodyに送信されたコンテンツエラー時に使用されるコードです.
Status Code
403: Forbidden
ステータスコード(アクセス不可の情報にアクセスしている場合)
プレイヤーに要求する権限がないという意味です.
404: Not Found
要求されたURIは存在しない
500: Internal Server Error
サーバエラー時のStatus Code
これはAPI開発を行うバックエンド開発者が好まないコードです.
(フロントが私の間違ったコードではないことを証明)🤷♂️
Reference
この問題について(HTTP (HyperText Transfer Protocol)), 我々は、より多くの情報をここで見つけました https://velog.io/@hahan/HTTPテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol