WEBサイトがリダイレクトされたときの動きを考えてみた。

WEBサイトを引越しするときに、旧サイトにアクセスしてきたユーザーを新サイトにリダイレクトする設定をWEBサーバーに行います。Apacheの場合は、httpd.conf に以下のような設定をします。

そうするとリダイレクトが行われるのですが、見かけ上はサーバー側で転送してくれているように見えます。旧サイトがサイトAで、新サイトがサイトBの場合です。

このリダイレクトの動きをHTTP通信で考えてみました。実際のHTTPでのやりとりは見かけとは違って、以下のようになります。

この①〜④について、書いてみようと思います。

[広告]

■①旧サイトにアクセスする。

ブラウザがHTTPでサイトAにアクセスします。

GET /indexA.html HTTP/1.1

■②旧サイトからブラウザに結果が戻される。

サイトAからのブラウザへのレスポンスですが、ステータスコードは300番台のコードとなります。300番台はブラウザにリダイレクトを知らせるコードとなります。サイトの引っ越しの場合は恒久的な転送を意味するリダイレクト(ステータスコードは301)を返すようにサイトAのApacheに設定します。HTTPヘッダーには「location」が付与され、転送先URL(サイトBのURL)が設定されます。

HTTP/1.1 301 Moved Permanently
location:(サイトBのURL)

■③新サイトにアクセスする。

ブラウザは「location」で指定されたURLにアクセスを行います。サーバー側でリダイレクトしているように見えるのですが、実際はブラウザが転送先にリダイレクトしています。

GET /indexB.html HTTP/1.1
Referer:(サイトAのURL)

■④新サイトからブラウザに結果が戻される。

サイトBからHTMLで結果が返されてブラウザが画面表示します。

HTTP/1.1 200 OK

以上。

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。