Получение заголовков браузера в Python

В настоящее время я рисую пробел, как получить текущую информацию заголовка браузера для пользователя в Python Tornado? Например, на PHP вы просто можете просмотреть данные $ _SERVER. Что такое альтернатива Торнадо?

Примечание. Как получить IP-адрес клиента запроса Tornado? и «запрос» не работает для меня.

  • Как вернуть код ошибки HTTP без шаблона по умолчанию в Tornado?
  • Есть ли способ развернуть новый код с Tornado / Python без перезапуска сервера?
  • Невозможно вызвать результат () на фьючерсах в торнадо
  • где я могу проверить файл журнала торнадо?
  • Как я могу получить IP-адрес клиента запроса Tornado?
  • Правильный способ «тайм-аута» запроса в «Торнадо»
  • используя Flask и Tornado вместе?
  • Как использовать тестовый обработчик сервера торнадо, который аутентифицирует пользователя через безопасный файл cookie
  • Обработка исключений в Pornon Tornado
  • Как я могу использовать Tornado и Redis асинхронно?
  • Как лучше всего выполнять многопроцессорство в запросах с сервером Porn Tornado?
  • Как запускать функции за пределами цикла websocket в python (торнадо)
  • 2 Solutions collect form web for “Получение заголовков браузера в Python”

    Вот фрагмент, основанный на сервере, на котором я извлекаю некоторые данные заголовка из запроса:

    class api(tornado.web.RequestHandler): def initialize(self, *args, **kwargs): self.remote_ip = self.request.headers.get('X-Forwarded-For', self.request.headers.get('X-Real-Ip', self.request.remote_ip)) self.using_ssl = (self.request.headers.get('X-Scheme', 'http') == 'https') def get(self): self.write("Hello " + ("s" if self.using_ssl else "") + " " + self.remote_ip) 

    Вы можете использовать логику, похожую на tornado/httpserver.py или просто создать tornado.httpserver.HTTPServer() с xheaders=True .

     # Squid uses X-Forwarded-For, others use X-Real-Ip ip = self.headers.get("X-Forwarded-For", self.remote_ip) ip = ip.split(',')[-1].strip() ip = self.headers.get( "X-Real-Ip", ip) if netutil.is_valid_ip(ip): self.remote_ip = ip # AWS uses X-Forwarded-Proto proto = self.headers.get( "X-Scheme", self.headers.get("X-Forwarded-Proto", self.protocol)) if proto in ("http", "https"): self.protocol = proto 
    Python - лучший язык программирования в мире.