ITエンジニアの雑談@rascalroom

インフラからフロントまで。若輩エンジニアの勉強まとめ。

アプリ製作 #Sails.js &コントローラー %req ~その他のリクエストを取得する Part2~

 

req からリクエストの情報を取得するやつの続きです。

 

 

req.protocol

説明

プロトコルについては、Wiki載せます。

ja.wikipedia.org

 

Webブラウザのプロトコルなので、

HTTP か HTTPS になるかと思います。

 

使い道としては、

SSL通信を強制するために、HTTP を認識したら、HTTPS にリダイレクトするとか。

 

あんまり思いつきませんが、情報として取ることはあるかもですね。

 

 

使い方

console.log(req.protocol);

 

HTTP の場合

root@RascalRoom:~# curl "http://{ ~~~ }
http

 

HTTPS の場合

root@RascalRoom:~# curl "https://{ ~~~ }
https

 

 

req.headers

説明

ヘッダー情報を取得する

 

wepicks.net

 

解説はほとんどリンク任せ。。。

 

ブラウザの情報とか取れるので、

それごとの処理とか書くときに使えますね。

 

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)について紹介します。