您现在的位置是:娱乐 >>正文

浏览器网页表单数据是什么

娱乐8774人已围观

简介你在电商网站下单时填的收货地址、在论坛注册时输入的邮箱密码、在搜索框里敲进去的关键词——这些被你敲进浏览器的东西,就是网页表单数据。它不是什么抽象概念,而是你每一次点击“提交”按钮时,浏览器打包发给服 ...

你在电商网站下单时填的浏览收货地址、在论坛注册时输入的器网邮箱密码、在搜索框里敲进去的页表关键词——这些被你敲进浏览器的东西,就是单数网页表单数据。它不是浏览什么抽象概念,而是器网你每一次点击“提交”按钮时,浏览器打包发给服务器的页表那一串信息。

拆开来看,单数一个表单数据包通常由三部分组成:字段名、浏览字段值、器网以及它们之间的页表对应关系。比如你在某宝填地址,单数浏览器实际发送的浏览东西类似这样:name=张三&phone=138xxxx&city=杭州。字段名是器网网站开发者提前写死在HTML里的,字段值才是页表你亲手输入的内容。两者用等号连接,不同字段之间用&符号隔开。这就是最经典的application/x-www-form-urlencoded格式,绝大多数传统表单都用它。

但表单数据不止这一种形态。如果你上传过头像或附件,浏览器会换一种编码方式,叫multipart/form-data。区别在于,前者把所有数据拼成一条长字符串,后者则把每个字段切成独立的数据块,每块有自己的头部信息。为什么要这样?因为二进制文件(比如一张jpg图片)没法安全地塞进纯文本字符串里,遇到特殊字符就会乱套。我见过有人用urlencoded方式硬传图片,结果服务器收到的文件全是乱码,折腾半天才找到原因。

表单数据发出去之后,去了哪里?取决于表单的action属性和method属性。如果method是GET,数据会拼在URL后面,像?keyword=浏览器&page=2这样。你在搜索引擎结果页看到的那个长网址,就是GET表单数据。好处是能直接分享链接,坏处是密码之类的敏感信息会暴露在地址栏和浏览器历史记录里。所以登录表单基本都用POST,数据藏在请求体里,不会出现在URL中。

有个细节很多人没注意:表单数据在传输前,浏览器会自动做一次URL编码。空格变成%20或+,中文变成%E6%B5%8F%E8%A7%88%E5%99%A8这种形式。为什么要编码?因为HTTP协议对URL和请求体的字符集有严格限制,不编码的话,特殊字符(比如&、=、#)会被服务器误读成语法符号。我调试过一个bug:用户昵称里带&符号,提交后服务器只收到了&前面的部分,后面的全丢了。原因就是前端没做编码,后端也没做解码。

现代前端框架流行之后,表单数据的提交方式变了。React、Vue这类框架通常不直接走HTML表单的默认提交行为,而是用JavaScript拦截submit事件,手动收集数据,再用fetch或axios以JSON格式发出去。JSON格式长这样:{ "name":"张三","phone":"138xxxx"}。它比传统的urlencoded更清晰,嵌套结构也更好表达。但代价是,如果JavaScript加载失败或用户禁用了脚本,表单就彻底废了。传统HTML表单即使没JS也能工作,这是它至今没被完全淘汰的原因之一。

还有一层容易被忽略的东西:浏览器对表单数据的本地记忆。你填过的地址、邮箱,下次再遇到类似字段时,浏览器会弹出自动填充建议。这些数据存在浏览器的自动填充数据库里,跟网站服务器无关。有人觉得方便,有人觉得隐私受侵犯。Chrome和Firefox都允许你手动清除这些记录,但入口藏得挺深,一般用户在设置里翻半天才能找到。

表单数据从你敲下键盘到抵达服务器,中间要经过编码、封装、传输、解码、校验好几个环节。任何一个环节出问题,轻则提交失败,重则数据错乱。搞明白这些,下次遇到“提交后没反应”或者“收到的数据缺了一半”这类问题时,你至少知道该从哪儿开始查。

Tags:

相关文章

  • 怎么举报盗版网站

    娱乐

    三年前我发现自己写的一篇教程被整个复制到了某个盗版站点,连文末的错别字都原样保留。那个网站靠广告点击月入过万,而正版阅读平台的收入分到我手里还不够买杯咖啡。举报流程走下来,我发现多数人卡在第一步——根 ...

    【娱乐】

    阅读更多
  • 一键查企业

    娱乐

    我打开电脑,在浏览器地址栏敲下那个网址。三秒钟之后,屏幕上弹出一张表——企业名称、法人、注册资本、成立日期、经营范围,整整齐齐。我又输入另一家公司的名字,这回多了几条司法风险提示,还有两条行政处罚记录 ...

    【娱乐】

    阅读更多
  • 为什么会产生漏洞

    娱乐

    2017年,黑客利用微软Office的一个漏洞,在文档里藏了段恶意代码。受害者只要打开这份看似普通的Word文件,电脑就会悄悄被控制。微软后来修复了它,但这个漏洞从被发现到被利用,只隔了不到两周。 漏 ...

    【娱乐】

    阅读更多


友情链接