http协议请求规则与dotNet的解析

请求方法URI协议/版本
  请求的第一行是“方法URL议/版本”:GET/sample.jsp HTTP/1.1
  以上代码中“GET”表明请求方法,“/sample.jsp”表示URI,“HTTP/1.1表明协议和协议的版本。
  根据HTTP标准,HTTP请求可使用多种请求方法。例如:HTTP1.1支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。在Internet应用中,最经常使用的方法是GET和POST。
      URL完整地指定了要访问的网络资源,一般只要给出相对于服务器的根目录的相对目录便可,所以老是以“/”开头,最后,协议版本声明了通讯过程当中使用HTTP的版本。
 
请求头(Request Header)
  请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头能够声明浏览器所用的语言,请求正文的长度等。
    Accept:image/gif.image/jpeg.*/*
    Accept-Language:zh-cn
    Connection:Keep-Alive
    Host:localhost
    User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)
    Accept-Encoding:gzip,deflate.
 
请求正文
  请求头和请求正文之间是一个空行,这个行很是重要,它表示请求头已经结束,接下来的是请求正文。请求正文中能够包含客户提交的查询字符串信息:username=jinqiao&password=1234
  在以上的例子的HTTP请求中,请求的正文只有一行内容。固然,在实际应用中,HTTP请求正文能够包含更多的内容。
  HTTP请求方法我这里只讨论GET方法与POST方法
  l         GET方法
  GET方法是默认的HTTP请求方法,咱们平常用GET方法来提交表单数据,然而用GET方法提交的表单数据只通过了简单的编码,同时它将做为URL的一部分向Web服务器发送,所以,若是使用GET方法来提交表单数据就存在着安全隐患上。例如
从上面的URL请求中,很容易就能够辩认出表单提交的内容。(?以后的内容)另外因为GET方法提交的数据是做为URL请求的一部分因此提交的数据量不能太大
 
  l         POST方法
  POST方法是GET方法的一个替代方法,它主要是向Web服务器提交表单数据,尤为是大批量的数据。POST方法克服了GET方法的一些缺点。经过POST方法提交表单数据时,数据不是做为URL请求的一部分而是做为标准数据传送给Web服务器,这就克服了GET方法中的信息没法保密和数据量过小的缺点。所以,出于安全的考虑以及对用户隐私的尊重,一般表单提交时采用POST方法。
  从编程的角度来说,若是用户经过GET方法提交数据,则数据存放在QUERY_STRING环境变量中,而POST方法提交的数据则能够从标准输入流中获取。
 
分析几个dotNet的经常使用 HttpReuest 对象:
  System.Web.HttpRequest 应该是最为全面的对象:
  QueryString:
  System.Collections.Specialized.NameValueCollection,包含由客户端发送的查询字符串变量的集合。例如,若是请求 URL 为 http://www.contoso.com/default.aspx?id=44,System.Web.HttpRequest.QueryString  的值为“id=44”;
 
  Form:
  HttpReuest能自我解析参数的来源,而将最终的参数放入Form中;
 
  InputStream:
  body中最为原始的表单字节流;
相关文章
相关标签/搜索