序文
私たちは、ブラウザのキャッシュなどでクッキーがあることを見つけるが、私たち場合は、ブラウザのキャッシュのように、我々は、Pythonや会話に関連したタフなクッキーを必要としています。
しかし、Pythonライブラリ要求は、それがセッション方式、セッションのセッションオブジェクトのクラスが実装をカプセル化します。お使いのブラウザで例えばPythonのような。
まず、クッキーとセッションの違い
1、クッキーは、また、複数のクッキーを使用する、それはセッション追跡およびデータは通常、暗号化、ユーザのローカル端末に格納され、クッキーデータは、顧客のブラウザに保存されて、ユーザの身元を特定することです。
図2は、クッキーがクライアントにローカルに格納され、最大値は4キロバイト、キー、辞書の形式での値です。
3、セッション:セッション制御またはセッション・オブジェクト、必要なセッションオブジェクトストア特定のユーザセッション属性および構成情報、
図4は、セッションは、サーバ、クライアントへの応答は、セッションを持って、各クライアントは、要求は、識別に対応し、交差することができるによって生成されました。
それは、セッションまたはCookieベースの認証方式に基づいているかどうか、クライアントはあなたがIDを発行したサーバを必要とし、ロゴをアップロードするために必要とされ、このIDは暗号化されています。
暗号化が、しかし、無法の人々は、この識別は、まだこれらのプロパティのソースIPと有効期限を持つ好ましくは内部のロゴので、不正な操作の一連のことが、その後、HTTPSを設定することができ得れば、あなたはより効果的に全体の認証プロセスを保護することができます。そしてデータ。
第二に、禅のログイン例
図1に示すように、通常のブラウザ操作ログ - 捕獲、クッキーは、次のクッキーの赤色ログイントークンパス、次のデータ・キャプチャにマークされ、リクエストヘッダ情報を有しています。
クッキー=クッキー:LANG = ZH-CN; テーマ=デフォルト; keepLogin =上; ZA =管理者; lastProduct = 1。preBranch = 0; preProductID = 1。preCaseLibID = 1。lastCaseLib = 1。libCaseModule = 2。caseModule = 0; checkedItem = 2%2C1。ZP = d8486c87280cdfe6c3f4e53b44612c0ad486aa2f。windowWidth = 1920; windowHeight = 968; csrftoken = WAUVNHlXBnWmPfBPdQoK80PLq9NJcJcR6Ew1KIHBfht4Cs1Z0fhaJFn7LDdNnRt3。zentaosid = h6r0cho8eiq4na767vgjcan886
2、シオマネキブレークポイントは、クッキーを削除してから、要求を送信します。
Cookieの削除ブレークポイントにパラメータが渡されたように、図は、次の送信を許可します。図IIは明らかに、ログインが成功しなかったことがわかった、禅に達していなかった - 私の縄張りこのHTMLリターンを。
インタフェースのテストは、我々はセッションと自動的に関連付けるクッキーは、その後、非常に不便になることができない場合は、このことから、我々は知ることができます。
図3は、成功せず、明らかに相関セッション、クッキー、ログインはありません。
4、requests.session()メソッドは、制御セッションを達成することができます。に関連した成功したログインセッションの後に!
インポート要求 S = requests.session()セッション#()コントロールセッション 印刷(s.cookies)#何の要求がクッキーの前に空ではありません url = 'http://127.0.0.1:81/zentao/user-login-L3plbnRhby8=.html' par = 'account=admin&password=e10adc3949ba59abbe56e057f20f883e&keepLogin%5B%5D=on&referer=%2Fzentao%2F' r = s.post(url, params=par) # 登录后查看 cookies print(s.cookies) r1 = s.get('http://127.0.0.1:81/zentao/my/') # 断言 print(r1.content.decode('utf-8'))
requests 库是不是很简单的让session关联了呢?学会了吗?欢迎来QQ交流群:482713805