3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

nginxの設定ファイルをいろいろいじっていて、わからない言葉がたくさん出てきました。その中でもプロジェクトの大先輩がこれは知っておいた方がいいと言っていた「ロケーションヘッダー」について詳しく調べてみることにしました。「サーバ」についてそもそもよくわかっていないので、調べていくうちに出てくるよくわからない言葉も深堀りしていこうと思います。

ロケーションヘッダー

まずはGPTに聞いてみる
image.png

リダイレクトする機能っていうのは知ってたけど、リダイレクトがそもそもあまりわかっていなかった。

リダイレクト応答とともに、ってあるけど、なにこれ?HTTP 301 Moved PermanentlyHTTP 302 Foundって何が違うの?

リダイレクトってURLにちょっとパスを付け足すだけと思ってたからサーバ内で遷移してると思ってたけど、そうじゃなくて一旦クライアントにレスポンスを返してるっぽい。で、クライアントに強制的に新しいURLにアクセスさせてるっぽい。

図にするとこんな感じ↓

image.png

と思っていたけど、実際はこう
image.png

HTTP/1.1 302 FoundHTTP/1.1 201 Created とかは「ステータスライン」というらしい。レスポンスはステータスライン、ヘッダー、ボディで成り立つってどっかで学んだことある気がするけど全く覚えてなかった。
image.png

で、サーバーがクライアントに対してもう一度リクエストすることを強制できるのか気になったから認識があっているか聞いてみた。
image.png

3xx系は自動的にもう一度リクエストするらしいけど、201は自動的にリクエストしないらしい。この辺は各サーバ、クライアントの設定次第って感じっぽい。

最後に!
URLとURIの違いが気になったから聞いてみる。(これも絶対調べたことあるけど覚えてない)
image.png

そうそう、URNとかいうやつもおった。URIという上位の概念があって、その中にURLとURNがいる。URLはスキーマ(アクセスの仕方?使用するプロトコル?)、ドメイン、リソースという情報が含まれる。URNがいまいちピンとこないのでURLとURNの違いをもうちょっと聞いてみる。

image.png

どうやらURNはある空間内で一意に定まる名前ってだけらしい。uuidみたいなこと?曰く、URLはIT関係なさそう。住所とかもURNって言ってよさそう。

まとめ

  • ロケーションヘッダーとは、HTTPレスポンスの一部
  • HTTPレスポンスはステータスライン、ヘッダー、ボディで構成される。ロケーションヘッダーはヘッダーの一部
  • クライアントはサーバからのレスポンスにロケーションヘッダーがあれば、自動的にクライアントに再びリクエストを送ることもある。(これがリダイレクト?)
  • URIの中にURLとURNがある。URNはIT関係なさそう。

GPTに聞いてるので間違いがあるかもしれません。怪しい記述を発見した方はソースとともに正しい情報をぜひお知らせください!

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?