-http HTTPSプロトコルをインタビュー

著者:呉と飛
リンクします。https://zhuanlan.zhihu.com/p/72616216
出典:ほとんど知っている
著者が著作権を保有。著者は認可商業転載してください接触、非商用の転載は、ソースを明記してください。

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

ネットワークプロトコルは、コンピュータ間でのネットワーク通信を実現するために「合意」または「ルール」であり、この異なるベンダーの機器間の「合意」ならびに異なるオペレーティングシステムコンポーネントを搭載したコンピュータで、あなたが達成できることに同意しました通信。

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

HTTPプロトコルは、ハイパーテキスト転送プロトコルの頭字語、英語はハイパーテキスト転送プロトコルです。ローカルのブラウザを転送するためにHTMLのWEBサーバ(HTML)プロトコルから送信されます。

HTTP元々設計された目的は、公開とHTMLページを受信するための方法を提供することにあります。

HTPPはいくつかのバージョンが存在する、それが現在広く使われているHTTP / 1.1バージョンです。

3.HTTP原理

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

HTTPプロトコルは、一般的にB / Sの構造に使用されます()。WEBサーバであるHTTPクライアントのURLなどのブラウザは、HTTPを介してサーバにすべての要求を送信します。

私たちは、例えば、Baiduのを参照してください。

 

アクセスBaiduのプロセス

4.HTTPの特長

  1. HTTPプロトコルがサポートするクライアント/サーバモードでなく、要求/応答プロトコルモード。
  2. 高速でシンプル:サーバーへの顧客サービス要求、代わりにリクエストメソッドとパスを送ります。リクエスト方法は、一般的にGET、HEAD、POSTを使用していました。
  3. 柔軟性:HTTPは、データオブジェクトの任意の型の伝送を可能にします。Content-Typeのでマークされる送信のタイプ。
  4. コネクションレス:制限、接続ごとに1つの要求を処理。Serverは、HTTPの技術的な状態にクッキーと呼ばれる2つのレコードを、結果として、不足分を補うために、セッション接続を維持するために、クライアントとサーバに資するリクエストを処理し、顧客のレスポンスを受信すると、切断されたことはなく、セッションと呼ばれます。
  5. ステートレス:トランザクション処理、情報の前に、後続の処理の必要性のための無ステートレスなプロトコルメモリ手段、それは再送信する必要があります。

5.URIとURLの違い

HTTPは、データを送信し、接続を確立するために、ユニフォームリソース識別子(統一資源識別子URI)を使用します。

  • URI:ユニフォームリソース識別子ユニフォームリソース識別子シンボル
  • URL:ユニフォームリソース場所ユニフォームリソースロケの休憩

URIは、特定のリソースを示すために使用され、私たちはどのようなリソースURIはいを知ることができます。

URLは、特定のリソースを検索するために使用され、特定のリソースの場所を示しています。インターネット上の各ファイルは固有のURLがあります。

6.HTTPメッセージの構成

Requestメッセージの構築

  1. リクエストライン:リクエストメソッド、URL、プロトコル/バージョンが含まれ
  2. リクエストヘッダ(要求ヘッダ)
  3. リクエストボディ
要求メッセージの構成

応答メッセージの構築

  1. ステートライン
  2. レスポンスヘッダ
  3. レスポンスボディ
応答メッセージの構成

7.一般的なリクエストメソッド

  • GET:要求ページ情報が指定され、エンティティボディを返します。
  • POST:指定されたリソース(例えば、ファイル送信フォームまたはアップロード)への要求を処理するデータを提出してください。データは、リクエストボディに含まれています。POSTリクエストは、新しいリソースにリソースを確立および/または既存の改正をもたらすことができます。
  • HEAD:GET要求と同様に、レスポンスヘッダを取得するため、特定コンテンツを返さないが
  • PUT:サーバーからクライアントに送信された文書データの具体的な内容を交換してください。
  • DELETE:指定されたページを削除するようにサーバに要求します。

リクエストを取得

GETリクエスト

ポスト要求

POSTリクエスト

ポストとの間の差を取得します:

  • 要求ヘッダーは、リクエストライン、ポスト複数のリクエストボディを含んでいます。
  • URL内のマルチクエリ要求パラメータに慣れるには、サーバー上のコンテンツに影響を与えません。ポストは、このような中、体内へのアカウントのパスワードとして、提出するために使用しました。
  • GETは、POSTは、パケットの内部に配置されているのに対し、ユーザーが直接見ることができない、URLで直接見ることができるURLの後ろに直接添加されます。
  • GETは、お使いのブラウザによっては、特定の長さの制限があることも、データ長があるため、URLの長さの制限により制限されて提出しました。そして、いやPOST。

8.応答ステータスコード

Webページにアクセスすると、ブラウザがWebサーバに要求を送信します。このページサーバ常駐復帰情報ヘッダは、ブラウザのリクエストに対するHTTPレスポンスのステータスコードを含みます。

