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

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

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

  • Tornado coroutine
  • Как вернуть код ошибки HTTP без шаблона по умолчанию в Tornado?
  • Как насмехаться с функцией торнадо coroutine с использованием макетной рамки для модульного тестирования?
  • Различия между node.js и Tornado
  • вызывать задачу сельдерея из торнадо
  • Правильный способ «тайм-аута» запроса в «Торнадо»
  • Ошибка сервера Tornado Ошибка потока
  • Как работает длительный опрос в «Торнадо»?
  • 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 - лучший язык программирования в мире.