Python 如何检查传入HTTP头请求的内容

Python 如何检查传入HTTP头请求的内容,python,django,http-headers,basic-authentication,Python,Django,Http Headers,Basic Authentication,我正在玩弄一些API,我正试图弄明白这一点 我正在通过API向我的服务器发出一个基本的HTTP身份验证请求。作为该请求的一部分,经过身份验证的密钥作为用户名存储在HTTP头中 所以我的问题是,如何获取传入请求的内容,以便对其执行检查 我想做的是: if incoming request has header == 'myheader': do some stuff else: return ('not authorised') 对于那些感兴趣的人,我正在努力工作 更新 我正在使

我正在玩弄一些API,我正试图弄明白这一点

我正在通过API向我的服务器发出一个基本的HTTP身份验证请求。作为该请求的一部分,经过身份验证的密钥作为用户名存储在HTTP头中

所以我的问题是,如何获取传入请求的内容,以便对其执行检查

我想做的是:

if incoming request has header == 'myheader':
    do some stuff
else:
    return ('not authorised')
对于那些感兴趣的人,我正在努力工作

更新
我正在使用Django

头文件存储在
os.environ
中。因此,您可以像这样访问HTTP头:

import os
if os.environ.haskey("SOME_HEADER"):
  # do something with the header, i.e. os.environ["SOME_HEADER"]

HttpRequest.META

A standard Python dictionary containing all available HTTP headers. 
Available headers depend on the client and server, but here are some examples:

        CONTENT_LENGTH
        CONTENT_TYPE
        HTTP_ACCEPT_ENCODING
        HTTP_ACCEPT_LANGUAGE
        HTTP_HOST -- The HTTP Host header sent by the client.
        HTTP_REFERER -- The referring page, if any.
        HTTP_USER_AGENT -- The client's user-agent string.
        QUERY_STRING -- The query string, as a single (unparsed) string.
        REMOTE_ADDR -- The IP address of the client.
        REMOTE_HOST -- The hostname of the client.
        REMOTE_USER -- The user authenticated by the Web server, if any.
        REQUEST_METHOD -- A string such as "GET" or "POST".
        SERVER_NAME -- The hostname of the server.
        SERVER_PORT -- The port of the server.
内容长度和内容类型除外,如下所示 如上所述,在 请求被转换为元密钥 将所有字符转换为 大写,将所有连字符替换为 下划线并添加一个HTTP_uu前缀 名副其实。例如,一个标题 调用的X-Bender将映射到 元密钥HTTP_X_BENDER

因此:


您正在使用哪个web框架?它们都应该有一个API来轻松访问HTTP头键值对。它是特定于web框架的吗?请尝试,特别是
HttpRequest.META
。这是一个字典,您可以从中访问客户端发送的HTTP头?这两种方法都有优缺点吗?这实际上取决于应用程序,即您尝试执行的操作。在服务器端这样做的好处是安全性;您通常可以对用户隐藏细节,因为JavaScript对最终用户非常透明。
if request.META['HTTP_USERNAME']:
    blah
else:
    blah