1.User-Agent 记录访问当前网页的用户浏览器类型和版本,操作系统类型和版本。常见场景:根据不同浏览器和版本提供不同站点。
JavaScript通过window.navigator.userAgent属性获取该信息。
2.Cookie 用户身份标示 解决HTTP协议无状态,服务器端无法判断每次处理的请求相互之间以及与之前处理的请求之间的关系。
按域名分类生成存储在本地的Cookie文件,记录用户的账号信息和操作记录,会带来账号和隐私泄露或身份被伪造的风险。
因为Cookie是按域名分类存储,所以不经常变化的网页静态资源(CSS,JS,图片)无需记录用户状态,使用额外的静态服务器存放这些静态资源文件。
浏览器通过document.cookie来增加或删除cookie,可以在客户端被篡改,设置http-only防止通过JavaScript修改,但对基于http协议篡改无法防范。
后台通过Request.Header设置,可以设置过期时间
3.Catch-Control 浏览器资源缓存标示 服务器端经常使用MEMCached和Redis等服务缓存经常访问的数据。
通过Header设置优化缓存相关的性能:开启Catche-Control 和 Last-Modified,兼容老浏览器,可暴力Expires,关闭E-tag。