Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Web
  • » Множественные запросы в одной HTTPS сессии [RSS Feed]

#1 Март 4, 2011 18:14:47

ASY32
От:
Зарегистрирован: 2011-03-04
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Множественные запросы в одной HTTPS сессии

Есть скрипт, который делает множество запросов к серверу по HTTPS.
Запрашиваемая страница одна и та же, только параметры разные передаются.
Используется метод HEAD
Сейчас это реализовано по простому через urllib2.

Проблема в том, что каждый такой запрос инициализирует новое HTTPS соединение и получается очень медленно.
Но насколько я знаю HTTPS позволяет создать одну сессию и общаться уже по ней быстро.

Попытался реализовать через httplib:

import urllib2, httplib

conn = httplib.HTTPSConnection("kakoitoserver.ru",443,timeout=10)
username = 'usr'
password = 'pass'

headers = {"Authorization": "Basic "+b64encode(":".join([username,password]))}
get_url = '/intresting.php?sp1='

searches=[a,b,c,..z]


for search in searches
print get_comp_exist(search)


def get_comp_exist(search,dwn=0):
global conn
global get_url, headers
conn.request("HEAD", get_url+search, None, headers)
res = conn.getresponse()
print res.getheader("content-length")
Проблемы:
1)Я не уверен, что этот код реализует одну сессию и много запросов в ней. Так как скорость не сильно возросла.

2)Очень часто вылетает ошибка:
File “C:\Python27\lib\httplib.py”, line 1001, in getresponse
raise ResponseNotReady()
httplib.ResponseNotReady
Типа, не нравиться что используется тот же объект.



Отредактировано (Март 4, 2011 18:15:59)

Офлайн

#2 Март 4, 2011 18:50:22

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Множественные запросы в одной HTTPS сессии

Типа http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.10
и немного вот: http://en.wikipedia.org/wiki/Keepalive
Дальше сами думайте.



Офлайн

  • Начало
  • » Web
  • » Множественные запросы в одной HTTPS сессии[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version