N予備校:プログラミング入門 Webアプリコースを学習する33

序文

N予備校のプログラミング入門 Webアプリコース33日目。
30日連続更新達成。どこまで続くかな。

f:id:yjkym:20180213160639p:plain

GitHub

github.com

github.com

客観的成果

  • N予備校 プログラミング入門 Webアプリ
    • 第3章 サーバーサイドプログラミング入門
      • 18.Cookie を使った秘密の匿名掲示板
      • 19.UI、URI、モジュールの設計

(学習時間約3時間)

学習内容

  • 匿名掲示板について
  • Cookieについて
  • HTTP : Set-Cookieヘッダについて
  • Chromeデベロッパーツールからクッキーの内容を確認する方法
  • Node.js : incomingMessage.incomingHttpHeaders.cookieプロパティについて
  • JavaScript : ミリ秒形式の日付をDate型に変換する方法
  • HTTP : リダイレクトについて
  • Node.js : リダイレクト処理の実装方法
  • faviconについて
  • ルーティングについて
  • リクエストハンドラについて

個人的Tips(備忘録)

  • res.setHeader('Set-Cookie',
    'last_access=' + now + ';expires=Mon, 07 Jan 2036 00:00:00 GMT;');
     
    Cookieの設定ができる。expiresはCookieの有効期限。
    最後にセミコロンが必要なことに注意
  • ChromeデベロッパーツールのApplicationタブからCookiesという項目を開くことでCookieの値を確認できる
  • req.headers.cookie
    で設定したクッキーの内容を取得できる。
    last_access=hogeみたいな文字列になっているので、'last_access='でsplitしてやると[1]で値が取得できる
  • ミリ秒形式の日付はDate(ミリ秒形式の日付)で見やすいDate型に変換できる
  • リダイレクトはステータスコードに302、レスポンスヘッダの'Location'プロパティ?にURLを設定することで実現する
    res.writeHead(302, {
    });
  • リクエストを受けて、具体的な処理に振り分けることをルーティングという
  • その振り分けられた先の具体的な処理をリクエストハンドラという

感想

久しぶりに1日で2講すすめることができた。
19のほうはほぼ座学だったけど。(練習課題のおざなり感がすごい)

概論的な内容が多かったのでそれほどつまずくところもなかった気がする。

ハンドラについて。

最初この言葉聞いた時、さっぱり理解できなかったんですよ。(今も怪しいけど)
ハンドラ(handler)って直訳すると「操作する人」って意味じゃないですか。自動車のハンドルのイメージもあるし。
そのままイメージすると呼び出し元だと思うんですけど、実際は「呼び出される側」の関数なんですよね。

そのイメージの齟齬で理解できなかったんだなーって今日改めて思いました。
なんでこんな名前なんだろう?調べてもよくわかんなかった。

カロリーメイトください。