この記事は何?
以下を読んだのでメモ
メモ
Webの構成要素
まず、もちろんだけどインターネット=Webではない。最初はインターネットができて世界がつながるようになったけど、メールとかしかなくて、しかもメールでも初期は送信側と受信側が同時に電源がついてないと届かないみたいな時代があった。 そこにWebが登場した。WebはHTML, HTTP, URIで構成される。HTMLがフォーマット、HTTPがプロトコル、URIがドキュメントを一意に特定するもの。これらが出現したことで一気にWebがインターネットにおいて主流になり、栄えることとなった。
また、HTTPはステートレスなプロトコルとして設計されている。そのため、サーバー側の作りがシンプル(関数的)になる。ステートフルだとスケールしにくい(サーバー台数が増えたときの同期のオーバーヘッド)という問題もある。しかし、ステートレスな設計にも問題はあり、
- 認証などの決まった処理を繰り返すコストがかかる
- 送信データが増える
といったものが挙げられる。 認証にSessionを使うのはHTTPの考え方からすると反しているように思えるし、そういう意味ではJWTはHTTP的なのかなとも思う。
URI設計
URI設計はER図、クラス図、情報アーキテクチャ(すでに存在するWebサイト等)を参考にすることができる。また、COOLなURIは変わらない。言語に依存したURI等は避けるべき。
ER図
ER図を参考にする場合、例えばDBの1レコードを1リソースとして扱うことが考えられる
クラス図
1:n(has a)の関係が見えたらそれをURIの階層構造として表示したり、継承(is-a)の関係ならURIでは同階層で表現できないかを検討できる。
情報アーキテクチャ
もうすでにあるテーマをWebサイトとして表現しているようなものが存在する場合、そのサイトマップ、構成をURIの参考にできる。例えば、Webサイトのリンク関係を図にして関係性を見る。
その他
改めて、リクエスト/レスポンスヘッダをいろいろ見ると面白い。 例えば、
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7