Каково использование HTTP-заголовка If-Unmodified-Since?

Для этого вы можете использовать модуль pickle. Этот модуль имеет два метода:

  1. Pickling (dump) : преобразование объектов Python в строковое представление.
  2. Открепление (загрузка) : извлечение исходных объектов из сохраненного представления строки.

https://docs.python.org/3.3/library/pickle.html код:

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test.txt", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test.txt", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]

32
задан ottodidakt 21 June 2009 в 10:48
поделиться

3 ответа

Вы можете использовать его, например, для запроса диапазона .
Пример: ваш клиент запрашивает ресурс http: //examp.le/foo? id = 3 и длина содержимого составляет 4096, но ваш клиент запрашивает только первые 1024 байта. Затем он может (позже) запросить оставшиеся 3072 байта, но это не имеет смысла, если ресурс тем временем изменился.

edit: Также вы можете не захотеть изменять / обновлять данные, если ресурс тем временем изменился. Например, вы запрашиваете запись о клиенте и что-то редактируете. Если кто-то тем временем изменил запись, это может привести к несоответствиям. Поэтому отправляйте свои обновления с заголовком if-unmodified-Since (-I-retrieved-the-data), и веб-сервер будет / должен отклонить ваши обновления, если запись уже была изменена - ваш клиент может затем запросить «конфликтующие» данные.

edit2: раз уж вы просили " см. http://msdn.microsoft.com/en-us/library/dd179371.aspx#Subheading1 .
Предположим, вы сначала запросили свойства Blob . Теперь вы знаете, например, Content-type и Content-length (возможно, вам это нужно для какого-то распределения). Кто-то / что-то может изменить BLOB-объект до того, как вы отправите второй запрос Get Blob . Если вы отправите значение Last-Modified в качестве значения заголовка If-Unmodified-Since, сервер ответит соответствующим кодом ошибки, если большой двоичный объект был изменен.


Это примеры оптимистической блокировки / блокировки с меткой как средства управления параллелизмом, где значение заголовка Last-Modified служит маркером защиты. См., Например, https://en.wikipedia.org/wiki/Optimistic_concurrency_control
33
ответ дан 27 November 2019 в 21:05
поделиться

Это полезно при возобновлении больших загрузок.

3
ответ дан 27 November 2019 в 21:05
поделиться

Предположим, вы разрабатываете приложение, которое показывает местную погоду для данного места. Если сервер обновляет информацию о погоде только «x» раз в день, браузер может позаботиться о том, чтобы не делать http-запрос в течение этого периода времени (даже если есть обновление).

-4
ответ дан 27 November 2019 в 21:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: