# 浏览器缓存 # 当浏览器第一次访问服务器资源的时候,服务器返回到浏览器后,浏览器进行缓存 # 缓存的大概内容有: # 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;