咱们想要打开一个网站,首先是须要往浏览器的地址的URL输入框架中输入网地址。当我敲下回车后,经过HTTP协议,将网址传送到域名解析服务器,域名解析服务器根据网址找到对应的IP主机(系统服务器)。这个过程叫request,即请求;当IP主机拿到请求后,将相应的资源返回给用户浏览器。这个过程叫response,即响应浏览器
GET - 从指定的服务器中获取数据
缓存
POST - 提交数据给指定的服务器处理安全
GET方法:服务器
使用GET方法时,查询字符串(键值对)被附加在URL地址后面一块儿发送到服务器:/test/demo_form.jsp?name1=value1&name2=value2框架
特色:jsp
GET请求可以被缓存ide
GET请求会保存在浏览器的浏览记录中网站
以GET请求的URL可以保存为浏览器书签编码
GET请求有长度限制spa
POST方法:
使用POST方法时,查询字符串在POST信息中单独存在,和HTTP请求一块儿发送到服务器:POST /test/demo_form.jsp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
特色:
POST请求不能被缓存下来
POST请求不会保存在浏览器浏览记录中
以POST请求的URL没法保存为浏览器书签
POST请求没有长度限制
两种请求的区别:
一、GET请求,请求的数据会附加在URL以后,以?分割URL和传输数据,多个参数用&链接。URL的编码格式采用的是ASCII编码,而不是uniclde,便是说全部的非ASCII字符都要编码以后再传输。
POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据。
所以,GET请求的数据会暴露在地址栏中,而POST请求则不会。
二、传输数据的大小
在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。可是在实际开发过程当中,对于GET,特定的浏览器和服务器对URL的长度有限制。所以,在使用GET请求时,传输数据会受到URL长度的限制。
对于POST,因为不是URL传值,理论上是不会受限制的,可是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。
三、安全性
POST的安全性比GET的高。这里的安全是指真正的安全,而不一样于上面GET提到的安全方法中的安全,上面提到的安全仅仅是不修改服务器的数据。好比,在进行登陆操做,经过GET请求,用户名和密码都会暴露再URL上,由于登陆页面有可能被浏览器缓存以及其余人查看浏览器的历史记录的缘由,此时的用户名和密码就很容易被他人拿到了。除此以外,GET请求提交的数据还可能会形成Cross-site request frogery***