本质上的区别:
GET请求、处理、响应过程中只是产生一个TCP数据包,而POST请求会产生两个TCP数据包。 更具体地说,GET请求过程中头和请求正文数据一起到服务器端,而POST请求过程中,先发一个请求头,服务器会先响应一次,然后浏览器再发送一次请求过程中会将正文数据带到服务器端,然后被服务器处理,然后再产生一个状态码,返回对应的状态描述。
(GET相当于一次请求,POST相当于两次请求)
所以,显然GET方式请求更加快。
另外,GET请求过程中它的主要作用是访问服务器,并从服务器上查询和获取数据,而POST除了查询和获取数据外,它是可以向服务器发送修改的请求的。
(GET用于数据的查询和获取,而POST用于查询和获取外,还可用于数据的修改)
从表面上来看:
GET请求的长度限制为4k,而POST没有这方面的限制,另外,GET会将请求参数等相关信息暴露出来,所以相比之下不安全。
使用场景:
一般对于登录、注册等表单请求,不建议用GET方式请求,一般用POST,因为一些参数信息暴露出来会不安全。另外,对于博客、论坛、数据的上传下载等也最好用POST,因为论坛或者上传下载等前后都可能会产生数据的变化,故用POST。 而一般对于有响应速度要求,并且对信息相对不敏感的,比如查询、搜索等,可以使用GET。
另外,对于ajax,get和post请求方式是有区别的?记得好像在一般情况向它是不能跨域的,特殊方法和处理下是可以的;