
1. HTTP请求格式:
<请求行>
<空白行>
[
在HTTP请求中,第一行必须是请求行,该行指定请求的类型,要访问的资源以及所使用的HTTP版本. 其后是标头部分,该部分描述了服务器要使用的其他信息. 标头后面有一个空白行,您可以在此[称为正文]之后添加其他任何数据.
2. GET和POST之间的区别
HTTP定义了与服务器交互的不同方法. 最基本的方法是GET和POST.
HTTP-GET和HTTP-POST是标准协议动词,使用HTTP编码和传输变量名/变量值对参数,并使用相关的请求语义. 每个HTTP-GET和HTTP-POST都包含一系列HTTP请求标头. 这些请求标头定义了客户端从服务器请求的内容,并且响应由一系列HTTP响应标头和响应数据组成. 如果请求成功,则返回答复.
HTTP-GET使用MIME类型应用程序/ x-www-form-urlencoded以urlencode文本格式传递参数. Urlencoding是一种字符编码,可确保要传输的参数由兼容的文本组成,例如,空格的编码为“%20”. 附加参数也可以视为查询字符串.
类似于HTTP-GET,HTTP-POST参数是URL编码的. 但是,变量名/变量值不是作为URL的一部分传输的,而是在实际的HTTP请求消息中传输的.
(1)get是从服务器获取数据,而post是将数据发送到服务器.
(1)在客户端,Get方法通过URL提交数据,并且可以在URL中看到数据. 在POST方法中,数据是在HTML HEADER中提交的.
(2)对于get方法,服务器使用Request.QueryString来获取变量的值. 对于post方法,服务器使用Request.Form获取提交的数据.
(2)GET方法提交的数据最多只能有1024个字节,而POST没有此限制.
(3)安全问题. 如(1)所述,使用Get时,参数显示在地址栏中,而Post不显示. 因此,如果数据是中文数据和非敏感数据,则使用get;如果用户输入的数据不是汉字且包含敏感数据,则最好使用post.
注意: 所谓的安全性是指此操作用于获取信息而不是对其进行修改. 幂等意味着对同一URL的多个请求应返回相同的结果. 完整的定义似乎并不严格. 换句话说,GET请求通常不应具有副作用. 从根本上说,目标是当用户打开链接时,可以确保从她的角度来看资源没有发生变化. 例如,新闻站点的首页不断更新. 尽管第二个请求返回了另一批新闻,但是由于该操作始终返回当前新闻,因此该操作仍被视为安全且幂等的. 反之亦然. POST请求不是那么容易. POST表示可能会更改服务器上资源的请求. 仍以新闻网站为例,读者对文章的评论应通过POST请求来实现,因为提交评论后的网站有所不同(例如,文章下方出现评论).
下面是一个简单的例子来说明区别:
<!-分别通过get和post提交表单->
我们以确认美以进我12海里就该打沉它
打不过