2010-08-23 57 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