August 04, 2020
862 words
5 min
Go の文法をなんとなく理解して、API サーバを開発したときの話で、ワシャワシャとコードを書いて、さぁサーバにデプロイだぜってときに Go の素人が陥った罠というか、無知ゆえのドハマリの記録です。
あと41歳ではないです。
で、本題なんですが、超シンプルにこんなディレクトリ構成で開発してたとします。
.
├── Makefile
├── README.md
├── etc
│ └── conf.yaml
├── go.mod
├── go.sum
└── main.go
基本的には main.go…
Continue Reading →
April 18, 2020
867 words
5 min
Hypertext Transfer Protocol はステートレス・プロトコルの代名詞みたいな物と思ってるんですが、REST ももちろんステートレス・プロトコルを利用しています。が、今回のテーマはプロトコルの話ではないのです。
Fielding の論文でステートレスなアーキテクチャスタイルとは
The client-stateless-server style derives from client-server with the additional constraint that no sess…
Continue Reading →
April 17, 2020
974 words
5 min
キャッシュはクライアントとサーバの通信回数の削減や通信量の節約のために使用する。
例えば今見ているこのページをリロードしたときのステータスを開発ツールで確認してもらうと 304 Not Modified が表示されると思うので見てもらいたい。
これは表示に使われたデータがリロード時に取得されたものではなく、ウェブブウラウザに保存されたキャッシュデータが再利用されたことを表していて、通信量の節約が行われていることが確認できる。
まずは、サーバからクライアントにリソースをキャッシュさせる方法と、キャッシュさせ…
Continue Reading →
April 04, 2020
483 words
3 min
Roy Fielding の REST (REpresentational State Transfer) を理解しようとしている。全然わからない。
経緯としては、こういうことのよう。
アプリケーションサーバが HTTP のセマンティクスを使用しないアーキテクチャを採用していた。
アプリケーションサーバは一枚岩でスケールしない。
REST はそのやり方を止めた。
REST を使うことにより、容易にサーバを追加できるのでスケールしやすくなった。
つまり REST は HTTP をちゃんと使うためのアーキ…
Continue Reading →
February 29, 2020
1601 words
9 min
このエントリはネットワークを効率的に利用する Web アプリケーションを開発するための前提知識をまとめようという試みです。
ネットワークの視点から HTTP の歴史をバージョン順に見ていくと、通信回数とデータ量を減らすことと、通信の稼働率を上げることに力が注がれてきたことがわかります。なので TCP コネクションに絞って約 10 分でわかった気になれるようにします。
バージョンごとの TCP コネクション
HTTP はトランスポートプロトコルとして TCP を使っています。TCP は HTTP メッセージ…
Continue Reading →