前端面试第一讲
正文
前端需要注意哪些SEO
- 合理的title、description、keywords:搜索对这三项的权重逐个减小。title值强调重点即可,重要关键词出现不超过2次,要靠前,不同页面title要有所不同;description把页面内容高度概括,长度合适;keywords列举出重要关键词即可。
- 语义化的html代码,符合w3c规范,语义化让搜索引擎容易理解网页。
- 重要内容HTML代码放在最前。搜索引擎抓取HTML顺序是从上到下,且长度有限制。
- 重要内容不要用js输出:爬虫不会执行js获取内容。
- 提高网站速度:网站速度是搜索引擎排序的一个重要指标。
web开发中会话跟踪的方法有哪些
cookie 、session 、url重写 、隐藏input、ip地址
从浏览器地址栏输入url到显示页面的步骤(以http为例)
- 在浏览器地址输入url;
- 浏览器查看缓存,如果请求资源在缓存中并新鲜,跳转到转码步骤
- 如果资源未缓存,发起新请求
- 如果已缓存,检查是否足够新鲜,足够新鲜直接提供给客户端,否则与服务器进行验证。
- 检查新鲜通常有两个http头进行控制Expires 和Cache-Control:
- HTTP1.0提供Expires,值为一个绝对时间表示缓存新鲜日期
- HTTP1.1增加了Cache-Control:max-age=,值为以秒为单位的最大新鲜时间
- 浏览器解析URL获取协议,主机,端口,path
- 浏览器组装一个HTTP(GET)请求报文
- 浏览器获取主机IP地址,过程如下:
- 浏览器缓存
- 本机缓存
- hosts文件
- 路由器缓存
- ISP DNS缓存
- DNS递归查询
- 打开一个socket与目标IP地址,端口建立TCP链接,三次握手
- TCP链接建立后发送HTTP请求
- 服务器接受请求并解析,将请求转发到服务程序
- 服务器检查HTTP请求头是否包含缓存验证信息如果验证缓存新鲜,返回304等对应状态码
- 服务器将响应报文通过TCP连接发送回浏览器;
- 如果资源可缓存,进行缓存
- 对响应进行解码
- 解析HTML文档,构件DOM树,下载资源,构造CSSOM树,执行js脚本
- 显示页面(HTML解析过程中会逐步显示页面)
如何进行网站性能优化
- 内容方面:
- 减少http请求
- 减少DNS查询
- 避免重定向
- 非必须组件延迟加载
- 未来所需组件预加载
- 使ajax可缓存
- server方面:
- 使用CDN
- 添加Expires 或者Cache-Control响应头
- 对组件进行Gzip压缩
- 配置ETag
- 避免空src的img标签
- Cookie方面:
- 减小cookie大小
- 引入资源的域名不要包含cookie
- Javascript方面:
- 将脚本放到页面底部
- 压缩js和css
- 减少DOM访问
- 合理设计事件监听器
- 图片方面:
- 优化图片
- 不要在html中拉伸图片
- 保证favicon.ico小并且可缓存