2013-02-27 45 views
8

我在過去的3個小時裏遇到過有關Facebook登錄程序的問題。Facebook如何做這些重定向?

我訪問了http://m.facebook.com(安裝了UA Spoofer並設置爲Nokia Lumia User-Agent),並在監視標題的同時繼續登錄。我故意爲我擁有的帳戶輸入了錯誤的密碼。

當按下登錄時,它向此URL發送POST請求:https://m.facebook.com/login.php?refsrc=http%3A%2F%2Fwww.facebook.com%2F&refid=8狀態碼返回200響應代碼。

然後立即之後它GET請求這個網址:http://m.facebook.com/login.php?refsrc=http%3A%2F%2Fwww.facebook.com%2F&refid=8&e=1348022&email=frankthebutcher%40hotmail.com&signup_layout=layout%7Cbottom_clean%7C%7Cwider_form%7C%7Cprmnt_btn%7Cspecial%7C%7Cst%7Ccreate%7C%7Cheader_button%7C%7Chdbtn_color%7Cgreen%7C%7CFeb1&li=jFMuUdDWbmFhq8b-zAjEOHnE&_rdr

它是說密碼不正確的URL。

但是,重定向來自哪裏?第一個POST請求的響應頭中沒有任何內容,並且JavaScript未啓用。

在Chrome上試一試。想知道它是如何做的,所以我可以調整我正在開發的移動應用程序。

已解決:在我的移動應用程序中,我向正確的URL發送POST請求,但是我使用的URL字符串是編碼導致問題的。

+0

可能是一個'Location:'頭被第一個請求發回(在響應處理完成後,您的瀏覽器會運行該頭)。 – 2013-02-27 18:59:31

+0

我已經穿過帶有細齒梳的頭部,裏面沒有任何東西可以看到。 – 2013-02-27 19:00:17

+0

是的,很多移動應用都依賴全球定位系統,因此它可以調整要登錄的服務器。 – Greg 2013-02-27 19:02:18

回答

6

第一個POST請求正在發送一個Location標題,它告訴瀏覽器從此請求開始前進,並繼續處理下一個請求。第二個請求是瀏覽器,然後使用提供的新的Location並向前移動。

這裏就是您從第一個POST響應看到:

Screenshot of response eheader http://s21.postimage.org/y238ccsfb/Untitled.png

然而,從我可以看到它是一個302redirection: found)反應,而不是一個200確定。有些東西告訴我你正在判斷最終請求中的響應標題,而不是中間重定向/切換。

+0

出於興趣,HttpWebRequest(C#)的AllowAutoRedirect屬性是否跟隨位置標題? – 2013-02-27 19:05:40

+0

@JamesJeffery:因爲它是3xx地址,所以它會跟隨(除非該屬性設置爲false,或者跳數已超出) – 2013-02-27 19:09:58

+0

當我監視標題時,我甚至沒有看到位置標題。您是否使用較舊的UA,以便加載WAP頁面而不是常規的Facebook移動頁面? – 2013-02-27 19:10:11