Amazonのパラメータによる動作の違いと、最短のURL

お久しぶりです。
(本番でも使える)デバッグ用のデータを作っていたら1週間かかりました。


半角全角とか、カタカナとアルファベットとか表記が統一されていないってのは本当に悪夢ですね。
なにせ、メーカー自身が統一してなかったりして。色々なパターンがありすぎて、正規表現等で置換をかけようにも逐一みていかないといけないでやんの。ええかげんにせい!


……ようやく一段落したので、次のステップです。


URLのパス名に日本語を使ってみるの続きで、URLのパス名に日本語を使う場合に問題になることという記事を書いています。


日本語をURLに含むECサイト(死語?)の代表格は、Amazonなので、Amazonの動作を検討するのがてっとりばやい。そこで今回は、AmazonのURLの動作をちょっとみてみます。


お手本は、

魔法遣いに大切なこと―Someday’s dreamers (1st) (ドラゴンコミックス)
山田 典枝 よしづき くみち
角川書店
おすすめ度の平均: 3.0
5 素晴らしいが、惜しい…
1 絵はかわいいが 内容がない。(;'Д`)ハァハァ 
4 少しシナリオが急かも
5 希望の花
3 絵は確かに綺麗
です。


これだとURLは、

http://www.amazon.co.jp/exec/obidos/ASIN/4049262088/mitainamono-22/ref=nosim/

になっています。


Amazonの最短のURL

最も短いAmazonの商品詳細画面へのURLを見てましょう。
dpが来たあとにASIN(書籍の場合はISBN-10)がきます。

http://www.amazon.co.jp/dp/4049262088/mitainamono-22


これだけ。

なお「mitainamono-22」は、私のアフリエイトコードです。
URLにこだわる人は、アフリエイトコードをその後にいれることを前提にしていると思うので、例としていれてあります。


日本語を使った場合のAmazonの最短のURL

一方、日本語を使った場合の最短の表記は以下のようになります。

http://www.amazon.co.jp/魔法遣いに大切なこと―Someday’s-dreamers-1st-ドラゴンコミックス-山田/dp/4049262088/mitainamono-22

※html上に書く場合にはURLエンコードする必要があります。


ここで、

http://www.amazon.co.jp/大切魔法遣ことな―Someday’s-dreamers-1st-ドラゴンコミックス-山田/dp/4049262088/mitainamono-22

みたいに日本語の部分を適当に日本語部分を適当にいじっても、ちゃんと表示されます。


ここでは、タイトル・出版レーベル・著者名の順で並んでますが、閲覧者が見やすいようにいれてあるだけで、システム上の意味はないということですね。


入力したURLが当サイトのページと一致しません

ちなみに以下のようにする(dp以下を抜く)と、「入力したURLが当サイトのページと一致しません」と表示されてしまいます。検索すらしてくれません。

http://www.amazon.co.jp/魔法遣いに大切なこと―Someday’s-dreamers-1st-ドラゴンコミックス-山田/

結論

Amazonのサーバは、「dp」の手前までの表記は無視して、そのあとのASINで商品を特定しているということです。
URLエンコードされた日本語部分をデコードして、得られた結果(日本語!)でデータベースに検索をかける……なんて重くてやってられないので、このやり方を見習うのがよいのでしょうね。


ところで「dp」ってなんでしょうね。
data processingでしょうか。