您现在的位置是:休闲 >>正文

form表单method属性get和post的区别

休闲29228人已围观

简介 搜索 这段代码放进浏览器,你按回车,地址栏会立刻变成`/search?keyword=你输入的内容`。换成`method="post"`,地址栏干干净净,数据藏在了请求体里。就这一个差别,决定了 ...

这段代码放进浏览器,表单别你按回车,属性地址栏会立刻变成`/search?表单别keyword=你输入的内容`。换成`method="post"`,属性地址栏干干净净,表单别数据藏在了请求体里。属性就这一个差别,表单别决定了两种方法在真实开发中的属性命运。 **GET是表单别把数据写在脸上**。参数全挂在URL后面,属性问号连接,表单别&分隔。属性好处是表单别肉眼可见——你复制链接发给同事,对方打开就能看到同样的属性查询结果。书签能存,表单别刷新无压力,浏览器回退也不会弹窗警告。但代价是暴露隐私,密码、身份证号这类敏感信息要是塞进URL,等于把家门钥匙贴在楼道里。另外URL长度有限制,不同浏览器上限不同,大概在2KB到8KB之间,塞多了服务器直接报414。 **POST把数据藏在信封里**。参数放进请求体,不在URL露面。没有长度限制,传文件、传大段JSON都靠它。更重要的是语义正确——POST本意是“向服务器提交数据,让资源状态发生变化”。比如你提交订单、删除文章、修改用户资料,这些操作不该被浏览器缓存,也不该通过链接随意触发。试想,一个删除操作的URL被搜索引擎爬虫抓到,用户点开就误删了数据,这锅谁背? 实际开发里有个坑容易被新手踩。GET请求会被浏览器主动缓存,你改了后端接口的返回逻辑,前端调同一条GET路径,可能拿到的是旧数据。这时候要么加时间戳参数`?t=Date.now()`,要么改成POST。反过来,POST也不是绝对安全——它只是不把数据暴露在URL里,但请求体在开发者工具里照样看得清清楚楚,HTTPS加密才是真正的防线。 我见过一个真实案例。某个内部管理系统,登录表单用了GET,密码直接出现在浏览器历史记录里。后来运维查日志,发现一堆用户的密码明文躺在访问记录中。这问题不是技术多高深,就是没分清“查”和“改”的边界。**查询用GET,操作用POST**——这条规则能解决80%的纠结。剩下20%呢?比如搜索框,看起来是查询,但参数很长且包含敏感筛选条件,那就用POST。规矩是死的,场景是活的。 最后补个冷知识:POST请求也能带URL参数,比如`/api/orders?source=app`,但这不是常规用法。你可以在POST的URL里放追踪标识,把业务数据放请求体里,两种方式可以共存。别把两者对立起来,它们只是传输数据的两种通道,选哪个取决于你的数据要过什么样的安检。

Tags:

相关文章

  • 显示网站不安全登录不上去怎么办

    休闲

    浏览器地址栏里那个小锁图标变成了红色感叹号,旁边还写着“不安全”。你点进去想访问,浏览器直接拦住你,连个“继续访问”的按钮都藏得严严实实。这时候大多数人第一反应是骂网站,但真凶往往不在网站那边。 上周 ...

    【休闲】

    阅读更多
  • 媚黑组织黑桃怎么加入

    休闲

    “黑桃”不是你想加就能加的。它压根没有公开的报名入口,也没有客服邮箱。这个符号最早在欧美色情产业里被用来标记特定癖好,后来被国内一些人搬运过来,慢慢变成一种地下圈子的身份标签。你如果在社交平台上搜“黑 ...

    【休闲】

    阅读更多
  • 电子政务外网安全培训

    休闲

    ```html 去年某市社保系统的一次钓鱼邮件演练,八成参训人员点了恶意链接。这个数据挂在会议室投影上时,台下没人笑得出来。电子政务外网承载着户籍、医保、税务这些命脉业务,一旦被攻破,丢的不是几份文件 ...

    【休闲】

    阅读更多


友情链接