谈谈你对H5的理解
html5是web中核心语言html的规范,是hypertext markup language 5的缩写 h5提供新的标签元素,使代码变得更有语义 提供了大量的api 如本地存储 离线存储 webworker websocket filereader 地理位置 拖拽等 提供了更加炫酷的css新特性 如过渡 变形 动画 阴影 渐变等
浏览器从输入网址到看到网页都发生了什么
域名解析成api地址
客户端发送一个带有syn标志的数据包给服务端
服务端收到后,回传一个带有syn/ack标志的数据以示传达确认信息
客户端在回传一个带ack标志的数据包 代表握手结束 连接成功
服务端处理数据并返回数据
客户端请求关闭连接
服务端确认是否还有数据要传输
服务端没有数据要传输 准备关闭连接
客户端断开连接
浏览器解析html 生成dom树 解析css 生成css规则树 dom树和css规则树合并成渲染树 开始渲染 执行javascript脚本
状态码
1字头:信息,服务器收到请求 需要请求者继续执行操作
2字头:成功 操作被成功接收并处理
3字头:重定向 需要进一步的操作以完成请求
4字头:客户端错误 请求包含语法错误或无法完成请求
5字头:服务器错误 服务器在处理请求的过程中发生了错误
101:切换协议
200:请求成功 一般用于get与post请求
203:非授权信息 请求成功 但返回的meta信息不在原始的服务器 而是一个副本
204:无内容 服务器成功处理 但未返回内容
301:永久移动 请求的资源已被永久的移动到新的url 返回信息会包括新的url 浏览器会自动定向到新的url
302:临时移动
304:未修改 所请求的资源未修改 服务器返回此状态码时,不会返回任何资源
305:使用代理 所请求的资源必须通过代理访问
307:临时重定向
400:客户端请求的语法错误 服务器无法理解
404:服务器无法根据客户端的请求找到资源
405:客户端请求中的方法被禁止
500:服务端内部有错,无法完成请求
502:作为网关或者代理工作的服务器尝试执行请求时 从远程服务器接收到了一个无效的响应
503:由于超载或系统维护 服务器暂时的无法处理客户端请求
505:服务器不支持请求的http协议的版本 无法完成处理
http和https的区别
1.https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用
2.http是超文本传输协议 信息是明文传输 https则是具有安全性的ssl加密传输协议
3.http和https使用的是完全不同的连接方式 用的端口也不一样 前者是80 后者是443
4.http的连接很简单 是无状态的 https协议是ssl+http协议构建的可进行加密传输 身份认证的网络协议,比http协议安全 虽然说https有很大的优势 但其相对来说 还是存在不足之处的
(1) https协议握手阶段比较费时 会是页面的加载时间延长近50% 增加10%到20%的耗电
(2)https连接缓存不如http高效 会增加数据开销和功耗 甚至已有的安全措施也会因此而受到影响
(3)ssl证书需要钱 功能越强大的证书费用越高 个人网站 小网站没有必要一般不会用
(4)ssl证书通常需要绑定ip 不能再同一ip上绑定多个域名 ipv资源不可能支撑这个消耗
(5)https协议的加密范围也比较有限 在黑客攻击 拒绝服务攻击 服务器拦截等方面几乎起不到什么作用 最关键的 ssl整数的信用链体系并不安全 特别是在某些国家可以控制cs跟证书的情况下 中间人攻击一样可行