get 和post的区别
有关 GET 请求的其他一些注释:
GET 请求可被缓存
GET 请求保留在浏览器历史记录中
GET 请求可被收藏为书签
GET 请求不应在处理敏感数据时使用
GET 请求有长度限制
GET 请求只应当用于取回数据
有关 POST 请求的其他一些注释:
POST 请求不会被缓存
POST 请求不会保留在浏览器历史记录中
POST 不能被收藏为书签
POST 请求对数据长度没有要求
区别:
(1)post比get安全 ,因为post参数在请求体中。get参数在url上面(GET 方式需要使用 Request.QueryString 来取得变量的值;POST 方式通过 Request.Form 来获取变量的值。也就是说 Get 是通过地址栏来传值,而 Post 是通过提交表单来传值。)
(2)get传输速度比post快 根据传参决定的。(post通过请求体传参,后台通过数据流接收。速度稍微慢一些。而get通过url传参可以直接获取)
(3)post一般用于修改服务器上的资源,传输文件大理论没有限制; get一般用于信息获取,使用 URL 传递参数,传输文件小大概7-8k ie4k左右
(4)get获取数据 post上传数据(上传的数据比较多 而且上传数据都是重要数据。所以不论在安全性还是数据量级 post是最好的选择)
在以下情况中,请使用 POST 请求:
- 无法使用缓存文件(更新服务器上的文件或数据库)
- 向服务器发送大量数据(POST 没有数据量限制)
- 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
比较 GET 与 POST
HTTP 请求方法
- HEAD : 与GET相同,但是只返回HTTP报头 , 不返回文档主体。
- PUT : 上传指定的URL。
- DELETE: 删除指定的资源。
- OPTIONS : 返回服务器支持的 HTTP 方法。
- CONNECT : 把请求连接转换到透明的 TCP/IP 通道。