ホームページ >運用・保守 >安全性 >HTTP および HTTPS プロトコルについて簡単に学びましょう。

HTTP および HTTPS プロトコルについて簡単に学びましょう。

青灯夜游
青灯夜游転載
2020-06-17 11:06:042958ブラウズ

HTTP および HTTPS プロトコルについて簡単に学びましょう。

#1. プロトコルとは何ですか?

ネットワークプロトコルとは、ネットワーク通信を実現するためにコンピュータ間で交わされる「協定」や「規則」のことで、この「協定」によって、異なるメーカーの生産設備やコンピュータ間の通信が可能になります。さまざまなオペレーティング システムで構成されています。

2. HTTP プロトコルとは何ですか?

HTTP プロトコルとは、Hypertext Transfer Protocol の略で、英語名は Hyper Text Transfer Protocol です。 WEBサーバーからローカルブラウザへHTML(Hypertext Markup Language)を送信するための送信プロトコルです。

HTTP を設計する本来の目的は、HTML ページを発行および受信するためのメソッドを提供することでした。

HTTPP には複数のバージョンがあり、現在広く使用されているのは HTTP/1.1 バージョンです。

#3.HTTP の原理

HTTP は、TCP/IP 通信プロトコルに基づいてデータを送信するプロトコルであり、送信されるデータの種類は HTML ですファイル、、画像ファイル、クエリ結果など。

HTTP プロトコルは通常、B/S アーキテクチャで使用されます ()。ブラウザは HTTP クライアントとして、URL を介してすべてのリクエストを HTTP サーバー、つまり WEB サーバーに送信します。

例として Baidu にアクセスしてみましょう:


##Baidu プロセスにアクセスする HTTP および HTTPS プロトコルについて簡単に学びましょう。

4.HTTP の機能

    http プロトコルはクライアント/サーバー モードをサポートしており、リクエスト/レスポンス モードの合意で​​もあります。
  • シンプルかつ高速: クライアントがサーバーにサービスをリクエストするとき、クライアントはリクエストのメソッドとパスを送信するだけで済みます。一般的に使用されるリクエスト メソッドは、GET、HEAD、および POST です。
  • 柔軟性: HTTP では、あらゆる種類のデータ オブジェクトの送信が可能です。送信のタイプは Content-Type によってマークされます。
  • 接続なし: 各接続が 1 つのリクエストのみを処理するように制限します。サーバーがリクエストを処理し、クライアントからのレスポンスを受信した後、サーバーは切断されますが、これではクライアントとサーバー間のセッション接続を維持することはできません。この欠点を補うために、http ステータスを記録する 2 つのテクノロジーが使用されています。 1つはCookieと呼ばれ、もう1つはセッションと呼ばれます。
  • ステートレス: ステートレスとは、プロトコルにトランザクション処理用のメモリがないことを意味します。後続の処理で以前の情報が必要な場合は、再送信する必要があります。

5. URI と URL の違い HTTP は、Uniform Resource Identifier (URI) を使用してデータを転送し、接続を確立します。

    URI:ユニフォーム リソース識別子ユニフォーム リソース
  • Identifier

  • URL:ユニフォーム リソースの場所ユニフォーム リソース
  • Location

    symbol

  • URI は特定のリソースをマークするために使用され、URI を通じてリソースが何であるかを知ることができます。

URL は、特定のリソースを見つけるために使用され、特定のリソースの場所をマークします。インターネット上のすべてのファイルには固有の URL があります。

#6. HTTP メッセージの構成

リクエスト メッセージの構成

1. リクエスト行: リクエスト メソッド、URL、プロトコル/バージョンを含む

#2. リクエスト ヘッダー

#3. リクエスト本文

HTTP および HTTPS プロトコルについて簡単に学びましょう。
#応答メッセージの構成

1. ステータス行 2. レスポンスヘッダー


3. レスポンスボディ

HTTP および HTTPS プロトコルについて簡単に学びましょう。#応答メッセージの構成

