css,js文件自动合并输出及Content-type,Cache-Control,Etag等的设置
2016/03/12    

知识点:file_get_content、header

原理:根据前端发起的GET请求的QUERY_STRING,将需要的文件合并,并输出; 输出的同时注意加上Content-type(文档类型)、Cache-Control(缓存类型)、Last-Modified(最后修改时间),EXpress(过期时间),Etag(文档标识);

例子:浏览器第一次发出请求:/use/?/style/common.css,/style/reset.css,服务器接受请求并将/styles/目录下common.css及reset.css合并后并在http响应头(Response Headers)加上Content-Type、Cache-Control、Express、Etag信息
① 用户按刷新按钮,浏览器会将If-None-Match 加在http头中一起发送到服务器端,服务器端对比Etag信息和$_SERVER['If-None-Match']信息,如果相同则返回304,如果不同则返回新文件
② 用户在浏览器地址栏回车,浏览器会判断Express是否过期,如果不过期从本地缓存加载,否则重新发送请求

示例代码:PS:Expires(本地缓存过期) --> Last-Modified(文件最后修改时间不一致) --> Etag(文件标识是不一致) --> 发送新文档
转载请注明:来自 静水缘(http://www.lpsjj.cn)