2014-12-25 2 views
-1

Сложности в стороне, какой самый простой и грязный способ обнаружить в запросе, был ли этот запрос проблемой с помощью программы CLI, например curl, или это было браузером? Вот то, что я пытаюсь выяснить:Простой способ обнаружения браузера или скрипта

def view(request): 
    if request.is_from_browser: 
     return HTML_TEMPLATE 
    else: 
     return JSON 
+0

Как насчет заголовка 'User-Agent'? (ПРИМЕЧАНИЕ. Такие программы, как 'curl', легко меняют заголовки http) – falsetru

+0

Зачем вы хотите это сделать? есть много неприятных заголовков, и выбор правильного требует знания по назначению. – Jasen

ответ

0

Request.is_ajax() проверяет, соответствует ли HTTP_X_REQUESTED_WITH заголовок XMLHttpRequest. Это становится «отраслевой стандарт» среди web рамки/библиотеки для разделения Ajax вызывает из обычных запросов. Но это зависит от сотрудничества со стороны клиента, чтобы фактически настроить заголовок. Существует не 100% надежный способ обнаружения браузера, клиента, Ajax и т. Д. Без этого сотрудничества.

Btw, зачем вам нужно знать, что называется?

0

Somthing в заголовках запроса HTTP, я сначала попробуйте использовать заголовок Accept. с заголовком accept клиент может указать, какой контент он хочет. Это ставит ответственность на клиента.

+0

Это должен быть комментарий, он отвечает только на первую часть вопроса. –

+0

@ A.J. есть две части? – Jasen

Смежные вопросы