目次
1. http プロトコルとは何ですか?
http: Hyper Text Transfer Protocol Hyper Text Transfer Protocol は、インターネット上で最も広く使用されているネットワーク プロトコルで、主に Web サービスに使用されます。HTML(Hyper Text Mark Language)形式のテキスト情報をコンピュータで処理することで実現されます。
2.httpプロトコルのバージョン?
http 0.9: HTML ドキュメントのみをユーザーに送信します
http 1.0 :
1. MIME (MultiPurpose Internet Mail Extensions) メカニズムの導入: MultiPurpose Internet Mail Extensions このテクノロジの導入後、http はマルチメディア (ビデオ、オーディオなど) 情報を送信できるようになりました。このメカニズムにより、http は HTML 形式だけをサポートするだけでなく、他の形式の送信もサポートできるようになります。
2.永続的接続機能をサポートするためにキープアライブ メカニズムを導入しました (ただし、このキープアライブ原則はヘッダーに特定のフィールドを追加することによって形成され、この機能をネイティブにサポートするわけではありません)
3.キャッシュ機能のサポートの導入http 1.1 では、より多くのリクエスト メソッド、より洗練されたキャッシュ制御がサポートされ、永続的な接続機能 (persistent) がネイティブでサポートされています。
http 2.0 :
HTTP セマンティックに最適化された送信を提供する spdy: Google によって導入されたテクノロジーで、特に SSL アクセラレーション メカニズムを使用して http データ インタラクションを高速化できますが、spdy は現在あまり使用されていません。
現在、一般的に使用されているバージョンは http 1.0 バージョンと http 1.1 バージョンです。
3.httpテキストフレーム
<html>
<head>
<title></title>
</head>
<body>
<h1>hello</h1>
</body>
</html>
4.httpリクエストメッセージ
1.request Message(リクエストメッセージ) クライアント→サーバー
クライアントはサーバーにリクエストを行い、さまざまな Web サイトを使用してさまざまなリソース (HTML ドキュメント) をリクエストします。
2.response Message(応答メッセージ) サーバー→クライアント
サーバーはクライアントのリクエストに応答します
5.httpメッセージフォーマット
リクエスト行 + リクエストヘッダー + 空行 + リクエストエンティティ
1.リクエストライン
リクエスト行は主に 3 つの部分で構成されます: リクエストメソッド + URL フィールド + HTTP プロトコルバージョン
構成:
<method>: このリクエストのメソッド
<request-URL>: リクエストされたリソースへのパス
<version>: 要求されたプロトコルのバージョン
httpリクエストメソッド:
HTTPリクエストメソッド | 説明する |
---|---|
得る | 指定されたリソース情報を要求し、指定されたリソースのエンティティを返すためにクライアントによって使用されます。 |
頭 | GET と似ていますが、クライアントが要求したリソースを返す必要はなく、応答ヘッダーのみが返されます (リソースを持っているかどうかをクライアントに伝えます)。 |
役職 | 通常、mysql ストレージなどのデータを保存する必要がある場合に、HTML フォームに基づいてデータをサーバーに送信します。 |
置く | GET とは対照的に、リソースはサーバーに送信され、サーバーはこのデータを Baidu Netdisk や Alibaba Cloud Disk などに保存します。 |
消去 | URLで指定されたリソースの削除をサーバーに要求します。 |
動く | 指定されたページを別のネットワークの場所に移動するようにサーバーに要求します |
オプション | リクエストされた URL に対してサーバーがサポートするリクエスト メソッドを検出します。 |
痕跡 | 最初のリクエストが通過したプロキシ サーバー、ファイアウォール、またはゲートウェイ |
2. リクエストヘッダー
リクエスト ヘッダーは、キーワード + キーワード値で構成され、:、形式: 名前:値で直接区切られます。リクエスト ヘッダーの機能は、クライアントを通じてリクエストの関連コンテンツをサーバーに通知することです。ヘッダーは複数あります。
3. 空白行
リクエスト ヘッダーの後には空白行があり、キャリッジ リターンとライン フィード文字を使用して、リクエスト ヘッダー情報が次のコンテンツに表示されなくなることをサーバーに通知します。
4. リクエストエンティティ
本当にリクエストされた内容
6.httpレスポンスメッセージ
形式: 開始行 + 応答ヘッダー + 空行 + 応答エンティティ
1.スタートライン
ステータス行とも呼ばれ、クライアントのリクエストに応じたサーバーのステータス情報に使用され、バージョン番号 <version> + ステータス コード <status> + 理由フレーズ <reason-phrase> で構成されます。
<Version>: クライアントのリクエストに応じてサーバーが応答するバージョン <status>: ステータス コード、200、404 など <reason-phrase>: 応答ステータス コードの情報が深い、Reason Phrase <headers> : A多数の応答ヘッダー <entity-body>: 応答本文
2. レスポンスヘッダー
リクエスト メッセージと同様に、通常、開始行の後にいくつかのヘッダー フィールドがあります。各ヘッダー フィールドには名前と値が含まれます。形式: 名前:値
コンテンツタイプ: テスト/html; charset=utf-8 コンテンツの長さ: 78
3. 空白行
最後の応答ヘッダー情報の後には空行があり、ヘッダー情報がないことをクライアントに通知します。
4. レスポンスボディ
応答エンティティには、クライアントに返されるデータがロードされます。データはテキストまたはバイナリです。
7.HTTPステータスコード
ステータスコード | 説明する |
---|---|
1XX | 情報ステータス コード。クライアントに対応する特定の操作を指定するために使用されます。 |
2XX | 成功ステータス コード。リソースをリクエストしました。リソースは存在します。これは、リクエストが成功したことを意味します。 |
3XX | リダイレクトステータスコード、場合によっては新しいアドレスを返す |
4XX | クライアント側エラー。要求したリソースが存在しないか、要求したときにリソースがアクセスを拒否し、権限がありませんでした。 |
5XX | サーバーエラーメッセージ。サーバーへのリクエストを開始すると、サーバーは、解析ライブラリを呼び出すスクリプトを実行する必要があることを認識します。これは、呼び出し中にエラーが発生した場合、またはスクリプトにエラーがあった場合に発生し、それによってもこの問題が発生する可能性があります。 |
一般的なステータスコード
ステータスコード | 説明する |
---|---|
200 | サーバーは Web ページを正常に返しました。これは、成功した HTTP リクエストによって返される標準のステータス コードです。 |
201 | ファイルのアップロードが成功すると、「作成されました」と表示されます。 |
301 | 永久に移動 (永久リダイレクト) すると、新しいアドレスが返され、要求したアドレスが永久に移動される新しいアドレスが通知されます。 |
302 | fonud、一時的なリダイレクト、一時的にどこかに配置され、応答メッセージで「location: new location」を使用します。 |
304 | 変更されていません リソースはまったく変更されていません。 |
403 | 拒否するという禁止された要求 |
404 | not found 要求されたリソースが存在しません |
405 | メソッドは許可されていません 使用しているメソッドは許可されていないか、サポートされていません |
500 | 内部サーバーエラー: サーバー内部エラー |
502 | Bod ゲートウェイでは、プロキシ サーバーが上流サーバーから偽の応答を受け取り、上位層サーバーが意味不明のメッセージを返すため、プロキシ サーバーはエラーを表示します。 |
503 | サービスが利用できません。サービスは一時的に利用できません |
8. HTTP ヘッダーの概要
ヘッダーの分類:一般ヘッダー、リクエスト ヘッダー、応答ヘッダー、エンティティ ヘッダー(特にエンティティ内のリソースの内部タイプ、長さ、エンコード形式などを表すために使用されます)、拡張ヘッダー(非標準ヘッダー。プログラマー)
1. 一般ヘッダー
• 接続:C/S 間のリクエストと応答に関連するオプションを定義します。http1.0 では、永続的な接続を使用する場合、設定するオプションは、接続:キープアライブ、
• Cache-Control: より洗練されたキャッシュ制御を実現するキャッシュ制御。http 1.1 でより一般的
2. リクエストヘッダー
• Client-IP: クライアント IP アドレス
• ホスト: 要求されたホスト。これは、ホスト名ベースの仮想ホスティングを実装する場合に便利です。
• リファラー: 現在のリソースに対して要求された元のリソースの URL を示します。リファラーを使用すると、ホット リンクを防ぐことができます。
• ユーザーエージェント: ユーザーエージェント、通常はブラウザー
• Accept ヘッダー: クライアントが受け入れることができるエンコーディング タイプを参照します。
▪ 受け入れる: サーバーが送信できるメディアのタイプ
▪ Accetp-Charset: 受信した文字セット
▪ Accept-Encoding: エンコード形式
▪ Accept-Lanage: 受け入れ可能な言語エンコード形式
• 条件付きリクエストヘッダー: (http1.1 でのみ使用)
リクエストを送る際は、まず相手に条件を満たしているか確認し、条件を満たしていればリクエストを行い、条件を満たしていればリクエストは行われません。
• セキュリティ関連のリクエスト:
▪ 認可
▪ クッキー
3. レスポンスヘッダー
• 経過時間: リソースが応答してから使用できる期間。
• サーバー: 使用するプログラム名とバージョンをクライアントに通知します。
• ネゴシエーション クラス ヘッダー:
▪ 変更: ヘッダー リストサーバーはこのリストに基づいて最適なバージョンを選択し、クライアントに送信します。
• セキュリティ関連:
▪ WWW 認証
▪ クッキーの設定
4. エンティティヘッダー
• 場所: リソースの新しい場所を示します。通常、302 応答コードを実装するときに使用されます。
• 許可: このリソースに許可されるリクエストメソッド
• コンテンツ関連のヘッダー
▪ コンテンツのエンコーディング
▪ コンテンツ言語
▪ コンテンツの長さ
▪ Content-Location: コンテンツが配置されている場所
▪ コンテンツタイプ
• キャッシュ関連:
▪ ETag: 拡張タグ/タグ
▪ 有効期限: 有効期限
▪ Last-Modified: 最終更新時刻
9. URL と URI とは何ですか?
• URI(Uniform Resource Identifier)と同じリソース識別子
インターネット リソースの名前を識別するために使用される文字列。この識別により、ユーザーは特定のプロトコルを通じてリソースと対話できるようになります。HTML ドキュメント、画像、ビデオ クリップ、プログラムなど、Web 上で利用可能なすべてのリソースは、ユニバーサル リソース ID によって検索されます。したがって、URI を使用して各リソースの名前を識別できます。
• URL (Uniform Resource Locator) (Uniform Resource Locator)
特定のサーバー上のリソースの特定の場所を記述するために使用されます。
例: http://www.baidu.com:80/download/bash-4.3.1-1.rpm
URL の形式は 3 つの部分に分かれています
i. スキーム (プロトコルとも呼ばれます): http://
ii. インターネット アドレス: 通常、このアドレスはサーバーを指します: www.baidu.com:8080
iii. 特定のサーバー上のリソース: download/bash-4.3.1-1.rpm
10.CGIとは何ですか?
共通ゲートウェイ インターフェイス 共通ゲートウェイ インターフェイス
Web サーバーは、スクリプトを実行する必要があると判断すると、CGI プロトコルを介してバックエンド アプリケーションと対話し、ユーザーのリクエストを動的にサーバーに送信し、サーバーの結果は CGI プロトコルを介して http サーバーに返されます。