ステータスコードカテゴリ

  • 1XX-タイプ情報は、サーバーは、要求を継続する必要があり、要求を受け取ります。
  • 2XX-成功タイプは、要求が正常に受信された理解及び処理されます。
  • 3XX - リダイレクトは、さらにアクションが要求を完了するために必要とされます。
  • 4XX - エラークライアント要求は、構文エラーまたは要求を完了することができませんでしが含まれています。
  • 5XX - サーバーエラーが要求の処理中に発生したサーバーエラーが発生しました。

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

  • 200 OK - クライアント要求が成功しました
  • 301--リソース(Webページなど)を恒久的に別のURLに転送され、
  • 302--一時的なジャンプ
  • 400不正な要求 - クライアントは、構文エラーを要求し、それがサーバーによって理解することができません
  • 401不正 - 不正な要求、ステータスコードは、WWW-Authenticateヘッダフィールドで使用されなければなりません
  • 404 - 要求されたリソースは、おそらく間違ったURLが入力され、存在しません。
  • 500--予期しない内部サーバーエラーが発生しました
  • 503サーバーご利用いただけません。 - サーバは、クライアントの要求を処理することが現在できない一定期間の後に正常に戻ることがあります。

9.なぜ、httpsを使用しますか?

実際の使用では、大多数のサイトが今のインターネットの将来の発展の傾向であるHTTPSプロトコルを使用しますと言います。以下は、ブログサイトのwiresharkのクロール処理によるログイン要求です。

ログインEtherealのブログ

httpプロトコルを使用して、アカウント、パスワード、およびその他のさまざまな情報:パスワードを見ることができ、アカウントへのアクセスは、HTTPプロトコルのような機密情報の伝送に適していない、クライアントから送信された要求は簡単ので、不謹慎な要素によって傍受される可能性がそうすることを、明確に送信され、非常に危険な個人情報の送信。

一般的なHTTPに問題があります:

  • 平文送信要求情報は、盗聴に対して脆弱取ら。
  • データの整合性をチェックすることは容易に改ざんされていません
  • 互いのアイデンティティ、ポーズ危険が存在するかどうかを検証しませんでした

10. HTTPSとは何ですか?

上記の問題HTTPを解決するためには、HTTPSを使用しています。

HTTPSプロトコル(セキュア・ソケット・レイヤー上のハイパーテキスト転送プロトコル):一般的にHTTP + SSL / TLSと理解、SSL証明書を介してサーバーを認証し、ブラウザとサーバ間の通信を暗号化します。

だから、SSLは何ですか?

SSL(セキュアソケットレイヤー、セキュアソケットレイヤー):1994 SSLプロトコルは、データ通信のための安全なサポートを提供するアプリケーション層プロトコルの様々なTCP / IPプロトコルとの間に配置され、Netscapeが開発されました。

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

SSLの履歴(インターネット通信を暗号化されました)

  1. 1994年にNetSpaceは、プロトコルSSL(ソケットレイアウトをセキュア)1.0バージョンを設計されていますが、公開されていません。
  2. SSL / 2.0の1995 NetSpaceリリースバージョンでは、すぐに重大な欠陥があることを発見
  3. 1996 SSL / 3.0バージョン、大規模なアプリケーションでリリース
  4. 1999年に、それは最も広く使用されているバージョンのアップグレード版のTLS / SSL 1.0版をリリース
  5. 2006年と2008年には、TLS / 1.1バージョンおよびTLS / 1.2バージョンを発表しました

転送データにHTTPSを使用してどのようなブラウザ11は、プロセスのですか?

 

HTTPSデータ転送処理
  1. まずSSL接続がサーバーのURLにアクセスするためにクライアントによって確立されています。
  2. サーバがクライアントの要求を受信した後、証明書情報をクライアントにコピーを送信する(公開鍵証明書に含まれる)のウェブサイトによってサポートされます。
  3. クライアント・サーバ・セキュリティ・レベルは、情報のレベルを、暗号化されたSSL接続を、交渉を始めました。
  4. セキュリティレベルに応じて、クライアントのブラウザは、セッションキーを確立し、その後、セッションキーを暗号化するために、サイトの公開キーを使用して、それがサイトに送信することに合意しました。
  5. サーバーはセッションキーを解読するために自分の秘密鍵を使用します。
  6. 服务器利用会话密钥加密与客户端之间的通信。

12.HTTPS的缺点

  • HTTPS协议多次握手,导致页面的加载时间延长近50%;
  • HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗;
  • 申请SSL证书需要钱,功能越强大的证书费用越高。
  • SSL涉及到的安全算法会消耗 CPU 资源,对服务器资源消耗较大。

13.总结HTTPS和HTTP的区别

  • HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理。
  • http和https使用连接方式不同,默认端口也不一样,http是80,https是443。

おすすめ

転載: www.cnblogs.com/fan-1994716/p/11873203.html