web-dev-qa-db-ja.com

「リフレッシュ」HTTPヘッダー

私はWebアプリケーション(Mantisバグトラッカー)を自動化しており、Refreshと呼ばれる興味深い応答ヘッダーを取得しています。

HTTP/1.x 200 OK
...
Refresh: 0;url=my_view_page.php

meta refresh と同じように動作しているようで、メタリフレッシュ手法は、これがHTTPのヘッダーに相当することを意味します。

問題は、 HTTP標準 またはそれがどのように解析されるべきか、ブラウザがそれを見つけたときに何をすべきかに関する他の決定的なドキュメントでRefreshヘッダーの言及を見つけることができないことです。

何が起きてる?

61
elifiner

私の知る限り、Refresh(Set-Cookieおよび場合によってはその他の独自の疑似ヘッダーと一緒に)は、インターネットのごく初期にNetscapeによって作成され、それ以来基本的に(完全ではありません)標準でした。ほぼすべてのブラウザーでサポートされているため、Refreshは非常に安全に使用できます。

私はそれが公式の標準の一部になったことはないと思います。なぜなら、彼らはすでにそのためのステータスコードを備えているからです。

56
Alistair

w3C HTML 4.01仕様から引用:

METAおよびHTTPヘッダー

Http-equiv属性は、name属性の代わりに使用でき、ドキュメントがHypertext Transfer Protocol(HTTP)を介して取得されるときに特別な意味を持ちます。 HTTPサーバーは、http-equiv属性で指定されたプロパティ名を使用して、HTTP応答で[RFC822]スタイルのヘッダーを作成できます。有効なHTTPヘッダーの詳細については、HTTP仕様([RFC2616])を参照してください。

これは、<meta http-equiv="refresh" url="..."/>タグを使用する場合、実際にはRefreshヘッダーが送信されているかのように動作するようブラウザに指示していることを意味します。

その歴史の概要は http://www.securiteam.com/securityreviews/6Z00320HFQ.html にあります。

18
Loki

Wikipedia:URL Redirection :によると

これは、Netscapeによる独自仕様/非標準の拡張機能です。ほとんどのWebブラウザーでサポートされています。

12
Greg

元々はNetscape拡張機能であり、W3Cで非推奨になったため標準化されていなかったと思います。

http://www.w3.org/TR/WCAG10-HTML-TECHS/#meta-element

5
Alnitak