7. 一般的なリクエスト方法

    #GET: 指定されたページ情報を要求し、エンティティ本体を返します。
  • POST: リクエストを処理するために指定されたリソースにデータを送信します (フォームの送信やファイルのアップロードなど)。データはリクエストボディに含まれます。 POST リクエストにより、新しいリソースが作成されたり、既存のリソースが変更されたりすることがあります。
  • HEAD: get リクエストに似ていますが、返される応答に特定のコンテンツがない点が異なり、ヘッダー
  • PUT を取得するために使用されます。 : クライアントから クライアントからサーバーに送信されたデータは、指定されたドキュメントの内容を置き換えます。
  • DELETE: 指定されたページの削除をサーバーに要求します。
#リクエストの取得

HTTP および HTTPS プロトコルについて簡単に学びましょう。
投稿リクエスト

##POST リクエスト 違い#post と get の間: HTTP および HTTPS プロトコルについて簡単に学びましょう。

どちらにもリクエスト ヘッダーとリクエスト行が含まれていますが、post にはさらに多くのリクエスト本文が含まれています。

    get は主にクエリに使用され、リクエスト パラメータは URL に配置され、サーバー上のコンテンツには影響しません。投稿は本文にアカウントのパスワードを入れるなどして送信します。
  • GET は URL の末尾に直接追加され、コンテンツは URL 内で直接確認できますが、POST はメッセージ内に配置され、ユーザーが直接確認することはできません。
  • URL の長さに制限があるため、GET によって送信されるデータの長さは制限されます。具体的な長さの制限はブラウザによって異なります。 POSTはそうではありません。
  • 8. レスポンスステータスコード

Webページにアクセスすると、ブラウザはメッセージを送信します。 Webサーバーに問い合わせます。この Web ページが配置されているサーバーは、ブラウザーの要求に応じて、HTTP ステータス コードを含む情報ヘッダーを返します。

ステータス コード分類

:

1XX - 情報タイプ。サーバーはリクエストを受信し、リクエスターが操作を続行する必要があります。

    2XX - 成功タイプ。リクエストは正常に受信され、理解され、処理されました。
  • 3XX - リダイレクト。リクエストを完了するにはさらなるアクションが必要です。


  • #4XX - クライアント エラー、リクエストに構文エラーが含まれているか、リクエストを完了できませんでした。


  • #5XX - サーバー エラー。サーバーがリクエストを処理中にエラーが発生しました。


  • #一般的なステータス コード

    :

200 OK - クライアント要求は成功しました

