一、HTTP请求方式
GET:对服务器获取资源的简单请求;
POST:向服务器提交数据请求;
PUT:修改指定资源;
DELETE:删除URL标记的指定资源;
CONNECT:用于代理服务器;
TRANCE:主要用于回环测试;
OPTIONS:返回所有可用的方法;
HEAD:获取URL标记资源的首部。
其中用的比较多的就是:POST、DELETE、PUT、GET,对应于增删改查。
二、GET 和 POST 的区别
2.1传参方式不同
从HTTP报文层来看,GET请求将信息放在URL中,POST请求将请求信息放在请求体中。
这一点使得GET请求携带的数据量有限,因为URL本身是有长度限制的,而POST请求将请求的数据信息放在报文体中,因为对于大小没有限制。
从形式上看,GET请求把数据放在URL上不安全,而POST请求把数据放在请求体里相对安全一些。
2.2幂等和安全性不同
从数据库层面来看,GET符合幂等性和安全性,而POST请求不符合。
这个其实和GET/POST请求的作用有关,按照HTTP的约定,GET请求用于查看信息,不会改变服务器上的信息,而POST请求用来改变服务器上的信息。
正因为GET请求只查看信息,不改变信息,对数据库的依次或者多次操作获得的结果是一致的,认为它符合幂等性。
安全性是指对数据库操作没有改变数据库中的数据。
2.3可被缓存不同
从其它层面来看,GET请求能够被缓存,GET请求能够保存在浏览器的浏览记录中,GET请求的URL能够保存为浏览器书签。这些都是POST请求所不具备的。
缓存是GET请求被广泛应用的根本,它能够被缓存也是因为它的幂等性和安全性,除了返回结果没有其它多余的动作,因为绝大部分的GET请求都被CDN缓存起来了,大大减少了Web服务器的负担。
三、GET 的长度限制是多少
HTTP中GET方法是通过URL传递数据的,但是URL本身并没有对数据的长度进行限制,真正限制URL长度的浏览器。
例如IE浏览器对URL的最大限制是2000多个字符,大概2kb左右,像Chrome、Firefox等浏览器支持的URL字符数风多,其中FireFox中URL的最大长度限制是65536个字符,Chrome则是8182个。
这个长度不是针对数据部分,是针对整个URL。