HTTP有两部分组成:请求与响应
HTTP请求格式:
在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以添加任意的其他数据[称之为主体(body)
我们再来说说Get和Post
GET是从服务器上获取数据,POST是向服务器传送数据
两者的区别:
最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数
GET的语义是请求获取指定的资源;POST的语义是根据请求负荷(报文主体)对指定的资源做出处理,具体的处理方式视资源类型而不同,比如提交表单。
GET方法是安全、幂等、可缓存的(除非有 Cache-ControlHeader的约束);POST不安全,不幂等,(大部分实现)不可缓存。
GET方法的报文主体没有任何语义;POST的报文大部分都具有特定语义。
GET请求参数显示,都显示在浏览器网址上,HTTP服务器根据该请求所包含URL中的
参数来产生响应内容,即“Get”请求的参数是URL的一部分。例如: http://www.baidu.com/s?wd=Chinese
POST请求参数在请求体当中,消息长度没有限制而且以隐式的方式进行发送,通常用 来向HTTP服务器提交量比较大的数据(比如请求中包含许多参数或者文件上传操作等), 请求的参数包含在“Content-Type”消息头里,指明该消息体的媒体类型和编码,
注意:
避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。