与GET / POST请求有些混淆

时间:2010-08-23 18:02:26

标签: asp.net html browser

a)根据web application确定特定请求是GET请求的信息?只需检查请求的网址是否包含query string parameters

b)首次请求页面http://some_domain/A.aspx时(通过点击链接元素<a..>或手动将URL输入地址栏),我认为它不是{{1}或POST请求?

c)如果用户手动进入GET网址http://some_domain/A.aspx?ID=100Address toolbar会将请求视为web application请求,即使GET不是query string valuesFORM elements(通过浏览器)提取?

d)假设我们请求http://some_domain/A.aspx?ID=100,请回发浏览器请求网址http://some_domain/A.aspx?ID=100http://some_domain/A.aspx

e)假设页面http://some_domain/A.aspx?ID=100已将FORM’s method attribute设置为POST,但其网址还包含一些query string variables,则会回发一个被视为GET的请求或者POST

谢谢

3 个答案:

答案 0 :(得分:4)

  • a)如果浏览器在HTTP请求中发送了GET动词,则为GET。同样适用于POST。
  • b)您描述的两种情况都会导致GET请求。
  • c)GET和POST独立于查询字符串,即可以包含或不包含查询字符串变量。
  • d)因为原始请求包含查询字符串变量,所以回发将再次包含这些变量。带有变量的URL是一个“不同”的URL,而不是没有的URL。
  • e)如果表单的方法是POST,那么它是一个POST,无论URL包含什么。查询字符串变量与GET或POST无关。

答案 1 :(得分:2)

从请求中提取GET或POST信息 - 应用程序不会决定它的请求类型,它会从请求本身读取它。例如,请求的第一行可能如下所示:

GET http://www.mysite.com 

浏览器将此信息发送给应用。链接始终是GET请求。您的应用可以通过设置表单的方法属性o GEt或POST来决定浏览器如何响应表单提交。

我建议您下载Fiddler,以便您可以自己查看原始请求数据。

答案 2 :(得分:1)

a)它通过浏览器使用的HTTP动词知道

b)这是一个GET

c)它仍然是一个GET

d)如果<FORM>标签没有ACTION属性,则它将包含查询字符串。如果它有一个明确的ACTION属性,它将是该URL的任何内容。

e)这是一个POST。

相关问题