質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

574閲覧

header関数のLocationの指定について

aae_11

総合スコア178

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/07/27 10:39

HTTPヘッダについて、ご質問があります。
HTTPレスポンスヘッダは以下のような構成となっているかと思います。

cache-control: no-cache, must-revalidate, max-age=0

connection: Keep-Alive
content-encoding: gzip
content-type: text/html; charset=UTF-8
date: Thu, 27 Dec 2018 03:59:48 GMT
expires: Wed, 11 Jan 1984 05:00:00 GMT
keep-alive: timeout=5, max=100
referrer-policy: strict-origin-when-cross-origin
server: Apache
transfer-encoding: chunked
vary: Accept-Encoding
x-frame-options: SAMEORIGIN
200 OK

phpのheader関数は上記のようなヘッダ情報をheader('Content-Type: text/html; charset=utf-8');echo $json;このように出力するなどの際に使われると思うのですが、リダイレクトさせる際も「header("Location: http://www.example.com/");」のようにheader関数を使用します。ヘッダ情報を出力させる訳ではないにも関わらず、何故他サイトへ転送させる際もheader関数が使われるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

ヘッダ情報を出力させる訳ではないにも関わらず

いいえ。ヘッダを出力しています。
ブラウザの開発ツール→ネットワークで確認してみると良いです。
リダイレクトがかかるため、確認の際は「永続ログ」として確認することが必要です。

投稿2019/07/27 10:49

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aae_11

2019/07/28 00:05 編集

ご回答ありがとうございます。 デベロッパーツールのネットワークを確認してみたのですが、複数のファイルが表示されており、そのファイルをクリックすると、「General」「ResponseHeaders」「Request Headers」が確認できました。 header(Location:http://example.com)を記入したファイルも表示されていたのですが、リダイレクト処理を記載したファイルも確認できるようになっているといった仕組みになっている感じなのですね
guest

0

header("Location: http://www.example.com/");には、2つの効果があります。
Location: http://www.example.com/というレスポンスヘッダを付加する
・ステータスコードを200でなく302(一時的なリダイレクト)に変更する

ブラウザは、ステータスコード302(または301)とLocationヘッダの両方をみてリクエストしなおし(リダイレクト)します。

投稿2019/07/27 12:27

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aae_11

2019/07/27 23:50

ご回答ありがとうございます。 ステータスコードを調べた際に、なんとなく掴めたような気がします。 調べていた過程で思ったのですが、ステータスコード「301」と「302」はあまり違いはないのですかね...?以下の記事を見て、そんな感じに思えました。 https://www.sakurasaku-labo.jp/blogs/301_redirect 一般的にはSEO効果的に使い分ける必要があるといったように感じました。
otn

2019/07/28 02:06

ブラウザの動きとしては301も302も同じですね。 検索エンジンとかインターネットアーカイブのような物のクローラーは区別してるかも。
aae_11

2019/07/28 02:38

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問