Http请求get vs post

       在网站开发的过程中我们经常用到的http请求就是get和post,前端优化中有一条建议说多使用get方式的ajax请求,那么到底是为什么的?在这里,我们先了解一下两种请求方式。

get请求方式

数据是通过地址栏传递的 ( /test/demo_form.asp?name1=val1&name2=val2)

get请求的其他特点:

1.get请求可以被缓存

2.get请求将会被记录在浏览器历史记录

3.get请求可以保存为书签

4.get请求有长度限制

5.get请求一般被用来获取数据

post请求方式

数据是通过http message body 传递的

post请求的其他特点:

1.post请求不能被缓存

2.post请求不能被记录在浏览器历史记录中

2.post请求不能被保存为书签

3.post请求没有长度限制

get  vs  post

  GET POST
 点击返回按钮或者刷新 无害 数据将会被重新提交
 书签 可以保存为书签 无法保存为书签
 缓存 可以被缓存无法被缓存 
 编码类型 application/x-www-form-urlencoded application/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data
 历史记录 被记入历史记录无法记入历史记录 
 数据传输长度限制 有限制,于浏览器有关 没有限制
 数据类型限制 只能使用ASCII 没有限制,二进制数据也可以
 保密性 数据暴漏在地址栏,不安全(不要使用get方式传递一些敏感信息,比如说用户名,密码) post比get安全些,因为数据不会保存在浏览器历史记录,或者网络日志
 可见性 数据通过地址栏传输,每个人都可以看到,不安全 数据不是通过地址栏传递

我推荐,获取数据用get,传递数据用post

 其他http请求

方式描述
HEAD只返回HTTP headers,不返回document body,其他与get没有什么区别
PUT上传至制定的URI
DELETE删除指定的资源
OPTIONS返回服务器所支持的HTTP方法
CONNECT将求连接到一个明显的TCP/IP通道

英文原文:http://www.w3schools.com/tags/ref_httpmethods.asp

相关推荐