これは私のWebアプリケーションのための流れです:HTTP_REFERERは元のウェブサイトを指していますか? (フラスコ)
facebook.com --> mysite.com/route --> mysite.com/foo?uuid=X
これは、コードはmysite.com/routeのための次のようになります。/foo
については
@app.route('/route')
def route():
return redirect(url_for('foo', uuid=some_uuid))
、私は以下のロギング機能を持っています:私は@log_request持っ
def log_request(route):
@functools.wraps(route)
def wrapper(*args, **kwargs):
keys = ['HTTP_ACCEPT', 'HTTP_ACCEPT_ENCODING',
'HTTP_X_FORWARDED_FOR', 'HTTP_REFERER',
'HTTP_USER_AGENT', 'PATH_INFO',
'QUERY_STRING', 'REMOTE_ADDR']
dumpable = { k:request.environ.get(k, None) for k in keys }
print(json.dumps(dumpable))
return route(*args, **kwargs)
return wrapper
唯一の場所はfoo
ためです。
@app.route('/foo')
@log_request
def foo():
...
私はHerokuの中で私のログをチェックしていたとき、私は次のログが記録されている参照してください。
{"QUERY_STRING": "uuid=3de61bee07794323aaa5899bba2ef9e3",
"HTTP_ACCEPT_ENCODING": "gzip, deflate", "PATH_INFO": "/foo",
"HTTP_X_FORWARDED_FOR": "__REDACTED__", "REMOTE_ADDR": "__REDACTED__",
"HTTP_USER_AGENT": "__REDACTED__", "HTTP_ACCEPT":
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"HTTP_REFERER": "http://m.facebook.com"}
私の質問は、なぜHTTP_REFERER http://m.facebook.com
がありますか? mysite.com/route
ではありませんか?
はい、 'redirect()'は*ブラウザ*に新しいリクエストを行うように要求するためです。 –