リダイレクトの仕組み? ETag? IPアドレスを取得する方法!


はじめに

今回はHTTPに関する用語について紹介します!
具体的には以下の内容を扱います。

  • リダイレクトの仕組み
  • ETagヘッッダ
  • IPアドレス関連のヘッダ (remote_addr, x-forwarded-for, x-real-ip)

youtubeでも解説しているので、確認してみてください!

【YouTube動画】 リダイレクトの仕組み、ETag, IPアドレス

リダイレクトの仕組み

動画では図解で説明しているので、ぜひ確認してみてください。
リダイレクトとは、あるウェブサイトから別のウェブサイトへページ遷移させることです。

リダイレクトでは以下のような通信が行われています。

クライアント -> サーバー1 -> クライアント -> サーバー2

上記の通信では、サーバー1からクライアントに返るとき、リダイレクト用のステータスとLocationヘッダを返します。
リダイレクト用のステータスには、301と302があります (下記の表参照)。Locationヘッダには、遷移先のURLが返ってきます。

ステータス 意味 特徴
301 Moved Permanently 恒久的なウェブサイトの移動 サーバー1を経由せず、サーバー2へ進むことがある
302 Found 別のサイトを見つけた 毎回サーバー1を経由して、サーバー2へ進む

ETag

ETagはHTTPレスポンスヘッダに付与されるランダムな値です。
クライアント側でキャッシュするときに利用します。

ここらあたりの説明は動画の方で詳しく説明しているので、ぜひ確認してみてください。

ETagヘッダについて

IPアドレス関連のヘッダ

IPアドレスに関するヘッダをいくつか紹介します。
動画だとこの部分になります。

remote_addr

これを付けると、サーバーが認識する1つ前のIPアドレスを返します

例えば、以下の順序で通信が行われているとします。
この場合、サーバーのremote_addrはリバースプロキシのIPアドレスになります。

クライアント -> ロードバランサー -> リバースプロキシ -> サーバー

x-forwarded-for

これは、クライアントからサーバーまでのIPアドレスを全て返します。

x-real-ip

これを付けると、クライアントのIPアドレスだけを返すようにできます。

まとめ

今回、HTTPに関連する用語の説明をしました。
もっと、こういうところを説明して欲しい!などの意見や感想がありましたら、コメントお願いします!

twitteryoutubeもやっているので、コメントをいただけると励みになります!