هل مكتبة بيثون HTTPLIB2 ذاكرة التخزين المؤقت URIS مع الحصول على سلاسل؟

StackOverflow https://stackoverflow.com/questions/717700

  •  23-08-2019
  •  | 
  •  

سؤال

في المثال التالي ما يتم تخزين مؤقتا بشكل صحيح؟ هل هناك تختلف رأس يجب علي ضبط جانب الخادم للحصول على سلسلة Get؟

import httplib2
h = httplib2.Http(".cache")
resp, content = h.request("http://test.com/list/")
resp, content = h.request("http://test.com/list?limit=10")
resp, content = h.request("http://test.com/list?limit=50")
هل كانت مفيدة؟

المحلول

يستخدم httplib2 URI الكامل لمفتاح ذاكرة التخزين المؤقت، لذلك في هذه الحالة، سيتم تخزين كل من عناوين URL الخاصة بك في مثالك بشكل منفصل من قبل العميل.

للفصل والآية من __init__.py ملف HTTPLIB2، إذا كنت ترغب في الإثبات، إلقاء نظرة على الاتصال إلى ذاكرة التخزين المؤقت حول السطر حول 1000:

cachekey = defrag_uri
cached_value = self.cache.get(cachekey)

يتم تعريف defrag_uri بواسطة الوظيفة urlnorm (خط 170) ويشمل المخطط والسلطة والمسار والاستعلام.

بالطبع، كما تعلمون، قد يفسر الخادم تعريف "الموارد" بشكل مختلف تماما، لذلك، قد لا يزال بإرجاع المحتوى المخزن مؤقتا. نظرا لأنه يبدو أنك تتحكم في الخادم في هذه الحالة، لديك التحكم الكامل هناك، لذلك لا توجد مشكلات. في كلتا الحالتين، على جانب العميل، لن تكون هناك قيم مخزئة بالعميل تستخدم للمدعو الأول لكل من عناوين URL 3 في أمثلةك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top