- アクティビティ (今までの走行 (歩行) 距離)
- ジョギング
- レアジョブ
- 夕飯
- POST を維持したまま HTTP リダイレクトをかけたい
- HTTP リダイレクトのレスポンスに Authorization ヘッダが含まれない件
アクティビティ (今までの走行 (歩行) 距離)
Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている。色が濃くなれば濃くなる程強度が高い (歩行、走行距離が長い) ということで。実装の詳細はこちら。
ジョギング
補強やランは無し。ふと、シュークローゼットに置いてあった薄底シューズを履いて、家の周りを少しだけ走ってみた。不思議なことに、なかなか取れない嫌な痛みを感じることがなく走ることが出来た (ほんとに駆け足レベルだったけど
レアジョブ
今朝は 8 時半からだった。明日は 8 時からの予定。
夕飯
令和3年8月26日#妄想居酒屋#お品書き#今夜の晩御飯#おうちごはん#書#書道#calligraphy#japanesecalligraphy#筆文字#坦々丼#イカ#ケンちゃん豆腐 #雑草窯 pic.twitter.com/UUGbSKz9aT
— ひろみの書道でお品書き🍶 (@HOshinagaki) 2021年8月26日
#ご査収ください.jp #美味しゅうございました #おごちそうさまでした https://t.co/rMPVuRNSxu
— Yohei Kawahara(かっぱ) (@inokara) 2021年8月26日
POST を維持したまま HTTP リダイレクトをかけたい
ギョームで、POST を維持したままリダイレクトをかけたいニーズが発生したので調査した。
ステータスコード 307 か 308 を返せば良いことが解った。
Nginx でやろうとすると、一番簡単な設定は以下の通り。
server { location / { return 307 https://example.com/foo$args; } }
HTTP リダイレクトのレスポンスに Authorization ヘッダが含まれない件
上記の件と関連しているんだけど、POST のリクエストをリダイレクトさせる際、Authorization ヘッダを付けていたはずなんだけど、リダイレクト先には、Authorization ヘッダが飛んでいなかったので悩んでググってみたら、以下のような情報を見つけた。
Basically, the redirect response does not have any "Authorization" headers, the "Authorization" header is only part of the request. So this is normal behavior for any HTTP client to resend all the headers to redirect location which they have sent to the original URL. There is nothing that you can do here. But most of the HTTP clients will resend the "Authorization" header only if the redirect location is on the same domain/origin. In your case, you can try to create a separate domain for S3 URL and redirect to it and hope that clients HTTP client will drop "Authorization" header when it will detect that the domain is changed (that's a security issue to resend an "Authorization" header when following redirect to a new domain/origin).
ざっくりまとめると...
- リダイレクトのレスポンスには、基本的に
Authorization
ヘッダ は含まれない - これは、セキュリティ的に問題がある為、そのような挙動になっている (なるほど
- ただし、転送元と転送先が同じドメインやオリジンであれば、クライアントレベル転送処理が施される
うーむ。この情報って、どこかにちゃんと仕様として纏まっているんだろうか?
とりあえず、勉強になりました。