a 标签发送put请求_浏览器请求方式

本文详细解析了get和post请求的区别,包括数据传输、大小限制和安全性,并强调何时选择get获取数据,何时用post改变服务器状态。还提醒了乱用get/post可能导致的问题,如GWA加速器的风险,最后提供了最佳实践建议。
摘要由CSDN通过智能技术生成

1.浏览器的请求方式

浏览器的请求方式有很多,最典型的就是get和post方式,但你是否知道其实还有几种方式,只是我们不经常用!options,head,put,delete,trace,至于为什么现在不经常用这些方式,我想是因为get和post就可以满足我们大多数的需求吧!

2.get和post的区别

这个问题似乎大家讨论了很久,而且面试题中也时常出现这类题,但他们的最大区别到底在哪里呢

其实最主要的区别在于

get  请求用于从服务器获取信息

post请求用于改变服务器的状态

当然还有其他的不同

(1) get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到

post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址

(2)get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制

(3)post的安全性比get高?有些人认为应为get方式请求时因为数据是加载url后面的,所以安全性不高,但其实很多工具都可以看,如firebug,所以安全性是相对的。

3.什么时候用get,什么时候用post

这就是根据他们的最大的区别来使用了

这里有一个概念叫idempotent(幂等),对于单目运算,如果一个运算对于在范围内的所有的一个数多次进行该运算所得的结果和进行一次该运算所得的结果是一样的,那么我们就称该运算是幂等的。如abs运算就是幂等的

对于一个请求,在服务器端没有变化的情况下,相同的请求不管请求多少次,得到的数据应该是相同的,这就是幂等的,也就要用get方式,一般就是用于向服务求获取数据。当你要改变服务器状态的时候,比如对数据库进行增删改操作时,你就应该用post方式了

4.乱使用get和post的后果

其实现在互联网里的很多网站都没有遵循使用规范,乱用get和post,比如用标签请求一个action,达到修改服务器状态的目标,因为他们没有意识到危险

直到2005年google发布了GWA(google web accelerator),这个工具是一个客户端代码,他会预先扫描用户浏览的的页面,找出其中的连接,并读取连接后面的页面并缓存,从而达到提高浏览页面速度的目的

也许你现在想到了,但我们用标签的时候,如果用于请求一个action改变服务求状态的时候,那就太糟糕了,gwa会请求所有标签,然后请求action!比如一个购物网站。用一个的连接来把物品加入购物车,那当用户访问的时候,GWA会把所有的物品加入你的购物车

5 建议

(1).使用表单和按钮(非超链接)来执行会改变服务器状态的操作,表单用post提交

(2).使用确认页面

其实最核心的一个就是:把所有具有破坏性的action放在一个post请求的后面

put all destructive actions behind a post request

如有错误欢迎指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值