req からリクエストの情報を取得するやつの続きです。
req.protocol
説明
プロトコルについては、Wiki載せます。
Webブラウザのプロトコルなので、
HTTP か HTTPS になるかと思います。
使い道としては、
SSL通信を強制するために、HTTP を認識したら、HTTPS にリダイレクトするとか。
あんまり思いつきませんが、情報として取ることはあるかもですね。
使い方
console.log(req.protocol);
HTTP の場合
root@RascalRoom:~# curl "http://{ ~~~ }
http
HTTPS の場合
root@RascalRoom:~# curl "https://{ ~~~ }
https
req.headers
説明
ヘッダー情報を取得する
解説はほとんどリンク任せ。。。
ブラウザの情報とか取れるので、
それごとの処理とか書くときに使えますね。
IE11でもまだ、class は使えんかったはず。。。
使い方
console.log(req.headers)
[object Object]
はいはい。コントローラでオブジェクトだすと、こうなるんですよね。。。
そういうときは、
res.json(req.headers);
ブラウザで確認 推奨:Chrome
{ "host": "192.168.0.5:2222", "connection": "keep-alive", "cache-control": "max-age=0", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", "accept-encoding": "gzip, deflate", "accept-language": "ja,en-US;q=0.9,en;q=0.8", "cookie": "_ga=GA1.1.782015353.1561655158; portainer.UI_STATE=%7B%22dismissedInfoPanels%22%3A%7B%7D%2C%22dismissedInfoHash%22%3A%225HdpRwMALzr9SPBK5OAxkQ%3D%3D%22%7D; sails.sid=s%3AdIbjwUU3fihxXHvfqvopPjYZZh4-qRyQ.UyOtSEvu6%2BiraONR%2F4XCZrCqOsFj3JtVrzvJ7YYohp4", "if-none-match": "W/\"33d-59mFP8YMFJgvJ8PoAsDoKQTp350\"" }
(IEだとjsonファイルのダウンロードになる)
req.secure
説明
HTTPS通信をしているかの真偽値を取得する
HTTPS(SSL)通信をしていれば true を返してくれます。
websocket の SSL も対象ですね。(wss)
使い方
console.log(req.secure)
HTTP の場合
root@RascalRoom:~# curl "http://{ ~~~ }
false
HTTPS の場合
root@RascalRoom:~# curl "https://{ ~~~ }
true
まとめ
req については、こんなとこかな。
次回から、Response(res)について紹介します。