Skip to main content

Real World HTTP 第2版の9章を読んだ

Real World HTTP 第2版の8章を読んだ
の続編

Real World HTTP 第2版 ―歴史とコードに学ぶインターネットとウェブ技術
を買ったマスタカです

9章 Go言語によるHTTP/2、HTML 5のプロトコルの実装
を読んだので新しく知ったことをまとめる

この章はGolangでコードを実際に書く話


・Golangのinit関数
mainより前に呼ばれる
https://qiita.com/tenntenn/items/7c70e3451ac783999b4f

・Golangの変数
varなしで挿入
:=

文字列はでダブルクォートを入れた文章は
シングルクォートじゃなくて「`」をつかう

型アサーション (Type Assertion) による型変換
pusher, ok := w.(http.Pusher)
https://maku77.github.io/hugo/go/cast.html

big.NewIntはBigIntegerのこと
https://qiita.com/Ranks/items/5b61174d8ffe2e91ba03

・Golang#ProbablyPrime
素数判定
https://qiita.com/hitochan777/items/5deaa2bd6b385c6dd43a

・Golang実行オプション
HTTP2を無効にする
GODEBUG=http2server=0 go run server.go

 

・サーバーPush
pushすると処理速度が並列になるのでだいぶ速くなる
Developer Consoleでpushって出るのすごいね

 

・Server Sent Events
selectで送受信操作を処理できる
チャンネルの操作
https://free-engineer.life/golang-select/

 

・Mithril.js
仮想domのライブラリのこと
https://qiita.com/eihigh/items/cb98f8bce563a0bf006b

oninitは最初に呼ばれる
https://mithril-ja.js.org/lifecycle-methods.html

EventSourceでtext/event-streamを受け取る
https://developer.mozilla.org/ja/docs/Web/API/EventSource

m.redraw
アプリケーションのデータレイヤーの変更後にDOMを更新します。
https://mithril-ja.js.org/redraw.html

m関数
https://mithril-ja.js.org/hyperscript.html

m.mount
https://mithril-ja.js.org/mount.html

・Mithril.jsのコードを動かす
本のサンプルコードだと動かないので直す

//this.primes = stream([]);
this.primes = window.m.stream([]);

 

こうしてサーバーpushとServer Sent Eventsを試してみましたとさ
Mithrilのライブラリも初めて知ったのでかなり勉強になりました

まだまだ続くよ

関連記事:

Pocket