爬虫類の--http契約初期の経験

1.HTTP契約

1.1コンセプト

ハイパーテキスト転送プロトコルローカルブラウザを転送するために、サーバー:HTTPプロトコルは、ハイパーテキスト転送略語プロトコル(ハイパーテキスト転送プロトコル)はワールド・ワイド・ウェブ(ワールド・ワイド・ウェブWWW)から使用されています。

HTTPはTCP / IP通信プロトコルに基づいたデータ(HTMLファイル、画像ファイル、クエリの結果など)を転送するために使用されます。

1.2作業

上のサーバアーキテクチャ- HTTPプロトコルは、クライアント上で動作します。介してクライアントとしてHTTPブラウザURLのすべてのWEBサーバであるHTTPサーバに要求を送信します。

 HTTP注意すべき3つのことを:

  • HTTPはコネクションレスです:いいえ接続がされて意味の接続ごとに1つだけの要求を制限しませんサーバがクライアントの要求を処理し、顧客の応答を受信した後、すなわち、切断このようにして、送信時間を節約することができます。
  • HTTPは、独立したメディアである:これはことを意味し、限り、クライアントとサーバがデータコンテンツを処理する方法を知っているように、任意のタイプのデータは、HTTPを介して送信することができますクライアントとサーバは、適切なMIMEタイプのコンテンツタイプを指定します。
  • HTTPはステートレスです:HTTPプロトコルはステートレスなプロトコルです。ステートレスは合意を意味し、取引のためには、何のメモリー機能を持っていません状態の欠如は、その後の処理は、情報の前に必要なことを意味する場合は、各接続増加するために送信されるデータの量をもたらす可能性が、再送されなければなりません。一方、それはより速く、サーバーに応じて、以前の情報を必要としません。

 1.3 URL

HTTPは、データを送信し、接続を確立するために、ユニフォームリソース識別子(統一資源識別子URI)を使用します。URLは、URIの特殊なタイプですリソースを見つけるための十分な情報が含まれています。 

URLは、UniformResourceLocatorの略で、中国は、ユニフォームリソースロケータと呼ばれる、インターネット上のリソースを識別するために使用されるアドレスです。例えば、次の通常のURLの組成物の各部分として、次のURLにあります。

http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

それは、上記のURLから次のセクションを含む完全なURLを、見ることができるように:
1、契約の一部:、HTTPプロトコルを使用してWebページを表し:URLのプロトコル部分は、「HTTP」です。以上が本実施例で用いたようなHTTP、FTPなどのインターネットプロトコルで使用することができるHTTPプロトコルです。「//」の後ろに「HTTP」で区切り文字です

2、ドメイン名の部品:URLのドメイン名の一部「www.aspxfans.com」です。URL、またはあなたがドメイン名としてIPアドレスを使用することができます

図3は、ポートセクション:「:」区切り文字としてドメイン名の後には、ポート、ドメイン名とポートとの間で使用することです。ポート部分が省略されている場合、ポートは、デフォルトのポート80 URLの必要な部分ではありません

4、仮想ディレクトリセクション:最初のドメイン名から「/」最後に開始した後、「/」はこれまでのところ、仮想ディレクトリセクションです。仮想ディレクトリは、URLの必要な部分ではありません。この例では、仮想ディレクトリは「/ニュース/」であります

5、ファイル名の部分が:いない場合は、日付の最後のドメイン名の後に「/」初めから、ファイル名の一部であり、それは、ドメイン名、これまでに「#」を「/」開始後、最後からです「」「?」?何も「?」や「#」がない場合は、ファイルの一部であり、そして最後の「/」スタートからフィニッシュまでのドメイン名が、それはファイル名の一部です。この場合、ファイル名は「index.asp」です。ファイル名の一部は、あなたがこの部分を省略した場合、デフォルトのファイル名URLの必要な部分ではありません

6、アンカー部品:「#」最初から最後までは、アンカーの一部です。本実施形態のアンカーは、「名前」です。URLのアンカー部分が必要な部分ではありません

7、一部のパラメータ:当初から遠い部分との間に、引数の「#」の部分には、また、検索クエリの一部の一部として知られています「?。」本実施形態のパラメータは、 "基板ID = 5&ID = 24618&ページ= 1" です。区切り文字としてパラメータと「&」の間のパラメータを用いて、複数のパラメータを可能にするパラメータ。

