2 HTTP和HTTPS

HTTP和HTTPS

HTTPは、ハイパーテキスト転送プロトコルの略で、ためと呼ばれる中国のハイパーテキスト転送プロトコルHTTPプロトコルは、効率的かつ正確な転送ハイパーテキスト文書を確保することができるローカルブラウザトランスポートプロトコルにネットワークからハイパーテキストデータのために使用されます。ワールドワイドウェブコンソーシアム(World Wide Webコンソーシアム)とインターネットワーキンググループIETF(Internet Engineering Task Force)によりHTTPは広く使われている、仕様を開発するために協力しているHTTP1.1バージョン。

HTTPSは、セキュア・ソケット・レイヤーの上にハイパーテキスト転送プロトコルの略で 、 セキュリティターゲットHTTPチャンネルで、単純に、HTTP、HTTPの安全なバージョン追加SSL層であり、HTTPSと呼ばれます。

HTTPS SSLセキュリティインフラストラクチャがあるので、その内容によっては、SSL暗号化を介して送信され、その主な役割は、2つのタイプに分けることができます。

  1. インタフェースは、データ送信の安全性を確保するために、情報セキュリティのチャネルを確立します。

  2. 口は、ブラウザのアドレスバーにロック記号をクリックすることで、認証ウェブサイトの後に本当の情報を表示することができ、サイトの信頼、HTTPSサイトのいずれかの使用を確認しても安全な署名CA機関を経由して照会することができます。

今、より多くのウェブサイトやアプリケーションは、HTTPS方向に開発されており、たとえば、:

  • Appleはすべての代わりに、それはApp Storeの棚でそれ以外のAppことはできませんHTTPS暗号化を使用する2017年1月1日にすべてのiOSAppを強制します。

  • URLリンクのChrome56の最初の打ち上げは、HTTPS用に暗号化されていない2017年1月からGoogleが「このページが危険な」アドレスバーに目立つ位置にあるユーザーを思い出させる、リスクの警告を示しました。

  • 公式要件文書のTencentのマイクロ文字楽屋アプレットは、ネットワーク通信、ドメイン名のHTTPSリクエストを使用する必要があり、要求することができない契約の条件を満たしていません。

  そして、HTTPSプロトコルを使用していくつかのサイトが、彼らは、そのような私たちは12306内のChromeブラウザで開くように危険なのブラウザにプロンプトが表示されます、へのリンク:HTTPS:/ www.12306.cn/、ブラウザが要求されますので、ここであなたはケースによって証明書を検証するように求められますが、実際されることはありません、CA 12306証明書は自分で鉄道の中国の省によって発行され、この証明書は、CAのメカニズムを信頼されていないので、それは「あなたの接続は、プライベートではありません」そのデータ送信はSSL暗号化を通じて、まだです。あなたがこのサイトをクロールしたい場合は、それ以外の場合は、SSLリンクエラーを促すメッセージが表示されます、証明書を無視するオプションを設定する必要があります。

 

HTTP要求プロセス

 

 

リクエスト

1.メソッド要求

2つの一般的な要求の方法がありますGETPOSTがGET要求を開始れる、ブラウザで直接URLを入力し、Enterキーを押します、リクエストは直接URLにパラメータが含まれています。例えば、BaiduのPythonでの検索は、これはGETリクエストで、リンクがあるhttps://www.baidu.com/sURLが要求されたパラメータ情報が含まれているWD = Pythonは、ここではパラメータのWDは、キーワードを検索することを約束しました。

フォームが送信されたときにPOSTリクエストは主に開始されます。たとえば、ログインフォームのために、ユーザー名とパスワードを入力し、「ログイン」ボタンをクリックして、通常はPOSTリクエストを開始しており、データは、典型的には、フォームの形式で送信されますが、URLには反映されません。

以下の違いでリクエストメソッドをGETとPOST:

  • データがフォームのフォームを介して送信されるURLにデータURLで見ることができるパラメータを含む要求をGET、およびPOSTリクエストのURLにデータが含まれないであろう、それはリクエストボディに含まれています。

  • POSTメソッドが限定されるものではないながら要求は、唯一の1024バイトまでのデータを提出GET。

一般的には、あなたがログオンしたとき、あなたは、ユーザー名とパスワードを提出し、機密情報が含まれ、GETメソッド要求を使用し、その後、パスワードは内部URLに露出され、パスワードの漏洩を作成する必要があるので、ここでPOSTメソッドを送信することが最善です。ファイルをアップロードすると、ファイルの内容が比較的大きいので、それはPOSTメソッドを選択します。

 

他のリクエストメソッド

