# 浏览器缓存
# 当浏览器第一次访问服务器资源的时候,服务器返回到浏览器后,浏览器进行缓存
# 缓存的大概内容有:
# 1.缓存过期的日期和时间
# 2.设置和缓存相关的配置信息
# 3.请求资源最后修改时间
# 4.请求资源的MD5值
# 强缓存:当浏览器再次请求同样资源的时候,会去缓存中查看是否有它的缓存,有的话就查看是否过期,如果没过期就直接从浏览器缓存中拿取数据。这就是浏览器强缓存。
# 弱缓存:当浏览器再次请求同样资源的时候,会去缓存中查看是否有它的缓存,有的话就查看是否过期,如果过期了,浏览器就会拿着“请求资源最后修改时间”和“请求资源的MD5值”去服务器请求资源。这个时候服务器收到请求就会通过“请求资源的MD5值”去判断文件是否有改动,没有改动的话,服务器就会返回304状态码。这就是浏览器弱缓存。资源有改动的话,服务器就像浏览器第一次访问那样返回资源到浏览器。

# expires指令:该指令用来控制页面缓存的过期时间的。也就是可以通过该指令控制HTTP应答中的"Expires"和"Cache-Control"
# 语法一:expires [modified] time;
# 语法二:expires epoch | max | off;
# 默认值:off;
# 位置:http、server、location
# time:可以是负数、指定过期时间,如果是负数,Cache-Control则为no-cache(也就是弱缓存处理发方式),
# 如果为整数或0,Cache-Control的值为max-age=time。也就是多少秒后过期。
# epoch:指定Expires的值为"1 January,1970,00:00:01 GMT"(1970-01-01 00:00:00),Cache-Control的值为no-cache
# max:指定Expires的值为'31 December 2037 23:59:59 GMT'(2037-12-31 23:59:59),Cache-Control的值为10年的秒数。
# off:默认不缓存。
expires 1000;    # 缓存1000秒后需要重新获取

# add_header指令是用来添加指定的响应头和响应值。
# 语法:add_header name value [always]
# 位置:http、server、location
add_header Cache-Control no-cache;
# 缓存响应指令:
# Cache-Control: must-revalidate    //可缓存但必须再向服务器进行确认
# Cache-Control: no-cache        //缓存前必须确认其有效性
# Cache-Control: no-store        //不缓存请求或响应的任何内容
# Cache-Control: no-transform        //代理不可更改媒体类型
# Cache-Control: public        //可向任意方提供响应的缓存
# Cache-Control: private        //仅向特定用户返回响应
# Cache-Control: proxy-revalidate    //要求中间缓存服务器对缓存的响应有效性再进行确认
# Cache-Control: max-age=<seconds>    //响应最大Age值
# Cache-Control: s-maxage=<seconds>    //公共缓存服务器响应的罪罚Age值

# Nginx的跨域问题解决
# 浏览器调用服务器的GET,POST……方法的时候会实行了同源策略检查,检查不通过的话浏览器就会报错。不是同源就是跨域。
# 什么是同源策略:你当前页面通过GET,POST方法向服务器发请求的时候,
# 如果你当前页面的协议、域名(IP)、端口和请求接口的服务器有任何的不一样那么就不符合同源策略,
# 就会报缺少Access-Control-Allow-Origin、Access-Control-Allow-Methods的错
# Nginx可以直接通过add_header来配置请求响应头来解决跨域问题
add_header Access-Control-Allow-Origin http://127.0.0.1;
add_header Access-Control-Allow-Origin *; # 允许任何人调用
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE;

 

# 浏览器缓存# 当浏览器第一次访问服务器资源的时候,服务器返回到浏览器后,浏览器进行缓存# 缓存的大概内容有:# 1.缓存过期的日期和时间# 2.设置和缓存相关的配置信息# 3.请求资源最后修改时间# 4.请求资源的MD5值# 强缓存:当浏览器再次请求同样资源的时候,会去缓存中查看是否有它的缓存,有的话就查看是否过期,如果没过期就直接从浏览器缓存中拿取数据。这就是浏览器强缓存。# 弱缓存:当浏览器再次请求同样资源的时候,会去缓存中查看是否有它的缓存,有的话就查看是否过期,如果过期了,浏览器就会拿着“请求资源最后修改时间”和“请求资源的MD5值”去服务器请求资源。这个时候服务器收到请求就会通过“请求资源的MD5值”去判断文件是否有改动,没有改动的话,服务器就会返回304状态码。这就是浏览器弱缓存。资源有改动的话,服务器就像浏览器第一次访问那样返回资源到浏览器。
# expires指令:该指令用来控制页面缓存的过期时间的。也就是可以通过该指令控制HTTP应答中的"Expires"和"Cache-Control"# 语法一:expires [modified] time;# 语法二:expires epoch | max | off;# 默认值:off;# 位置:http、server、location# time:可以是负数、指定过期时间,如果是负数,Cache-Control则为no-cache(也就是弱缓存处理发方式),# 如果为整数或0,Cache-Control的值为max-age=time。也就是多少秒后过期。# epoch:指定Expires的值为"1 January,1970,00:00:01 GMT"(1970-01-01 00:00:00),Cache-Control的值为no-cache# max:指定Expires的值为'31 December 2037 23:59:59 GMT'(2037-12-31 23:59:59),Cache-Control的值为10年的秒数。# off:默认不缓存。expires 1000;# 缓存1000秒后需要重新获取
# add_header指令是用来添加指定的响应头和响应值。# 语法:add_header name value [always]# 位置:http、server、locationadd_header Cache-Control no-cache;# 缓存响应指令:# Cache-Control: must-revalidate//可缓存但必须再向服务器进行确认# Cache-Control: no-cache//缓存前必须确认其有效性# Cache-Control: no-store//不缓存请求或响应的任何内容# Cache-Control: no-transform//代理不可更改媒体类型# Cache-Control: public//可向任意方提供响应的缓存# Cache-Control: private//仅向特定用户返回响应# Cache-Control: proxy-revalidate//要求中间缓存服务器对缓存的响应有效性再进行确认# Cache-Control: max-age=<seconds>//响应最大Age值# Cache-Control: s-maxage=<seconds>//公共缓存服务器响应的罪罚Age值
# Nginx的跨域问题解决# 浏览器调用服务器的GET,POST……方法的时候会实行了同源策略检查,检查不通过的话浏览器就会报错。不是同源就是跨域。# 什么是同源策略:你当前页面通过GET,POST方法向服务器发请求的时候,# 如果你当前页面的协议、域名(IP)、端口和请求接口的服务器有任何的不一样那么就不符合同源策略,# 就会报缺少Access-Control-Allow-Origin、Access-Control-Allow-Methods的错# Nginx可以直接通过add_header来配置请求响应头来解决跨域问题add_header Access-Control-Allow-Origin http://127.0.0.1;add_header Access-Control-Allow-Origin *; # 允许任何人调用add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE;