SORU
18 ŞUBAT 2010, PERŞEMBE


URL Parçası ve 302 yönlendirmeleri

URL Bölümü (# sonraki parça) sunucusuna gönderilmez bilinir. Nasıl bir sunucu yeniden yönlendirme (302 Location: başlık HTTP durum) dahil olduğunda iş parçaları olsa da merak ediyorum.

Benim soru iki yönlüdür:

Bir:Eğer özgün bir URL parçası (/original.php#foo) ve yönlendirme /new.php, yapılan orijinal URL parçası parçası yok sadece kaybolmak mı? Ya da bazen yeni URL için başvurdu mu? Yeni URL şimdiye kadar /new.php#foo Bu durumda olacak?

B:Eğer sunucu bir parça ile yeni bir URL (/new.php#foo) yönlendirir eğer orijinal konumu ne olursa olsun, parçası olsun ""? onur Ya sunucu çok parça ile müdahale hiçbir iş sahibi yapıyor ve tarayıcının bu nedenle sadece 8 ** giderek göz ardı eder?

CEVAP
21 ŞUBAT 2010, Pazar


2014-Jun-27 Güncelleştirin:

* *14, ÖNERİLEN bir STANDART olarak yayımlanmıştır. Changelog:

Konum üstbilgi alanı sözdizimi tüm izin vermek için değiştirildi URİ başvurular, göreli başvurular ve parçaları ile birlikte dahil bazı açıklamalar ile parçaları kullanın olmaz ne zaman uygun. (Bölüm 7.1.2)

Section 7.1.2. Location önemli noktalar:

Eğer Konum değeri 3xx (Yeniden Yönlendirme) yanıt sağlanan yaparsa parçası, bir bileşeni değil, bir kullanıcı Aracısı işlem GEREKİR eğer değeri URI parçası bileşeni miras olarak yeniden yönlendirme referans isteği oluşturmak için kullanılan hedef (yani, yeniden yönlendirme eğer varsa orijinal referans parça devralır).

Örneğin, bir İstek URI başvurusu için oluşturulan AL "http://www.example.org/~tim" diye bir 303 (Diğer)sonuç yanıt Başlığı alanını içeren:

Location: /People.html#tim

kullanıcı Aracısı yönlendirme gösteriyor "http://www.example.org/People.html#tim"

Aynı şekilde, bir URI başvurusu için oluşturulan istek OLSUN "http://www.example.org/index.html#larry" 301 neden olabilir (Taşındı Kalıcı olarak) yanıt Başlığı alanını içeren:

Location: http://www.example.net/index.html

kullanıcı Aracısı yönlendirme gösteriyor "http://www.example.net/index.html#larry", orijinal koruyarak parça tanımlayıcısı.

Bu açıkça sorularınıza cevap vermeli.

SON güncelleme

bu current HTTP specification ile (belirtilmemiş) açık bir konudur. IETF httpbis working group: 2 konuları ele alır

Location başlıktaki parçaları sağlar #6. Bu diyor #43:

Ben sadece farklı tarayıcılar ile test edilmiştir.

  • Firefox ve Safari konum başlıktaki bölümü kullanın.
  • Opera şimdiki zaman kaynak URI parçası kullanır, aksi takdirde yeniden parçası konum
  • IE (8) konumu URI parçası yok sayıyor, şimdiki zaman kaynağından fragment URI kullanır böylece

Öneri:

"Not: özgün URI parça tanımlayıcıları ve yeniden birlikte olmak gerektiğinde davranışı tanımlı değil; geçerli Kullanıcı arayüzleri gerçekten parçası önceliklidir ne olduğunu zaten biliyorsunuz."

[...]

Bu IE8 gibi görünüyoryokLocation parça idenfitier (gördüğüm davranış localhost sınırlı olabilir) kullanın.

Böylece Safari/IE/için tutarlı bir davranış bu Konumu başlığından parçası alışır/Chrome (sadece test), özgün URI ne olursa olsun Firefox var.

Ben bu nedenle belge teklif değiştirinbubeklenen davranış olarak.

bu sorunuza en tarayıcısı ve bu sorun eninde sonunda standart olacak çünkü) uyumlu geleceğe yönelik cevap yol açar:

Bir:orijinal lerini parçaları atıldı.

B:Location başlığından parçaları onur duyuyoruz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • DavidParody

    DavidParody

    17 EKİM 2009
  • picster

    picster

    20 NİSAN 2006