下列不可以判断网页是否正常打开的是_震惊!网页内容变成了天书!

前言

小编前段时间遇到一个问题,使用浏览器打开某域名网页的小说阅读器,阅读器正文内容显示为乱码。 经排查定位发现,该问题是由于小说原网页改版后对原网页HTML内容解码失败引起的。 那么常见的网页相关编码基本逻辑及测试点都有哪些呢?

9a36b15ae1db004a613153a10507cb0c.png

网页相关编码

常见的web网页编码的基本逻辑有: 1、URL编码; 2、HTML源码内容编码。
1、URL编码
URL 是统一资源定位器,是用来引导指向对应的网络资源的,狭义来说查询字符串并不是 URL 的一部分,URL 是由协议、域名、端口和 URI 组成的。 URI 是统一资源标识符,是用来引导指向某站点的服务资源的。
URL=protocol+domain+port+URI
RFC 1738(Uniform Resource Locators (URL))规定 URL 只能包含英文字母、阿拉伯数字和某些标点符号,这要求在 URL 中使用非英文字符的话必须编码后使用。 如果浏览器在编码URL和查询参数时使用的编码方式不一致,或者不同浏览器使用的URL编码机制不一致,就会导致无法正常解析。
2、HTML源码编码
当用浏览器打开某个URL网站查看网页内容时,之所以可以正常看到网页的内容,这一过程涉及到HTML网页源码的解码处理。

a7c61fe8441e80731f0ed98014520b97.png

在解析HTML源码内容时,浏览器需要识别HTML源码对应的编码方式,从而根据此字符编码类型,解码对应的HTML内容,显示对应的文字,以保证不会显示乱码。 常见的HTML网页源码的编码方式有 GBK 、 UTF -8 、 I SO8859-1 ,关于这三种编码方式的原理及规则介绍,在这里就不做赘述了,感兴趣的同学可以打开的链接了解(https://www.crifan.com/files/doc/docbook/char_encoding/release/html/char_encoding.html#)。

HTML源码编码

HTML源码编码类型的查看方式
1、response.header
在访问网页URL时,通过查看请求的response可以知晓其HTML源码的编码类型,具体查看response.headers中content-type的charset字段值。 例如,通过fiddler看到某一网站的response,我们可以看出其编码类型为UTF-8。

ba52b1a632e9801f24df625ec003b865.png

如果headers中content-type无charset字段,只content-type: text/html,根据 RFC2016 的规定,认为采用的是默认的ISO-8859-1。
2、网页源代码
网页源代码中head的meta中会有charset的参数值,可以用来判断网页的编码类型。

3181e25a1df1483c2010ab7621b08b45.png

HTML源码编码类型的测试

针对HTML源码内容的编码类型的测试,重点关注点是对不同的编码类型的网页,是否可以正常的解析其编码类型,并可以正确解码显示对应的HTML内容。

9075623ea6068aa43322c4a6fd5b8f34.png

备注: 在实际测试中发现,有的网页HTML中不同段落的charset字段值(编码类型)不一致,可能会导致浏览器解析编码类型时错误,影响网页内容的正常展示。

c3332133da9e570eae6a5e580eb9303c.png

结语

作为APP端的软件测试人员,小编认为在提高测试能力的过程中,需要不断学习积累前端、客户端、后端等的常见基本概念及原理,如Android开发基本术语-webview、activity,https传输原理等。所谓知己知彼,百战不殆。 参考文章:

1.https://www.ibm.com/developerworks/cn/web/wa-lo-ecoding-response-problem/index.html;

2.https://www.crifan.com/summary_explain_what_is_html_charset_and_common_value_of_gb2312_gbk_utf_8_iso8859_1/;

3.https://juejin.im/post/5a6946846fb9a01ca267acd1;

搜狗测试微信号:Qa_xiaoming

bca0c371293d5f912693f3db74ef6bed.png

搜狗测试QQ粉丝群:459645679

8de6c61a7b368965d4b652cdb4093263.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值