HTML 相关问题

1、doctype(文档类型)的作用是什么?

声明页面文档的类型,以及告诉浏览器应该使用哪种模式进行渲染。

2、浏览器标准模式和怪异模式之间的区别是什么?

由于历史的原因,各个浏览器在对页面的渲染上存在差异,甚至同一浏览器在不同版本中,对页面的渲染也不同。在 W3C 标准出台以前,浏览器在对页面的渲染上 没有统一规范,产生了差异(Quirks mode);由于 W3C 标准的推出,浏览器渲染页面有了统一的标准(Standars mode),这就是二者最简单的区别。总而言之,怪异模式是为了兼容在标准推出之前出现的页面而设置的。

浏览器会根据 doctype 来决定使用哪种渲染模式,比如 <!doctype html> 将会触发标准模式。如果页面中没有声明 doctype,浏览器则会使用怪异模式。

3、使用 XHTML 的局限有哪些? 如果页面使用 application/xhtml+xml 会有什么问题吗?

4、如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?

5、data- 属性的作用是什么?

当没有合适的属性和元素时,自定义的 data- 属性是能够存储页面或 App 的私有的自定义数据。

Custom data attributes are intended to store custom data private to the page or application, for which there are no more appropriate attributes or elements.

可以通过 ele.dataset.xxx 来访问 data-xxx=""

6、请描述一下 cookies,sessionStorage 和 localStorage 的区别?

  1. 每个域名存储量比较小(各浏览器不同,大致 4K)
  2. 所有域名的存储量有限制(各浏览器不同,大致 4K)
  3. 有个数限制(各浏览器不同)
  4. 会随请求发送到服务器
localStorage
  1. 永久存储
  2. 单个域名存储量比较大(推荐 5MB,各浏览器不同)
  3. 总体数量无限制
sessionStorage
  1. 只在 Session 内有效
  2. 存储量更大(推荐没有限制,但是实际上各浏览器也不同)

7、请描述一下 GET 和 POST 的区别?

  1. GET 将参数放在 URL 的 Query String 里,有长度限制,只支持 ASCII 数据
  2. POST 将参数放在 HTTP body 中

另外,HTTP 除了这两种请求方式,还有 HEAD、PUT、DELETE、OPTIONS、CONNECT、PATCH。

相关的话题就是 RESTful 接口,可以看看阮一峰的文章:《理解RESTful架构》《RESTful API 设计指南》