GET  リクエストのページを、ページのコンテンツに戻る
要求、応答を取得するには同様のHEADが、ヘッダ取得するために、具体的な内容を返さない
POST  ほとんどがフォームを送信したり、ファイルをアップロードするために使用し、リクエストボディに含まれるデータは
、クライアントからのPUTデータ・サーバは、指定された文書の内容を交換するために送信し
、指定されたページを削除するには、サーバーへのリクエストを削除し
、クライアントではなく、他のページのサーバーにアクセスできるようにするための踏み台としてサーバーを接続
OPTIONSは、クライアントがサーバーのパフォーマンスを表示することができます
主に、エコーサーバは受信要求TRACEを検査や診断のため

 

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

受け入れ  許容された情報の種類を指定するには、クライアントのリクエストヘッダフィールドを。ポートが受け入れる言語:クライアント許容できる言語の種類を指定します。ポートは受け入れ-エンコード:クライアント許容コンテンツのエンコーディングを指定します。

ホストは、  元のサーバーまたはゲートウェイ要求されたURLの位置を読み取って、要求されたリソースのホストIPとポート番号を指定するために使用されます。HTTP1.1のバージョンを起動すると、要求がこのコンテンツを含んでいなければなりません。

クッキーは  また、複数のクッキーに使用され、これは、ユーザー・セッションの追跡を識別し、ユーザーのローカルデータに格納するためのサイトです。その主な機能は、現在のアクセスセッションを維持することです。我々は成功し、サイトにログインするためのユーザー名とパスワードを入力すると、例えば、サーバは、我々はリフレッシュしたり、サイトの他のページを要求するたびに後ろに、あなたがログインしているでしょう、これはクッキーのクレジットがあり、ログに記録された情報のセッションを保存します。私たち自身を識別するためにクッキーを経由して、リクエストヘッダにクッキーを追加します、我々は、ブラウザがサイトのページを要求した時に対応するサーバとのセッションを識別し、それをサーバーに送信した情報はありクッキー、そして現在の状態を参照するには、ログイン後に返される結果ページのコンテンツ、ログインしている見つけます。

Referer  此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做相应的处理,如做来源统计、防盗链处理等。

User-Agent  简称UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本、浏览器及版本等信息。在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很可能会被识别出为爬虫。

Content-Type  也叫互联网媒体类型(Internet Media Type)或者MIME类型,在HTTP协议消息头中,它用来表示具体请求中的媒体类型信息。例如,text/html代表HTML格式,image/gif代表GIF图片,application/json代表JSON类型,更多对应关系可以查看此对照表:
http://tool.oschina.net/commons。

 

3.请求体

请求体一般承载的内容是POST请求中的表单数据,而对于GET请求,请求体则为空。

Content-Type和POST 提交数据方式的关系:

application/x-www-form-urlencoded   表单数据
multipar/form-dat   表单文件上传
application/json  序列化JSON数据
text/xml  XML数据

 

响应

响应,由服务端返回给客户端,可以分为三部分:响应状态码(Response Status Code)、响应头(Response Headers)和响应体(Response Body)

 

1.响应状态码

状态码分类:

1**  信息,服务器收到请求,需要请求者继续执行操作

2**  成功,操作被成功接收并处理

3**  重向,需要进一步的操作以完成请求

4**  客户端错误,请求包含语法错误或无法完成请求

5**  服务器错误,服务器在处理请求的过程中发生了错误

常见的响应状态码:

200   请求成功

301     资源(网页等)被永久转移到其它URL

404  请求的资源(网页等)不存在

500  内部服务器错误

 

 

2.常见的响应头

 

Date  标识响应产生的时间。
Last-Modified  指定资源的最后修改时间。
Content-Encoding  指定响应内容的编码。
Server  包含服务器的信息,比如名称、版本号等。
Content-Type  文档类型,指定返回的数据类型是什么,如texthtml代表返回HTML文档,application/x-javascript则代表返回JavaScript文件,image/jpeg则代表返回图片。
Set-Cookie  设置Cookies。响应头中的Set-Cookie 告诉浏览器需要将此内容放在Cookies中,下次请求携带 Cookies请求。
Expires  指定响应的过期时间,可以使代理服务器或浏览器将加载的内容更新到缓存中。如果再次访问时,就可以直接从缓存中加载,降低服务器负载,缩短加载时间。

 

 

3.响应体

最重要的当属响应体的内容了。响应的正文数据都在响应体中,比如请求网页时,它的响应体就是网页的HTML代码;请求一张图片时,它的响应体就是图片的二进制数据。我们做爬虫请求网页后,要解析的内容就是响应体

在浏览器开发者工具中点击Preview,就可以看到网页的源代码,也就是响应体的内容,它是解析的目标。

在做爬虫时,我们主要通过响应体得到网页的源代码、JSON数据等,然后从中做相应内容的提取。

おすすめ

転載: www.cnblogs.com/shibojie/p/11403946.html