301 - リソース (Web ページなど) は他の URL に永続的に転送されます
  • 302 - 一時的なジャンプ

  • #400 不正なリクエスト - クライアント リクエストには構文エラーがあるため、サーバーが理解できません。


  • 401 不正 - リクエストは不正です。このステータス コードは次のとおりです。 WWW と同じ - Authenticate ヘッダー フィールドを一緒に使用します


  • #404 - 要求されたリソースは存在しません。間違った URL が入力された可能性があります


  • 500 - サーバー内で予期しないエラーが発生しました

  • ##503 サーバーが利用できません - サーバーは現在クライアントのリクエストを処理できず、その後通常に戻る可能性がありますある期間。


  • 9. https を使用する理由は何ですか?

  • 実際の使用では、ほとんどの Web サイトで https プロトコルが使用されています。これは、インターネットの将来の開発トレンドでもあります。以下は、Wireshark を通じてキャプチャされたブログ Web サイトのログイン要求プロセスです。

    HTTP および HTTPS プロトコルについて簡単に学びましょう。
    ブログ ログイン パケット キャプチャ

    アクセスされたアカウントとパスワードがすべてクリア テキストで送信されていることがわかります。クライアントから送信されるデータは犯罪者によって傍受され、悪用されやすいため、HTTP プロトコルはさまざまな口座番号、パスワード、その他の情報などの一部の機密情報の送信には適していません。HTTP を使用することは非常に危険です。個人情報を送信するためのプロトコル。

    一般に、http には次のような問題があります。

    • リクエスト情報は平文で送信されるため、盗聴によって簡単に傍受されます。

    • データの完全性が検証されておらず、簡単に改ざんされる可能性がある

    • 相手方の身元が検証されておらず、かつなりすましの危険があります

    10. HTTPSとは何ですか?

    上記の問題を解決するにはHTTP、HTTPSが使用されます。

    HTTPS プロトコル (HyperText Transfer Protocol over Secure Socket Layer): 一般に HTTP SSL/TLS として理解され、サーバーの ID は SSL 証明書によって検証され、ブラウザとサーバー間の通信は暗号化されます。

    #それでは、SSL とは何でしょうか?

    SSL (Secure Socket Layer): 1994 年に Netscape によって開発された SSL プロトコルは、TCP/IP プロトコルとさまざまなアプリケーション層プロトコルの間に位置し、データ通信によりセキュリティ サポートを提供します。 。

    TLS (Transport Layer Security、Transport Layer Security): その前身は SSL で、最初のいくつかのバージョン (SSL 1.0、SSL 2.0、SSL 3.0) は Netscape によって開発され、1999 年の 3.1 から採用されました。 IETF が標準化して名前を変更し、現在は TLS 1.0、TLS 1.1、および TLS 1.2 の 3 つのバージョンがあります。 SSL3.0 と TLS1.0 は、セキュリティの脆弱性のため、ほとんど使用されません。 TLS 1.3 には大きな変更が加えられ、まだドラフト段階にありますが、最も広く使用されているのは TLS 1.1 と TLS 1.2 です。

    SSL 開発の歴史 (インターネット暗号化通信)

    1. 1994 年に NetSpace は SSL プロトコル (Secure Sockets Layout) のバージョン 1.0 を設計しましたが、リリースされませんでした。 。

    #2. NetSpace は 1995 年に SSL/2.0 バージョンをリリースし、深刻な脆弱性がすぐに発見されました

    #3. SSL/3.0 バージョンは 1996 年にリリースされ、広く使用されました

    4、1999 年に、SSL アップグレード バージョン TLS/1.0 がリリースされ、現在最も広く使用されているバージョン

    #5。2006 年と 2008 年には、TLS/1.1 および TLS/1.2 バージョン

    11. HTTPS を使用してデータを送信するブラウザのプロセスは何ですか?


    HTTPS データ転送プロセス #1 、まず、クライアントは URL を通じてサーバーにアクセスし、SSL 接続を確立します。 HTTP および HTTPS プロトコルについて簡単に学びましょう。
    2. クライアントのリクエストを受信した後、サーバーは Web サイトでサポートされている証明書情報 (証明書には公開キーが含まれています) のコピーをクライアントに送信します。
    3. クライアントのサーバーは、SSL 接続のセキュリティ レベル (情報暗号化のレベル) のネゴシエーションを開始します。

    4. クライアントのブラウザは、双方が合意したセキュリティ レベルに基づいてセッション キーを確立し、Web サイトの公開キーを使用してセッション キーを暗号化し、Web サイトに送信します。

    5. サーバーは独自の秘密キーを使用してセッション キーを復号化します。

    6. サーバーはセッション キーを使用してクライアントとの通信を暗号化します。

    12. HTTPS の欠点

    HTTPS プロトコルには複数のハンドシェイクがあるため、通信量が 50% 近く増加します。ページの読み込み時間。;

    • HTTPS 接続キャッシュは HTTP ほど効率的ではないため、データのオーバーヘッドと電力消費が増加します。;

    • 費用がかかりますSSL証明書の申請にお金がかかるほど、機能が強力になり、証明書のコストも高くなります。

    • SSL に関連するセキュリティ アルゴリズムは CPU リソースを消費し、大量のサーバー リソースを消費します。

    • 13. HTTPS と HTTP の違いの要約

    HTTPS は、HTTPS のセキュリティです。 HTTP プロトコル バージョン。HTTP プロトコルのデータ送信はクリア テキストで安全ではありません。HTTPS は暗号化に SSL/TLS プロトコルを使用します。

    • http と https では接続方法が異なり、デフォルトのポートも異なります。http は 80、https は 443 です。

    推奨チュートリアル: Web サーバーのセキュリティ

以上がHTTP および HTTPS プロトコルについて簡単に学びましょう。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はzhihu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。