2010-08-23 90 views
1

a)根據web application決定某個特定請求是否爲GET請求的信息?只需檢查請求的url是否包含任何query string parametersGET/POST請求的某些混淆

b)如果http://some_domain/A.aspx頁面第一次請求(或者通過點擊一個鏈接元件<a..>或通過手動輸入到URL地址欄),我假設它既不是POSTGET請求?

c)若用戶手動進入Address toolbar URL http://some_domain/A.aspx?ID=100,將web application視爲GET請求的請求時,即使query string values未從FORM elements萃取(由瀏覽器)?

d)假設我們要求http://some_domain/A.aspx?ID=100,請回復瀏覽器請求的網址http://some_domain/A.aspx?ID=100或者只是http://some_domain/A.aspx

E)假設頁http://some_domain/A.aspx?ID=100FORM’s method attribute設置爲POST,但它的URL也包含一些query string variables,然後是上回發認爲是GETPOST的請求?

謝謝

回答

4
  • 一)這是一個GET如果瀏覽器在HTTP請求發送GET動詞。同樣適用於POST。
  • b)您描述的兩種情況都會導致GET請求。
  • c)GET和POST與查詢字符串無關,即可以包含或不包含查詢字符串變量。
  • d)由於原始請求包含查詢字符串變量,回發將再次包含這些變量。帶有變量的URL是一個「不同」的URL,而不是沒有的URL。
  • e)如果表單的方法是POST,那麼它是一個POST,無論URL包含什麼。查詢字符串變量與GET或POST無關。
+1

回覆:d)這是不完全正確的。這取決於FORM標籤是否具有ACTION元素。 – x0n 2010-08-23 18:07:15

+1

@ x0n:是的,你在技術上是正確的,你可以用動作元素「覆蓋」URL。然而,這不是默認情況,用戶需要專門設置。 – Mark 2010-08-23 18:10:45

+0

「......你可以用操作元素」覆蓋「URL,但這不是默認情況,用戶必須專門設置它。」 因此,如果我們沒有明確指定FORM的動作屬性,那麼默認情況下,該屬性設置爲原始請求的url? – flockofcode 2010-08-23 18:28:20

1

一)從瀏覽器

B中所使用的HTTP動詞知道)這是一個GET

三)它仍然是一個GET

d)如果<FORM>標籤沒有ACTION屬性,它將包含查詢字符串。如果它具有顯式的ACTION屬性,則它將是URL的內容。 e)它是一個POST。

+0

「d)如果

標籤沒有ACTION屬性,它將包含查詢字符串,如果它具有顯式的ACTION屬性,它將是該URL的任何內容。換句話說,如果我們沒有明確指定FORM的動作屬性,那麼默認情況下,這個屬性被設置爲原始請求的URL地址 – flockofcode 2010-08-23 18:35:06

+1

@flockofcode:correct。 – x0n 2010-08-23 19:02:36

2

從請求中提取GET或POST信息 - 應用程序不決定它的請求類型,它從請求本身讀取它。例如,請求的第一行可能如下所示:

GET http://www.mysite.com 

瀏覽器將此信息發送給應用程序。鏈接始終是GET請求。您的應用可以通過設置表單的方法屬性o GEt或POST來決定瀏覽器如何響應表單提交。

我建議你下載Fiddler,這樣你就可以看到自己的原始請求數據。

+0

+1表示提琴手 – NotMe 2010-08-23 18:13:07