(オリジナルリンク:https://blog.csdn.net/ergouge/article/details/8185219

1.4メッセージ構造

1.4.1リクエストのリクエスト

クライアントは、HTTPサーバ要求メッセージに要求を送信し、次のフォーマットを含む:リクエストライン(リクエストライン)、リクエストヘッダ(ヘッダ)、ブランク行、および4つの要求からなるデータ部分の一般的なフォーマットを、図は、要求パケットを示しています。

           

ヘッダは:しばしば要求ヘッダは、要求(自己紹介)の主要な説明の一部に格納され、要求ヘッダーと呼ばれます。したがって、サーバーは、クライアントの情報を取得します。

     一般的なリクエストヘッダ:

        受け入れ:ブラウザが頭を介してサーバに伝え、それがデータ型をサポートしています

        受け入れ-文字セットを:ブラウザがサポートする文字セットの種類、ヘッドを介してサーバに伝え
        たAccept-エンコード:ブラウザがこのを通じてサーバに伝え、圧縮形式がサポート
        言語を受け入れる:ブラウザが頭を介してサーバに伝え、それはロケールです
        ホスト:ブラウザがどのホスト訪れてみたかった、ヘッドを介してサーバに伝え
        ブラウザは、ヘッドを介してサーバに伝え、時間キャッシュされたデータ:変更した場合は-ので
        リファラーを:ブラウザが頭を介してサーバに伝え、クライアントどのページにします抗ホットリンク
        接続:要求は壊れたリンクまたはどのようにリンクを維持するためにされた後、ブラウザは、ヘッドを介してサーバに伝え
        X-要求-付きの:AJAXを経由してアクセスするXMLHttpRequest代わっ

        User-Agent:要求車両識別のアイデンティティ

    メッセージ本文:リクエストボディが頻繁に呼び出されるが、リクエストボディに格納された情報をサーバに送信/データを送信します。

1.4.2レスポンス応答

HTTPレスポンスは、4つの部分から構成されます。

ステータスコード:「クリア」の言語には、この要求の処理結果をクライアントに伝えます。

  HTTPレスポンスステータスコードは、5つのセグメントから構成されています。 

    • 1xxメッセージは、通常、クライアントの要求を受信したと処理されている教えて、心配しないでください...
    • 2xxの治療の成功は、一般的に言った:要求の受信は、私はあなたが望むものを理解し、要求が受け入れられている、およびその他の情報が処理されました。
    • 300番台は、他の場所にリダイレクトします。その後、クライアントは、全体のプロセスを完了するための要求を開始することができます。
    • なクライアントとしての4xxエラー処理、クライアント上の責任は、存在しないリソースを要求し、クライアントがアクセスを禁止する権限がありません。
    • 5xxの処理エラーが発生し、サーバ等のサーバ上の責任は、例外、ルーティングエラー、HTTPのバージョンがサポートしていないスロー。

レスポンスヘッダ:詳細レスポンスが示します

  共通のそれぞれのヘッダ:

     場所:このヘッドを介してサーバー、ジャンプするには、ブラウザを伝えるために
     サーバーを:ヘッドを介してサーバー、ブラウザモデルサーバ伝える
     コンテンツエンコード:ヘッドを介してサーバー、ブラウザを伝える、圧縮形式のデータ
     を介してサーバ:コンテンツ長このヘッダは、ブラウザのループバックの長さのデータ告げる
     ブラウザのロケール言って、頭を介してサーバーに:コンテンツの言語を
     、サーバーをヘッドを通じて送信データの種類に戻って、ブラウザに指示します:コンテンツタイプを
     更新:サーバーをヘッドを通して、ブラウザを伝えます定期的に更新
     コンテンツディスポジション:サーバーをヘッドを通して、データ再生する方法ダウンロードするには、ブラウザを伝える
     転送エンコード:にサーバーをヘッドを通して、送り返される途中のデータをブロックするようにブラウザに指示
     有効期限:ブラウザのキャッシュコントロールしていない-1
     Cache-をコントロール:NO-キャッシュ 
     プラグマ:キャッシュなし

身体への返信要求に応じてクライアントによって指定された情報、およびクライアントに指定されたデータを送信します

 

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

 200 OK                         #のクライアント要求が成功した 
400不正な要求の                #のクライアントは、構文エラーを要求が、サーバーによって理解することができない 
401権限               #の要求が許可されていない、ステータスコードは、WWW-Authenticateヘッダフィールドを使用しなければならない 
403禁止                  #のサーバーを要求の受信は、しかし、サービスを提供することを拒否した 
404が見つかりません                  #が間違っているのURLを入力します。例えば、存在しないリソースを要求した 
500内部サーバーエラーの      #のサーバが予期しないエラーに行く 
と503枚のサーバー利用できないペーパー         #1 の期間の後に、サーバーが現在のクライアントを扱うことができない要求を正常な状態に戻してもよい

、よりステータスコード:HTTPS: //www.runoob.com/http/http-status-codes.html

 

1.5メソッド要求

標準のHTTP、HTTPリクエストには、いくつかのリクエストメソッドを使用することができます。

GET、POST、およびHEADメソッド:HTTP1.0要求は3つのメソッドを定義します。

HTTP1.1 6つの新しい要求方法:OPTIONS、PUT、PATCH、DELETE、TRACE、およびCONNECTメソッド。

この方法は、説明
GET        #の要求で指定されたページ情報をとエンティティボディを返します。
POSTの       #は、指定されたリソース(例えば、ファイル送信フォームまたはアップロード)にデータ処理要求を送信します。リクエストボディに含まれるデータ。POSTリクエストは、新しいリソースにおよび/または既存のリソースを確立するために改訂することがあります。
HEADの       GETリクエストと同様に、応答ではなく、特定のコンテンツを返す、取得するためのヘッダ 
のPUT        #1 クライアントからサーバに文書データを指定された置換基は、コンテンツを送信します。
DELETE     #が指定されたページを削除するようにサーバに要求します。
CONNECT    #は、HTTP / 1.1プロトコルは、プロキシ・サーバ・パイプライン・モードとの接続のために予約することができます。
OPTIONSの    #は、クライアントがサーバーのパフォーマンスを表示することができます。
TRACE      エコー要求は、テストまたは診断のために主に、サーバから受信した 
パッチ      #が局所的に知られているリソースの更新を使用するPUT方法を補完します。

2.HTTPS契約

2.1概念

HTTPS(英語:ハイパーテキスト転送プロトコルセキュア、略称:HTTPS、多くの場合、TLS、SSLまたはHTTPセキュアオーバーHTTPを介してHTTPと呼ばれる)は、セキュアなネットワークトランスポートプロトコルです。

HTTPSハイパーテキスト転送プロトコル(HTTP)を介した通信が、データパケットを暗号化するために、SSL / TLSを使用します。

           

2.2 SSL暗号化

「共有キー」と呼ばれて使用されるSSL暗号化技術は、また、「対称鍵暗号」と呼ばれ、この暗号化方式は、クライアントが、サーバーにメッセージを送信し、たとえば、ようなものである既知のアルゴリズムを使用して最初のクライアント情報は、例えばMD5やBase64で暗号化など、暗号化されている場合、受信側は、暗号化情報を復号化鍵を使用する必要があり、中間キー(暗号化と復号化が同じである)、渡され、送信が重要な中間体であります暗号化されました。このアプローチは、安全なようだが、まだ潜在的に危険がある、一度タップ、または情報が開催されて人質、キーを解読し、情報を破ることが可能です。そのため、セキュリティ上のリスクをこのように「鍵暗号を共有します」。

2.3非対称暗号化秘密鍵

「非対称暗号化」を使用する場合は2つのロック、暗号化の非オブジェクトを使用する場合、「秘密鍵」、「公開鍵」暗号と呼ばれる1がありますが、サーバーは、与えられた自分の最初に従ってクライアントに指示しますその後、公開鍵暗号、公開鍵暗号の後、クライアントに合わせて、サーバーが情報を受信し、それを解読、そうすることの利点を復号化するために、自分の秘密鍵を使用すると、鍵が伝送を行うと、そのため、避けられないでしょうです誘拐される危険性。公開鍵は、盗聴者が取得する場合でも、それがあるため、評価の離散対数で、復号化処理を復号化することは困難であり、これは簡単に行うことができません。以下の非対称暗号化回路図:

しかし、非対称秘密鍵暗号化技術は、次のような欠点があります

  1. 受信側は時間が挟まれることなく、その受信した伝送を確保するために、事前に、送信側が送信側の秘密鍵を開示し送信していることを確認する方法。限り、鍵が送信されるように、人質に保持されたリスクが存在してもよいです。
  2. 非対称暗号化は、通信中に通信速度と効率に一定の影響力を持って、処理するために、より複雑な非効率的な方法です

 2.4https証明書のメカニズム

上記では、我々は、公開鍵の存在が誘拐される可能性が高いです最初のもの非対称暗号化の欠点、についての話、公開鍵は、クライアントがサーバーの公開鍵が解除さ受け取ることを保証することはできません。このとき、公開鍵証明書のメカニズムが生じます。認証局は、サードパーティのクライアントとサーバが信頼されています。詳細な通信処理証明書を次のように

  1. サーバーの開発者は、公開鍵は、公開鍵は、認証局に適用するために運ぶために、認証局は、申請者の身元を明確に理解して、承認した後、アプリケーション開発者の公開鍵は、デジタル署名を行いますその後、公開鍵は互いに結合し、内部の証明書と鍵を署名されています割り当てます
  2. クライアントが認証局を認識しているため、サーバーは、クライアントにこのデジタル証明書を送信し、クライアントは公開鍵を介してサーバパスが真であることを保証するために、証明書の番号で公開鍵デジタル署名の正当性を検証することができます。通常の状況下では、デジタル署名の証明書は、認証機関の信頼性に応じて、偽造することは困難です。確認が正確であると、クライアントは、サーバがそれを解読するために自分の秘密鍵を使用して、後で受け取り、メッセージを送信するために、公開鍵で暗号化されます。

オリジナルリンク:https://www.cnblogs.com/sunxiuwen/p/10110762.html#_label8

おすすめ

転載: www.cnblogs.com/lymlike/p/11579840.html