开发者

Some confusion with GET/POST requests

a) Based on what information does web application decide whether a particular request is a GET request? Simply by checking whether requested url contains any query string parameters?

b) When pag开发者_开发技巧e http://some_domain/A.aspx is first requested (either by clicking a link element<a..> or by manually entering URL into address bar), I assume it is neither a POST or a GET request?

c) If users manually enters into Address toolbar url http://some_domain/A.aspx?ID=100, will web application considered a request as a GET request, even though query string values weren’t extracted ( by browser) from FORM elements?

d) Assuming we request http://some_domain/A.aspx?ID=100, will on postback browser request url http://some_domain/A.aspx?ID=100 or just http://some_domain/A.aspx?

e) Assuming page http://some_domain/A.aspx?ID=100 has FORM’s method attribute set to POST, but its url also contains some query string variables, then is on postback a request considered a GET or a POST?

Thank you


  • a) It's a GET if the browser sent the GET verb in the HTTP request. Likewise for POST.
  • b) Both of the situations you describe will result in a GET request.
  • c) GET and POST are independent of query string, i.e. either can include or not include query string variables.
  • d) Because the original request included the querystring variables, the postback will again include those variables. The URL with the variables is a "different" URL than the one without.
  • e) If the form's method is POST, then it's a POST, regardless of what the URL contains. The query string variables are not related in any way to whether it's a GET or a POST.


The GET or POST info is extracted from the request - the application does not decide what kind of request it it, it reads it from the request itself. For example, the first line of a request may look like this:

GET http://www.mysite.com 

The browser send this info to the app. Links are always GET requests. Your app can decide how a browser will respond to form submissions by setting the form's method attribute o GEt or POST.

I suggest you download Fiddler so you can see the raw request data for yourself.


a) it knows from the HTTP verb used by the browser

b) it's a GET

c) it's still a GET

d) if the <FORM> tag has no ACTION attribute, it will include the query string. If it has an explicit ACTION attribute, it will be whatever that URL is.

e) it's a POST.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