[ネットワーク]HTTPとHTTPS


HTTP(HyperText Transfer Protocol)


≪サーバー|Server|Eas≫-クライアント・モデルに基づいてデータを交換するプロトコル
TPC、UDP 80ポートの使用
接続中に中断しても、再起動する必要はありません.これは時間の無駄です.
ステータスなしステータスなしプロトコル

HTTPリクエスト/レスポンスヘッダ


リクエストヘッダ

GET /xyz.html HTTP/1.1
Host: www.xyz.com
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Accept: text/html; */*
Cookie: name = value
Referer: http://www.abc.com/abc.html
1行目は要求行->メソッドURI HTTPversion
getメソッド/ディレクトリのxyzを使用します.htmlを要求するためのプロトコルバージョンは1.1です.
最初の行の後ろの部分はリクエストヘッダに対応します
name:valueの形式で定義
メソッド名は大文字でなければなりません
ヘッダーに大文字と小文字の区別を要求し、スペースを自動的に削除
  • Host:クライアント要求のホスト名とポート番号
  • User-Agent:クライアントソフトウェア(ブラウザ、オペレーティングシステム)名とバージョン
  • Accpet:Webブラウザは、サーバから受信したデータのメディアタイプ(メディアタイプ)を処理することができる
    「*/*」を使用すると、特定のタイプ以外のすべての通常のシェイプ
  • Authorization:サーバに認証トークン(JWT/Beareトークン)を送信する際に使用するヘッダ
  • Cookie:ハードディスクにCookieがある場合は、name-valueを取得してWebサーバに送信
  • Referr:接続されたクライアントのアドレス(すなわち、前のWebリンクアドレス)
  • Origin:POST要求をサーバに送信する場合、要求がどのアドレスから始まるかを示す
    送信要求のアドレスが受信要求のアドレスと異なる場合、CORSエラーが発生します
    応答ヘッダのアクセス制御Allow-originに関する
  • レスポンスヘッダ

    HTTP/1.1 200 Found
    Date: Mon, 10 Feb 1997 23:48:22 GMT
    Server: Apache/1.3.9 
    Connection: close 
    Content-type: text/html; charset=utf-8
    Date: Mon, 18 Jul 2019 16:06:00 GMT
    Last-Modified: Tues, 11 Feb 2000 22:45:55 GMT
    最初の行は、ステータス情報を含む応答行です.
    Webサーバにクライアント要求のアドレスがある場合は「200 Found」、ない場合は「404 Not Found」
    応答ヘッダの各フィールドと値(最初の行から)
  • Date:要求の実行日時
  • サーバ:サーバソフトウェア情報
  • Set-Cookie:サーバ側がクライアントにセッションCookie情報を設定
  • Expires:指定された時間までリソースをキャッシュ
    (応答内容がいつ期限切れになるかを示す)
  • Connection:接続ステータスの決定
    closeの場合、トランザクションが完了すると接続が切断されます
  • Allow:サーバ側でサポートされているHTTPメソッドリスト
  • Content-type:データを送信するメディアタイプ
  • Last-Modified:前回送信データを変更した日付
  • Access-Control-Allow-Origin:送信要求のアドレスが受信要求のアドレスと異なる場合、CORSエラーが発生します
    サーバは、エラーXのためにフロントエンドアドレスをこのヘッダーに記入する必要があります.
    *すべてのアドレスでCORSリクエストを発行できますが、セキュリティが低下します.
  • HTTPの行為



  • ユーザーがWebブラウザにURLアドレスを入力(ホスト名とポート番号を取得)

  • DNSサーバにWebサーバのホスト名をIPアドレスに変更するよう要求する

  • TCPをWebサーバに接続する(3ウェイ握手)

  • WebブラウザがサーバにHTTPリクエストを送信

  • サーバがWebブラウザにHTTP応答を送信

  • サーバ-クライアントの接続解除(4ウェイ握手)

  • Webブラウザ出力Webドキュメント
  • 暗号化されていないコメントデータを転送するプロトコル
    ->情報を取得するリスクがある
    これらの問題を解決するためにHTTPSが発生しました

    HTTPS(HyperText Transfer Protocol over Secure Socket Layer)


    HyperText Transfer Protocol over Secure Socket Layer, HTTP over TLS, HTTP over SSL, HTTP Secure
    HTTPにデータ暗号化プロトコルを追加
    ソケット通信の純粋なテキストではなく、SSL、TLSプロトコルでセッションデータを暗号化
    公開鍵として対称鍵を渡し、互いに共有する対称鍵を用いて通信する
    TCP/IP 443ポートの使用
    最近のネットワーク/サーバ・デバイスのパフォーマンスの向上に伴い、セキュリティ・レベルによるサーバ負荷の増加による処理速度はXに達しました.
    トランスポート・レイヤ・セキュリティ(TLS)は、過去のセキュア・ソケット・レイヤで名前が変更されています.まだ大量のSSL名が使用されています

    公開鍵/秘密鍵メソッド


  • 公開鍵暗号化:公開鍵による暗号化->秘密鍵による復号化
  • 秘密鍵暗号化:秘密鍵暗号化->公開鍵で復号化
  • 秘密鍵:あなた自身のみ、公開しません.
  • 公開鍵:他者提供.公開鍵は安全です
  • たいしょうキーほうしき

  • 暗号化に使用するパスワードを鍵と呼びます.
    対称鍵は、同じ鍵を使用して暗号化および復号化することができる
  • 対称鍵はランダムに生成され、漏洩されるが、次回の使用時には異なる鍵が使用されるため、セキュリティ
  • 公開鍵通信より速い
  • HTTPSの行為


    SSL方式を適用するには、証明書を発行してサーバに適用する必要があります.
    証明書の役割は、ユーザーが接続しているサーバが所望のサーバであることを確認することです.
    これらの証明書を発行する機関はCA(Certificate Authority)と呼ばれています.

  • サイトは自分の情報と公開鍵をCAに提出する(証明書の発行を要求する)

  • CAは、認証プログラムによりサイトに送信された情報を秘密鍵で暗号化(証明書発行)する

  • CAはWebブラウザに公開鍵を提供する
    (WebブラウザはCAリストと各公開鍵を知っている)

  • ユーザーがサイトに接続する->独自の証明書をWebブラウザに送信します.

  • Webブラウザは、事前に受け取ったCA公開鍵を使用して証明書を復号して検証する
    (Webサイトの情報と公開鍵がわかります)

  • 取得したサイト公開鍵を使用して対称鍵を暗号化し、サイトに送信します.

  • Webサイトは、秘密鍵の復号化によって対称鍵を取得し、対称鍵によってデータを交換します.