nakochi’s log

freeeのエンジニア。たまにモデル。

webを支える技術を読んだら疑問がたくさん湧いてきた。

この記事をシェアする

内容

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webは誕生から20年で爆発的な普及を果たし,17億人のユーザと2億台のサーバを抱える巨大システムへと成長しました。Webがここまで成功した秘密は,その設計思想,いわゆるアーキテクチャにあります。Webのアーキテクチャ,そしてHTTP,URI,HTMLといったWebを支える技術は,Webがどんなに巨大化しても対応できるように設計されていたのです。 私たちが作る個々のWebサービスも,Webのアーキテクチャにのっとることで成功へとつながります。Webのアーキテクチャに正しく適応したWebサービスは,情報が整理され,ユーザの使い勝手が向上し,ほかのサービスと連携しやすくなり,将来的な拡張性が確保されるからです。 本書のテーマは,Webサービスの実践的な設計です。まずHTTPやURI,HTMLなどの仕様を歴史や設計思想を織り交ぜて解説します。そしてWebサービスにおける設計課題,たとえば望ましいURI,HTTPメソッドの使い分け,クライアントとサーバの役割分担,設計プロセスなどについて,現時点のベストプラクティスを紹介します。

読んだ感想はともかくとしてまずは自分の疑問点からまとめていきたい。 多分忘れちゃうからね。

HTTP301(Moved Permanently)

今回のWebサービスでは 、「-」なしのリソースが正規リソースで 、「-」付きのリソースは代理リソースとしました 。今回のシステムの用途 (主にプログラム向けの Web API)を考えると 、プログラムから扱いやすいほうを正規のURIとしたほうがよい、と判断したためです 。「-」付きの代理リソースにアクセスした場合は 301 Moved Permanentlyで「-」なしのURIにリダイレクトします 。

URIでは「-」を使えるが、プログラムで扱いやすいというメリットがあるので

「-」なしのリソースが正規リソース

とした。

HTTP301(Moved Permanently)とは、「永久的な移転」を表すコードで、ページを移転したので旧アドレスには二度と戻ってこないということを表すコードのこと。

このコードを用いて新アドレスに移転することにより、旧アドレスでの今までの検索エンジンの評価を受け継ぎ、旧ページが検索結果に出ないようにはじくことができる。

疑問

ということはつまり、例えば自分のこのブログを独自ドメインにするとした場合に、この書き換えをはてなブログProはやってくれるのだろうか、自分自身でやらなきゃいけないのだろうか。他のサービスでこのようなことを実際にやった例はどの程度あるのか。

似たコードであるHTTP302(Temporary Redirect/ Found)との違いは運営側、クライアント側からのみであるところまで理解できた。

自分で実際にやってみるしかないのかな。

まだ他にもdigest認証がなぜ普及しなかったのかもいまいちわからない。パスワードを盗まれる危険性がない上に、サーバー樹にパスワードのハッシュ値を保管しておけば良いので、パスワードそのものをサーバに預けなくて済む、すなわちセキュリティリスクを下げることができる。

欠点としてはdigest認証はパスワードを暗号化するだけなのでメッセージ自体は平文でネットワーク上を流れること。

これを防ぐためにはhttps認証をする必要があるが、サーバからのnonceがないとクライアント側でダイジェストを計算することができないので401レスポンスを得る必要がある。それが煩雑な操作となるためdigest認証があまり普及していない理由になっている。

わかるふりしてわかっていない人間の顔
わかる(わからない)

自分で実装したことがないだろうからだと思うのでこれも自分でやって確かめないといけない。

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

この本をamazonが異常に勧めてくるんだけど良書なのかなあ。