6

我們正在實施一個簡短的網址服務,其中重定向目標將每天更改。這些網址將被移動設備訪問,並且始終是GET請求。我試圖瞭解哪個是最適合這項工作的300型重定向。使用301/303/307重定向進行動態短網址

AFAIK大多數網址縮短服務使用301重定向(永久移動)。然而,根據規格,303(另見)和307(暫時移動)重定向似乎是他們爲我們的案例設計的...

  • 303/307也支持301?規範說,它們只在HTTP 1.1中實現 - 這種拼寫有什麼限制?
  • 選擇301與303/307有沒有任何實際的緩存或性能影響。
  • 對於GET請求,有什麼理由選擇303 vs 307?
  • 是否有任何理由使用302重定向?
  • 任何其他事情要考慮?

回答

5

303/307是否也支持301?規範說,它們只在HTTP 1.1中實現 - 這種拼寫有什麼限制?

是/無。

選擇301 vs 303/307有什麼實際的緩存或性能影響。

我不這麼認爲。

對於GET請求,有什麼理由選擇303 vs 307?

303的語義不同於307,如果請求的資源是「其他地方」,303不是正確的答案。

是否有任何理由使用302重定向?

據我所知,並不是真的。它具有與307相同的語義,但UA可能會將GET請求重寫爲POST請求。

其他要考慮的事項?

http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p2-semantics-18.html#status.3xx

+0

謝謝。所以似乎選擇301 vs 307的唯一實際含義是頁面排名如何轉移 - 您是否同意? – Yarin

+0

Yarin - 希望他們受到同樣的待遇。但我怎麼知道? –

1

的原因,網址縮短服務使用301(永久)是:

  • 它不持有目標網址的網頁排名。
  • 目標網址不會改變(一旦你告訴bit.ly/url1重定向到example.com/url1,你不能修改它重定向到example.com/url2)。

所有302,303和307都是臨時重定向,根本就不做這項工作。除了如果你想改變目標網址,你可以使用302。 example.com/contact重定向到example.com/temp/contact,但您打算稍後通過example.com/v2/contact替換後者。

+0

jcisio-你的回答不清楚。 「所有302,303和307都是臨時重定向,根本就不做這項工作」 - 不要做*什麼*工作?他們每個人都執行重定向,所以你指的是什麼*工作* – Yarin

+1

「Job」是您正在討論的URL縮短服務。這樣的服務不是簡單的URL重定向,有約束。哪些限制?他們在我的答案。 – jcisio