[HTTP]
HTTPとは?
簡単にHyperText Transferプロトコルの略として表され、コンピュータ間でHTMLファイルを交換できるようにするコミュニケーション方法や約束.
1. HyperText
私たちは実はHyperTextとは何かを知っています.HTTPでは、HyperTextはHTMLのHyperTextと同じ意味です.言い換えれば、HTMLをもっと詳しく分析すれば、文書と文書をリンクしたタグで構成された言語です.言い換えれば、HTMLは、ウェブページを作成するためにウェブブラウザ上で操作される言語である.このHTMLを使用して生成されたWebページは、このセッションでどのように交換されますか?物語についてです.
2. Transfer
辞書の意味で「伝える」という意味があります.伝送に重大な意義がある.転送は簡単な言葉で「物や手紙などを送る」と言います.これは意味します.ローカルホスト(ノートパソコンやデスクトップ)で作成された素晴らしいHTMLファイルだけを100日間ローカルに置くと、何の意味がありますか?
例えば、私が書いた手紙は相手(両親、先生、恋人など...)持っていれば、相手に送ってこそ意味がある.手紙が来なければ応じない.それはコミュニケーションが取れていないのではないでしょうか.
そのため、作成したWebサイトを他のコンピュータに転送して、他の人と共有する必要があります.また,伝送は送信主体と受信主体の2つの大きな特徴を有する.
3. Protocol
プロトコルは、プロトコル、通信規約の意味を有する.これは物理デバイス上でHTMLファイルをどのように交換するかについての約束です.
韓国人である以上、韓国語を使うべき社会に生きている.韓国社会のコミュニケーション方式(約束)が韓国語で通じるように、コンピューターもコンピューター間のコミュニケーション方法が必要だ.このようなコミュニケーションや約束が必要なのがHTTPです.私たちが使っているインターネット上のコミュニケーションの多くはHTTPプロトコルに従っています.
HTTPの2つの特性
1.要求/応答(要求/応答)
HTTP通信の核心は要求と応答である.送信主体は受信主体に要求を送信し,受信主体は送信要求の主体に応答を送信する.
2. Stateless
各HTTP通信(リクエスト/レスポンス)は独立しているため、過去の通信(リクエスト/レスポンス)については何も知らない.以前の状態が何を意味しているのか全く分からない.各通信には、要求を送信するために必要なすべての情報が含まれます.
したがって、複数回の通信(リクエスト/レスポンス)中に連続的なデータ処理(ex.オンラインショッピングモール登録後のカート機能)が必要であれば、トークンやブラウザのクッキー、セッション、ローカルストレージなどの技術を登録する必要がある.
Request & Response
1.要求メッセージ構造
HTTPリクエストは、実際には、ワーク(データ処理)を開始するために、フロントエンド(クライアント)がバックエンド(サーバ)に送信するメッセージである.この情報の構造は大体3つの部分から構成されている.
1. Start Line
リクエストの最初のローに相当します.この行も3つの部分から構成されています.
1. **HTTP Method**: 해당 요청이 의도한 액션을 정의하는 부분. 주로 **GET**, **POST**, **DELETE**가 많이 쓰임
2. **Request target**: 해당 request가 전송되는 **목표 url**
3. **HTTP Version**: 말 그대로 사용되는 **HTTP 버전**을 뜻한다. 주로 1.1 버전이 널리 쓰임
**GET /login HTTP/1.1**
해석: GET 메소드로 login 이라는 요청 타겟에 HTTP 1.1 버전으로 요청을 보내겠다!
2. Headers
要求に関する追加情報(メタデータ)の部分が含まれます.
**Key: Value** 값으로 되어있다 (JavaScript의 객체, Python의 딕셔너리 형태라고 보면 된다)
자주 사용되는 **Headers** 의 정보에는 다음이 있다
Headers: {
**Host**: 요청을 보내는 목표(타겟)의 주소. 즉, 요청을 보내는 웹사이트의 기본 주소가 된다
(ex. www.apple.co.kr)
**User-Agent**: 요청을 보내는 클라이언트의 대한 정보 (ex. chrome, firefox, safari, ~~explorer~~)
**Content-Type**: 해당 요청이 보내는 메세지 body의 타입 (ex. application/json)
**Content-Length**: body 내용의 길이
**Authorization**: 회원의 인증/인가를 처리하기 위해 로그인 토큰을 Authroization 에 담는다
}
3. Body
要求された実際の内容.主にBodyを使う方法はPOSTです.
**ex) 로그인 시에 서버에 보낼 요청의 내용**
Body**:** {
"user_email": "[email protected]"
"user_password": "wecode"
}
2.レスポンスメッセージ構造
1. Status Line
回答の状態を減らす.応答はコンテンツを開始し、クライアント要求の処理ステータスを通知します.手紙の返事に「うん、よくやったね」と言ったように.回答のStatus Lineも3つの部分で構成されています.
1. **HTTP Version**: 요청의 **HTTP버전**과 동일
2. **Status Code**: 응답 메세지의 **상태 코드**
3. **Status Text**: 응답 메세지의 상태를 간략하게 설명해주는 **텍스트**
**HTTP/1.1 404 Not Found** 400, 401, 403 등등
해석: HTTP 1.1 버전으로 응답하고 있는데, 프론트엔드에서 보낸 요청(ex. 로그인 시도)에 대해서
유저의 정보를 찾을 수 없기 때문에(Not Found) 404 상태 메세지를 보낸다.
**HTTP/1.1 200 SUCCESS**
해석: HTTP 1.1 버전으로 응답하고 있는데, 프론트엔드에서 보낸 요청에 대해서 성공했기 때문에
200 상태 메세지를 보낸다.
2. Headers
リクエストのタイトルと同じです.回答の付加情報(メタデータ)を含む部分.ただし、応答でのみ使用される情報もあります.(ex.ブラウザ情報を要求するユーザ-Agentではなく、サーバヘッダを使用します.)
3. Body
要求された本文と一般的に同じです.リクエストの方法によっては、Bodyが常に存在しないように.応答が応答の形式でデータを転送する必要がない場合、Bodyがない可能性があります.最も一般的なBodyデータ型はJSON(JavaScript Object Notation)である.
**ex) 로그인 요청에 대해 성공했을 때 응답의 내용**
Body: {
"message": "SUCCESS"
"token": "kldiduajsadm@9df0asmzm" (암호화된 유저의 정보)
}
HTTP Request Methods
よく使われるHTTP通信方法は3つあります.
これらの方法はフロントエンド(クライアント)の立場に立って、要求の意図を含んでいます!
バックエンドの観点から考えると、混乱する可能性がありますのでご注意ください!
1. Get
2. POST
3. DELETE
削除要求の特定データをサーバから送信方法は、
Response Status Codes
これらは、実際のプロジェクトで最も多く見られる応答ステータスコードです.Status Codeの数字にはそれぞれ意味があります.このStatus Codeを見るだけで応答が正しいかどうかがわかります.
200: OK
201: Created
400: Bad Request
ex)デジタル文字列ではなく、電話番号を送信する必要があるアドレスがBodyにある場合、
401: Unauthorized
ex)wishlist,賛機能会員でなければリクエストを送信できない
403: Forbidden
ex)有料会員のみがアクセスできるデータを要求する場合、
404: Not Found
500: Internal Server Error
Review
力は強いけど、覚えておいて!残りの部分は、将来の重要セッション(認証/承認、フロントエンド/バックエンドログイン実践、RESTFUL API)とともに行い、徐々に理解することができる.
Reference
この問題について([HTTP]), 我々は、より多くの情報をここで見つけました https://velog.io/@jooneybadger/HTTPテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol