1.http请求
http有两种报文,请求报文 (发送请求,可能包含数据)和响应报文(服务器响应请求获取数据)。一个http请求报文由请求行,请求头部,空行和请求正文(数据)四个部分组成。
HTTP请求: get: post:
<request line> //请求行 GET xx/index.html?name=1&age=1 HTTP/1.1 POST xx/index/html HTTP/1.1
<headers> //请求报头 Accept: */* Accept: */*
Accept-Language: zh-cn Accept-Language: zh-cn
host: localhost host: localhost
‘‘‘‘‘ ‘‘‘‘‘‘‘
<blank line> //空行
[<request body>] //请求正文(可选) name=1&age=1
2.区别
根据HTTP规范,get方法用于信息获取,而且是安全和幂等的,也就是说get请求不会修改信息,仅仅获取信息资源,且每次获取的资源是一致的。post方法表示可能修改服务器上的资源的请求。get和post只是传递数据的方式,get方法也可以把数据传递到服务器,他们的本质都是请求然后接收结果,并不是一个取一个发。
从http请求来看,get方法的数据直接体现在URL上,而post方法则保存在请求正文中。所以,由于浏览器服务器的原因,URL的长度是有长度限制的,所以get方法传输的数据也是有大小的限制,post方法不是通过URL传值,理论上数据不受限制。使用get方法的时候。参数会在地址栏显示,浏览器历史记录也会记录下来,对于敏感数据,隐私性方面post方法更合适,当然这些是浏览器规定的。他们的安全级别都是一样的,如果没有加密,任何一个监听器都可以监听到所有的数据。
在开发中应该使用GET来获取查看信息,不能改变服务器信息,POST用来改变服务器信息,这是HTTP协议的要求,众多的浏览器都会遵照的原则,开发过程中同样应该严格遵守,以免发生一些严重的后果。