36、Web开发中的GET请求问题与模板使用技巧

Web开发:GET请求问题与模板使用技巧

Web开发中的GET请求问题与模板使用技巧

1. GET请求的问题

在Web应用开发中,关于使用链接触发操作的方式一直存在争议。自HTTP诞生以来,人们就认识到HTTP GET和HTTP POST请求存在根本区别。GET请求用于从服务器检索信息,而POST请求用于请求服务器状态的改变。然而,这一规则在很大程度上被Web开发者忽视了。

比如,常见的“添加到购物车”链接,点击该链接会生成一个GET请求,从而改变应用程序的状态(将商品添加到购物车)。大多数情况下,我们并未因此遇到问题,但在2005年春天,Google发布了Google Web Accelerator(GWA),情况发生了变化。GWA是一款客户端代码,通过预缓存页面来加速用户浏览。当用户浏览当前页面时,它会扫描页面上的链接,并在后台读取和缓存相应的页面。

假设你正在浏览一个包含“添加到购物车”链接的在线商店,在你犹豫选择栗色热裤还是紫色背心时,GWA可能会自动点击这些链接,将商品添加到你的购物车。

实际上,这个问题一直存在。搜索引擎和其他爬虫会不断跟踪公共网页上的链接。通常,那些会改变应用程序状态的链接(如“添加到购物车”)在用户开始交易之前不会暴露,因此爬虫不会看到或跟踪它们。但GWA运行在客户端,使得这些链接突然暴露出来。

在理想情况下,所有有副作用的请求都应该是POST请求,而不是GET请求。网页应该使用表单和按钮来让服务器执行操作,而不是使用链接。但现实并非如此,大量网页在处理GET请求时违反了这一规则。

1.1 GET请求问题的影响

默认情况下,Rails中的 link_to 方法会生成一个普通链接,点击时会创

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值