問題タブ [http-status-code-308]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rest - 永続的なリダイレクトは常に有効な URL にアクセスし続けます
バックエンド (同じ Web サービス) に 2 つの Rest API を作成しました。1 つは有効な URL 用で、もう 1 つはリダイレクトされた URL 用です。ユーザーが有効な URL にアクセスしたときに、ここで 308 リダイレクトを実行しています。
シナリオ
API を POST、PATCH、または DELETE としてマークすると、
Google chrome では、私のリクエストは常に古い URL (有効) に最初に送信され、次に別の URL にリダイレクトされます。
API の両方にブレークポイントを設定し、上記の 3 つの HTTP メソッドに対して、リクエストが常に最初にヒットすることを検証しました。また、ブラウザから Ajax 経由で 20 回以上 API をヒットしました。
API を GET としてマークすると、
初回のみ、リクエストは有効な URL に送られ、別の URL にリダイレクトされます。同じブラウザーを介した後続の呼び出しは、ブラウザーのキャッシュをクリアするまで、別のブラウザーを直接使用します。
これは、永続的なリダイレクト (301/308) の予想される動作だと思います。また、301 と 308 の違いについても認識しています。
主な混乱は、POST、PATCH、DELETE などの NON-GET API に対して意図したとおりに動作しない理由です。
Chrome ブラウザーのバージョン:バージョン 88.0.4324.192 (公式ビルド) (x86_64)